AW: Wo ist das Makro?
15.08.2006 19:51:28
ingUR
Hallo, Werner,
hier füge die Erläuterung als Kommentar ein, ohne dass ich den Programmcode dort abändere, wo es sich anbieten würde.
Sub PlzZuweisen()
Dim j, i As Integer
' Range("B65536").End(xlUp).Rowliefert die letzte benutzte Reihe der Spalte B
' so dass für alle i = 1 bis i="LastRow der Schleifenkörper
' zwischen For i=... und next i genau einmal durchlaufen wird
' (if i > "LastRow" then end)
For i = 1 To Range("B65536").End(xlUp).Row
' erneut liefert Range("B65536").End(xlUp).Row die letzte benutzte Reihe der Spalte B
' so dass nun für alle j = 1 bis j="LastRow der Schleifenkörper
' zwischen For j=... und next j genau einmal durchlaufen wird
' (if j > "LastRow" then erhöhe Zähler i)
For j = 1 To Range("B65536").End(xlUp).Row
' hier wird nun die Zeile j betrachtet
' und es wird als erstes die Zahl der außerte rechte Spalten in dieser Zeile j,
' die einen Inhalt hat, ermittelt
x = Cells(j, Cells(j, 256).End(xlToLeft).Column + 1).Address
' hier wird der inhalt der aktuellen Zelle Bi mit dem der Zelle Cj verglichen
' Range("B" & i) = Range("C" & j)
' und wenn dieser gleich ist, der Wahrheitwert z.B. der Aussage B3 = C12 WAHR ist,
' dann wird der Zelle in der Zeile j
' Cells(j, ....
' in der ersten freien Zelle nach der letzten beschriebenen Spalte in
' dieser Zeile j
' ...Cells(j, 256).End(xlToLeft).Column + 1
' der Wert der Zelle Ai eingetragen
If Range("B" & i) = Range("C" & j) Then Cells(j, Cells(j, 256).End(xlToLeft).Column + 1) = Range("A" & i)
' anschließend wir der Schleifenzähler um 1 erhöht (j=j+1)
' und mit dem Wert "LastRow" verglichen. Ist der Wert von j nicht größer, dann wird
' nochmals ein For-j-Schleifendurchlauf für das erhöhte j durchgeführt, ansonsten
' wird die auf next j folgende Anweisung ausgefüht.
' All dieses steckt also im "next j"!
Next j
' Wurde der Grenzwert "LastRow" für j überschritten,
' dann ist die FOR-j-Schleife abgeschlossen
' Es folgt die Erhöhung des Schleifenzählers um 1 (i=i+1).
' Wieder erfolgt der Vergleich dem Wert "LastRow". Ist i nicht größer als LastRow,
' dann wird nochmals ein For-i-Schleifendurchlauf für das erhöhte i gestartet,
' ansonsten wird die auf next i folgende Anweisung ausgefüht.
' Wieder steckt als dieses im "Next i"!
Next i
End Sub
Ich hoffe hierdurch ein paar Deiner Fragen beantwortet zu haben, ansonten: bei Frage, fragen!
Gruß,
Uwe