Guten Tag,
meine VBA Kenntnisse sind nicht sehr gut. Bis jetzt habe ich es aber immer irgendwie geschafft meine Knöpfe zum laufen zu bringen. Jetzt klappt es leider trotz intensiven Googlen nicht.
Ich habe einen Button, der eigentlich ganz simpel die gefilterten Daten in eine andere Tabelle kopieren soll. Das hat immer super geklappt. Jetzt das große ABER
Sobald ich einen Filter setze, der auch leere Zellen enthält, werden nur die Zeilen darüber kopiert. Er bricht einfach ab. Am einfachsten wäre es vermutlich eine Art Schleife einzubauen, die sagt solange in meiner Spalte AI (hier ist eine ID drin, die immer befüllt ist) was steht, weiter kopieren... Ich hab nen Knoten im Kopf oder denke vielleicht in die falsche Richtung.
Wie gesagt, Programmiererfahrung ist in den Kinderschuhen, ich habe es mir stellenweise (zB beim löschen der Liste) sehr leicht gemacht.
Ich wäre sehr dankbar für Hilfe und einen Denkanstoß.
Lieben Dank an jeden, der sich die Mühe macht sich den Code anzuschauen.
Hier der Code:
CodeTags gesetzt, bitte in Zukunft selber setzen. ~VaporiZed
meine VBA Kenntnisse sind nicht sehr gut. Bis jetzt habe ich es aber immer irgendwie geschafft meine Knöpfe zum laufen zu bringen. Jetzt klappt es leider trotz intensiven Googlen nicht.
Ich habe einen Button, der eigentlich ganz simpel die gefilterten Daten in eine andere Tabelle kopieren soll. Das hat immer super geklappt. Jetzt das große ABER
Sobald ich einen Filter setze, der auch leere Zellen enthält, werden nur die Zeilen darüber kopiert. Er bricht einfach ab. Am einfachsten wäre es vermutlich eine Art Schleife einzubauen, die sagt solange in meiner Spalte AI (hier ist eine ID drin, die immer befüllt ist) was steht, weiter kopieren... Ich hab nen Knoten im Kopf oder denke vielleicht in die falsche Richtung.
Wie gesagt, Programmiererfahrung ist in den Kinderschuhen, ich habe es mir stellenweise (zB beim löschen der Liste) sehr leicht gemacht.
Ich wäre sehr dankbar für Hilfe und einen Denkanstoß.
Lieben Dank an jeden, der sich die Mühe macht sich den Code anzuschauen.
Hier der Code:
Visual Basic-Quellcode
- Sub Schaltfläche2_KlickenSieAuf()
- 'in Serienbrief-kopieren-Button
- If MsgBox("Soll die Tabelle 'Serienbrief' überschrieben werden?", vbYesNo) = vbYes Then
- Dim lngFilterRow As Long, lngFilterColumn As Long
- Dim lngFilter As Long
- 'Zeilenanzahl für die spätere Ausgabe
- Dim Zeilenanzahl As Long
- With Worksheets("EKH2 2019")
- If .AutoFilterMode Then
- If .FilterMode Then
- With .AutoFilter
- lngFilterRow = .Range.Row
- lngFilterColumn = .Range.Column
- With .Filters
- For lngFilter = 1 To .Count
- If .Item(lngFilter).On Then Exit For
- Next
- End With
- End With
- 'Serienbrief bis Zeile 500 löschen
- Worksheets("Serienbrief").Range("a2:ai500").EntireRow.Delete
- 'Einfügen
- .Range(.Range(.Cells(lngFilterRow + 1, lngFilterColumn), _
- .Cells(lngFilterRow + 1, _
- lngFilterColumn + .AutoFilter.Filters.Count - 1)), _
- .Cells(lngFilterRow, lngFilter).End(xlDown)).Copy _
- Worksheets("Serienbrief").Range("A2")
- Zeilenanzahl = Worksheets("Serienbrief").Range("A65536").End(xlUp).Row - 1
- MsgBox "Es wurden " & Zeilenanzahl & " Datensätze kopiert"
- Else
- If MsgBox "Es ist kein Filter gesetzt"
- End If
- End If
- Else
- MsgBox "Kein Autofilter in der Tabelle.", 48, "Hinweis"
- End If
- End With
- Else
- Exit Sub
- End If
- End Sub
CodeTags gesetzt, bitte in Zukunft selber setzen. ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()