1.8k Aufrufe
Gefragt in Tabellenkalkulation von jumpanino Einsteiger_in (43 Punkte)
Hi

Also ich habe ein Tabellenblatt. In dem Stehen in zwei nebeneinanderstehenden Spalten Zahlen. Diese sollen mir als Koordinaten dienen. Mittels VBA will ich diese auslesen und mittels Cells in die jeweilige Koordinate ein X schreiben lassen. Jetzt ist es so, dass ich schon ein Stück weit gekommen bin aber leider geht meine Schleife nicht.

Wenn ich das Makro ausführe, dann schreibt er die erste Koordinate und dann nix mehr. Ich prüfe mit ANZAHL noch wieviel Zeilen es insgesammt sind damit die Schleife per Variable mit einer bestimmbaren Anzahl abläuft.
Ich kopiere also aus einer Liste Koordinaten in Spalte A und B. Dies soll mir dafür dienen, dass VBA in die jeweilige Koordinate ein X schreibt und das solange macht wie es Zeilen mit Koordinaten gibt.

Spalte
A B
197 160
386 45

usw....

Sub Schaltfläche2_Klicken()



MaxAnzahl = Range("B7").Value



Index = 9

Wert_Spalte = Cells(Index, 3).Value
Wert_Zeile = Cells(Index, 4).Value

For iCounter = 1 To 90

Index = Index + 1


Cells(Wert_Zeile, Wert_Spalte) = "X"

Next iCounter


End Sub


Vielen Dank für eure Hilfe

5 Antworten

0 Punkte
Beantwortet von jumpanino Einsteiger_in (43 Punkte)
So,

habs nu doch noch selbst hinbekommen.

Sub Schaltfläche2_Klicken()


MaxAnzahl = Range("B7").Value


For iCounter = 9 To MaxAnzahl


Wert_Spalte = Cells(iCounter, 3).Value
Wert_Zeile = Cells(iCounter, 4).Value

Adresse = Cells2Range(Wert_Zeile, Wert_Spalte)

Range(Adresse).Select
ActiveCell.FormulaR1C1 = "X"


Next iCounter
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

Sub Schaltfläche2_Klicken()
MaxAnzahl = Range("B7").Value
Index = 9
Wert_Spalte = Cells(Index, 3).Value
Wert_Zeile = Cells(Index, 4).Value
For iCounter = 1 To 90
Index = Index + 1
Cells(Wert_Zeile, Wert_Spalte) = "X"
Next iCounter
End Sub



Das Makro kann nicht funktionieren, da ein paar Sachen nicht zusammenpassen.

Du gibst zwar einen Index an, der wird aber ni der Schleife nicht weiter genutzt.

Einfacher ist es so

Sub Schaltfläche2_Klicken()
For iCounter = 9 To Range("B7").Value
Cells(Cells(iCounter, 4).Value,Cells(iCounter, 3).Value).FormulaR1C1 = "X"
Next iCounter
End Sub


Gruß

Helmut
0 Punkte
Beantwortet von jumpanino Einsteiger_in (43 Punkte)
Ok danke. Probier ich mal aus.
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
hallo,

deine Lösung ist im Prinzip die gleiche wie meine.
Der Unterschied ist, ich habe die nicht erforderlichen Zwischenschritte weggelassen.
Diese benötigen nur zusätzliche Rechenzeit und Speicherplatz.
Es ist in diesem Fall zwar beides so minimal, dass du keinen Unterschied feststellen wirst, aber bei 10000 Schleifendurchgängen o.ä. merkt man es schon.

Gruß

Helmut
0 Punkte
Beantwortet von jumpanino Einsteiger_in (43 Punkte)
Hi Helmut,

ja das stimmt. Also noch mal vielen Dank für deine Hilfe. Super...

Liebe Grüße Jumpanino
...