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
Office - Word, Excel und Co. 9.706 Themen, 40.867 Beiträge
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.]