Office - Word, Excel und Co. 9.746 Themen, 41.427 Beiträge

VBA in Excel die 3.

App / 2 Antworten / Baumansicht Nickles

Hallo Leute,

gestern noch erfolgreich und heute hänge ich schon wieder.

Problem ist (vereinfacht dargestellt) folgendes:
Ich habe in einem Excel 3 Tabellen (Tabelle 1, 2 & 3).
Auf Tabelle 1 habe ich in A1 und in A2 eine Zahl stehen.
Auf Tabelle 2 ist ein komplexer Algorithmus mit Rechenregeln, WENN...DANN-Verknüpfungen usw...Muss mich aber alles nicht interessieren: ich habe am Anfang des Tabellenblattes 2 ein Feld (A1) in das ich getrennt voneinander/nacheinander die Zahlen aus Tabelle 1 (A1 und A2) eintrage und unten (X1) kommt das Ergebnis der Berechnung raus.
Tabelle 3 weist dann auf B1 das Ergebnis, dass Zahl A1 von Tabelle1 auf Tabelle2 brachte aus und auf Feld B3 (!!) das Ergebnis der Zahl A2 von Tabelle1.

Mein VBA-Programm muss also auf Tabelle 1 gehen, die Zahl aus A1 nehmen und sie in Tabelle2 in Feld A1 schreiben. Dann Feld X1 auslesen und die Zahl auf Tabelle3 in B1 schreiben.
Dann muss Excel wieder auf Tabelle1 gehen, die Zahl aus A2 nehmen, die gleiche Prozedur durchlaufen und das Ergebnis auf Tabelle3 in Feld B3 schreiben. Wie gesagt, das nur eine vereinfachte Darstellung...in Wirklichkeit können die Zahlenreihen auf Tabelle1 beliebig lang sein. Hoffe aber, das Problem einigermassen verständlich erläutert zu haben. Besser bekomme ich es mit nur Text nicht hin ;)

Meine Idee sieht in VBA so aus und funktioniert leider nicht:

Sub Makro1()

For x = 0 to 1
For y = 0 to 1 step 2
Worksheets("Tabelle2").Range("A1") = Worksheets("Tabelle1").Range("A1" & x)

Worksheets(Tabelle3").Range("B1" & y) = Worksheets"Tabelle2").Range("X1")

Next y
Next x

End Sub


Danke im Voraus.
Grüße
Marc

bei Antwort benachrichtigen
Disk App „VBA in Excel die 3.“
Optionen

Hi

OK, die beschreibung hört sich etwas Heavy, fangen wir mal an....

Du machst eine For y = 0 to 1 step 2 Schlaufe.... Step 2?
Also in dem 1. Durchgang ist y=0, im 2. ist y=2 und die schlaufe wird verlassen.... Du machst nur einen Durchgang!!!

Du willst zu viel verketten...
Worksheets("Tabelle2").Range("A1") = Worksheets("Tabelle1").Range("A1" & x) ist leider falsch. Richtig ist (wenn ich es richtig verstanden habe...)
Worksheets("Tabelle2").Range("A1").value = Worksheets("Tabelle1").Range("A1").value + x

Erklärung:
du gibst die Zelle an, aber nicht den Wert der Zelle ".value". Der 2. Fehler liegt in der verknüpfung der Zell-Adresse mit einer Zahl.
Entweder heisst es Range("A1").value + x --> Zahl in A1 plus zahl x
oder Range("A"&1+x).value --> Zahl in Zelle A1+x z.B. Zelle A1+2 --> Zelle A3

Und es gibt unterschiede in den zeichen + und &...
+ heisst 2+3 = 5
& heisst 2&3 = 23 (entspricht einer verkettung der Zeichen)

Hoffe ich konnte dir helfen

PS: wiso machst du das nicht als Formel???

Bye
Disk

[Diese Nachricht wurde nachträglich bearbeitet.]

bei Antwort benachrichtigen
App Disk „Hi OK, die beschreibung hört sich etwas Heavy, fangen wir mal an.... Du machst...“
Optionen

Hallo,

also erstmal vielen Dank! Ob es nun endgültig klappt, kann ich wohl erst am Montag berichten. Jedenfalls schonmal danke für die Richtigstellung der Verkettung. Hab ich jetzt verstanden, wie auch den Unterschied von + und &.


Du machst eine For y = 0 to 1 step 2 Schlaufe.... Step 2?
Also in dem 1. Durchgang ist y=0, im 2. ist y=2 und die schlaufe wird verlassen.... Du machst nur einen Durchgang!!!

Stimmt, das ist aber nur für mich zum Verständnis. In meinem Excel muss ich diese Schlaufe deutlich öfters durchlaufen. Das kann 10x sein oder auch 200x. Das muss ich noch mittels einer aggregierten Variablen machen. Mal gespannt, wie das funktioniert, aber dazu später. Step 2, weil der Algorithmus aus Tabelle2 mehrere Ergebnisse liefert.

Wieso ich das nicht als Formel mache...hmmm...ne Formel ist ja immer recht statisch (also "dumm"). Wenn ich auf Bla11 eins viele Zahlenreihen habe, die auf Blatt2 "verwurschtelt" werden müssen, dann ist mir keine Möglichkeit eingefallen, die mittels einer Formel zu machen. Außer ich hätte den Rechenalgorithmus auf Blatt 2 so oft dort stehen, wie ich Zahlenreihen auf Blatt1 habe. Kompliziert ist das alles schon...muss ich leider zugeben.

Also, ich melde mich spätestens Montag ob mein Excel dank Deiner Hilfe jetzt macht, was ich von ihm will.

Grüße
Marc

bei Antwort benachrichtigen