AW: Erklärungen VBA
08.08.2005 20:16:29
Erich
Hallo Uli,
mittels Alt+F8 (oder Extras - Makro - Makros...) in der Excelmappe wird dir eine Liste der verfügbaren Makros angezeigt. Wenn du "Schaltfläche1_BeiKlick" auswählst und dann den Button "Bearbeiten" anklickst, siehst du im VBA-Editor:
Sub Schaltfläche1_BeiKlick()
Dim zaehler(5)
Rem ab hier für die AN-TAbellenblätter
For i = 1 To 5
zaehler(i) = 1
Next i
For i = 1 To 1000: Rem wie viele Datensatztzeilen zu erwarten sind (1000 oder mehr)
j = Val(Worksheets("Datensatz").Cells(i, 40))
If j >= 1 And j <= 5 Then
zaehler(j) = zaehler(j) + 1
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 1) _
= Worksheets("Datensatz").Cells(i, 8): Rem Vornamen kopieren
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 2) _
= Worksheets("Datensatz").Cells(i, 9): Rem Nachnamen kopieren
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 3) _
= Worksheets("Datensatz").Cells(i, 11): Rem Straße kopieren
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 4) _
= Worksheets("Datensatz").Cells(i, 12): Rem Hausnr kopieren
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 5) _
= Worksheets("Datensatz").Cells(i, 15): Rem PLZ kopieren
Worksheets("AN" & LTrim(Str$(j))).Cells(zaehler(j), 6) _
= Worksheets("Datensatz").Cells(i, 16): Rem Ort kopieren
End If
Next i
Rem Ab hier für die AP-Tabellenblätter
For i = 1 To 3
zaehler(i) = 1
Next i
For i = 1 To 1000: Rem wie viele Datensatztzeilen zu erwarten sind (1000 oder mehr)
j = Val(Worksheets("Datensatz").Cells(i, 42))
If j >= 1 And j <= 3 Then
zaehler(j) = zaehler(j) + 1
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 1) _
= Worksheets("Datensatz").Cells(i, 8): Rem Vornamen kopieren
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 2) _
= Worksheets("Datensatz").Cells(i, 9): Rem Nachnamen kopieren
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 3) _
= Worksheets("Datensatz").Cells(i, 11): Rem Straße kopieren
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 4) _
= Worksheets("Datensatz").Cells(i, 12): Rem Hausnr kopieren
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 5) _
= Worksheets("Datensatz").Cells(i, 15): Rem PLZ kopieren
Worksheets("AP" & LTrim(Str$(j))).Cells(zaehler(j), 6) _
= Worksheets("Datensatz").Cells(i, 16): Rem Ort kopieren
End If
Next i
End Sub
Da gibt es einen Teil für die AN- und einen Teil für die AP-Blätter. Bei den AP-Blättern wird mit
j = Val(Worksheets("Datensatz").Cells(i, 42))
in Spalte AP ("Flag_Anschrift", das ist die 42. Spalte) nachgesehen, in welches Blatt kopiert werden soll. Bei AP muss j zwischen 1 und 3 sein, das prüft die Zeile
If j >= 1 And j
Ab hier wird dann kopiert wie bei den AN-Blättern.
Alle Klarheiten beseitigt? :-)
Grüße von Erich aus Kamp-Lintfort