Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleife (nur sichtbare Zeilen) und Daten in neues Workbook

Forumthread: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook

Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
30.06.2024 20:53:52
Wolfgang
Hallo liebe Experten,
Ich bitte um eure Hilfe, da ich hier nicht weiterkomme... obwohl ich jetzt schon tagelang herum probiere...

Wir sind ein Sportverein mit ca. 300 Mitgliedern und ich habe das Workbook "WB-1" mit dem Worksheet "Kundendaten", dort sind die Daten aller Vereinsmitglieder.
Einmal im Monat muss ich im Workbook "WB-1" jene Vereinsmitglieder herausfiltern, die aktiv sind (Spalte 3 mit "ja") und auch einen IBAN bekannt gegeben haben (IBAN steht in Spalte 16) und diese Vereinsmitglieder in ein neues Workbook "WB-2" eintragen.
In Zeile 1 dieses Workbooks "WB-2" stehen die Spaltenbezeichnungen.
Ab Zeile 2 dieses Workbooks "WB-2" sollen dann die Daten eingetragen werden, die aus dem Workbook "WS-1" mit dem Worksheet "Kundenliste" kommen:

  • Einzeln habe ich das geschafft, aber ich bekomme die Schleife nicht hin...

  • Und wichtig bitte: Die Schleife soll nur die sichtbaren Zeilen durchlaufen, denn ich muss im Workbook "WB-1" / Worksheet "Kundenliste" zunächst auf manuelle Weise mit Filtern diverse Vereinsmitglieder ausblenden.


  • In Workbook "WB-1" soll also von den sichtbaren Vereinsmitgliedern geprüft werden ob, das Vereinsmitglied aktiv ist (Spalte 3 mit "ja") und einen IBAN bekannt gegeben hat (IBAN steht in Spalte 16).
    Wenn das so ist, dann sollen diverse Daten des Vereinsmitglieds in das Workbook "WB-2" eingetragen werden:

    ich habe es mit einer DO-LOOP Anweisung versucht, die ich für ein anderes Makro verwende, wobei ich zugeben muss, dass ich auch mein anderes Makro nicht ganz verstehe, weil mir da mal jemand geholfen hat... es kann natürlich daher auch die DO-LOOP Anweisung hier kompletter Schwachsinn sein...

    Bitte bitte daher um eure wertvolle Hilfe und Unterstützung!
    Vielen Dank im Voraus,
    Wolfgang.

    Hier ist mein bisheriger Code:

    Sub Abzug_aller_IBANs()

    Dim wb1_Name As String
    Dim wb2_Name As String
    wb1_Name = Application.ActiveWorkbook.Name

    Workbooks.Add
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Fälligkeitsdatum"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Kontoinhaber"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "IBAN"
    Range("a1").Select
    ChDir "C:\Users\fuchu\Dropbox\Karateclub Liesing\Finanzen\ELBA 5"
    ActiveWorkbook.SaveAs Filename:=(x) & Format(Date, "YYYYMMDD") & "_wb2.xlsx"
    wb2_Name = Application.ActiveWorkbook.Name

    Workbooks(wb1_Name).Worksheets("Kundenliste").Activate

    Dim kontoinhaber As String
    Dim iban As String
    Dim aktiv As String
    Dim geschwister As String
    Dim geschwisterrabatt As Integer
    Dim zeile As Double
    zeile = 1

    'auslesen solange Spalte 3=ja UND Spalte 16 befüllt ist.
    Do While Workbooks(wb1_Name).Worksheets("Kundenliste").Cells(zeile, 3) = "ja" And Workbooks(wb1_Name).Worksheets("Kundenliste").Cells(zeile, 16) > ""
    Workbooks(wb1_Name).Worksheets("Kundenliste").Activate
    kontoinhaber = Cells(zeile, 17).Value
    iban = Cells(zeile, 16).Value
    aktiv = Cells(zeile, 3).Value
    geschwister = Cells(zeile, 24).Value
    If geschwister = "ja" Then
    geschwisterrabatt = 5 'wenn es ein Geschwisterkind ist, dann 5 Euro Rabatt
    End If

    Workbooks(wb2_Name).Activate
    Cells([b65536].End(xlUp).Row + 1, 1).Activate 'erste freie Zeile der Spalte B suchen

    ActiveCell.Offset(0, 1).Value = kontoinhaber
    ActiveCell.Offset(0, 2).Value = iban
    ActiveCell.Offset(0, 3).Value = 25 - geschwisterrabatt 'Kurskosten abzüglich Geschwisterrabatt

    zeile = zeile + 1
    Loop

    Workbooks(wb2_Name).Activate
    ActiveWorkbook.Save

    End Sub
    Anzeige

    24
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 21:05:29
    Onur
    Und wo ist die Datei? Sollen wir eine basteln?
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 21:52:21
    Wolfgang
    Entschuldigung bitte, ich habe hier noch nicht so oft etwas gepostet:
    Hier ist eine Musterdatei, aus der ich natürlich viele (hier nicht relevante) persönliche Daten entfernt habe:

    https://www.herber.de/bbs/user/170590.xlsx

    Dankeschön im Voraus für eure Hilfe!
    Herzliche Grüße
    Wolfgang
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 21:54:34
    Wolfgang
    Entschuldigung bitte, ich habe hier noch nicht so oft etwas gepostet:
    Hier ist eine Musterdatei, aus der ich natürlich viele (hier nicht relevante) persönliche Daten entfernt habe:

    https://www.herber.de/bbs/user/170590.xlsx

    Dankeschön im Voraus für eure Hilfe!
    Herzliche Grüße
    Wolfgang
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:26:32
    Piet
    Hallo

    amüsant, Onur kopiert die ganze Zeile. Ich habe es aber so verstanden das es nur um drei Spalten geht.
    Kontoinhaber, Iban und 25- Geschwisterrabatt.

    mfg Piet
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:28:48
    Onur
    Da habe ich wohl was überlesen.... :)
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 21:51:49
    Wolfgang
    Entschuldigung bitte, ich habe hier noch nicht so oft etwas gepostet:
    Hier ist eine Musterdatei, aus der ich natürlich viele (hier nicht relevante) persönliche Daten entfernt habe:

    https://www.herber.de/bbs/user/170590.xlsx

    Dankeschön im Voraus für eure Hilfe!
    Herzliche Grüße
    Wolfgang
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:18:21
    Piet
    Hallo

    ich habe auch noch eine Datei im Angebot, ohne zu filtern. Wozu auch??
    Man kann active=ja und Iban mit If Then auswerten, ganz ohne Filtern.
    https://www.herber.de/bbs/user/170592.xls

    (x) hat mich auch gestört, weil ich aber Neugierig war, was dabei passiert, habe ich den Code laufen lassen!
    Amüsanterweise wird die Datei dann unter -User/Dokumente- gespeichert. War das von MS so vorgesehen???
    Gleich schaue ich mir mal den Code von Onur an. Der wird technisch sicher besser sein. Stört mich aber nicht.
    Vielleicht kann der Frager meine Simpelversion leichter verstehen???

    mfg Piet
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:22:10
    Onur
    Hallo Piet,

    Neue Dateien werden doch immer in "Dokumente" gespeichert, wenn man keinen Pfad mit angibt - bei mir jedenfalls.

    Gruß
    Onur
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:20:13
    Piet
    Nachtrag - es ist eine alte Excel 2003 Datei. Den Code kannst du ins Original kopieren.
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 22:20:19
    Onur
    Was soll denn dieses "(x") hier sein ?
    Filename:=(x) & Format(Date, "YYYYMMDD") & "_wb2.xlsx"
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 22:26:31
    BoskoBiati2
    Hi,

    wenn Du sowieso von Hand filterst, warum kopierst Du dann die sichtbaren Zeilen von Hand in das andere Blatt? Ausgeblendete Zeilen werden ja nicht mitkopiert.
    Außerdem gibt es in Deiner Version die Funktion FILTER.

    Gruß

    Edgar
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 22:30:20
    ralf_b
    Option Explicit
    

    Sub Abzug_aller_IBANs()

    Dim wb1 As Workbook, wb2 As Workbook
    Dim kontoinhaber$, iban$, aktiv$, Path$, faellig As Date
    Dim geschwisterrabatt&, newrow&, zeile&, arr

    Path = "C:\Users\fuchu\Dropbox\Karateclub Liesing\Finanzen\ELBA 5\"

    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Add

    With wb2.Worksheets(1)
    .Range("A1:D1") = Array("Fälligkeitsdatum", "Kontoinhaber", "IBAN", "Betrag")
    .SaveAs Filename:=Path & Format(Now, "YYYYMMDD_HHMMSS") & "_wb2.xlsx"
    End With

    'erste freie Zeile der Spalte B suchen
    newrow = wb2.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

    With wb1.Worksheets("Kundendaten")
    'auslesen solange Spalte 3=ja UND Spalte 16 befüllt ist.

    zeile = 1

    Do
    If .Cells(zeile, 3) = "ja" And .Cells(zeile, 16) > "" Then
    'wenn es ein Geschwisterkind ist, dann 5 Euro Rabatt
    geschwisterrabatt = 25 - IIf(.Cells(zeile, 24).Value = "ja", 5, 0)
    faellig = DateSerial(Year(Date), Month(.Cells(zeile, "N")), Day(.Cells(zeile, "X")))
    arr = Array(faellig, .Cells(zeile, 17).Value, .Cells(zeile, 16).Value, geschwisterrabatt)
    wb2.Worksheets(1).Cells(newrow, 1).Resize(, 4).Value = arr
    newrow = newrow + 1
    End If
    zeile = zeile + 1

    Loop Until .Cells(zeile, 16) = ""

    wb2.Worksheets(1).UsedRange.EntireColumn.AutoFit
    End With

    wb2.Save

    End Sub
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:02:56
    Wolfgang
    Lieber Ralf,
    vielen herzlichen Dank für deinen Code,
    und ich sehe, dass es natürlich für einen Profi wie dich viel einfacher und mit weniger Code geht, als bei mir...

    Leider erhalte ich "Laufzeitfehler 9"...
    was müsste ich denn bitte hier ändern??
    dadurch konnte ich deinen Code noch nicht testen... ich habe jedoch versucht mal alles zu verstehen...

    und darf ich dich bitte höflichst fragen: werden in deinem Code nur die sichtbaren Zeilen in der Schleife durchlaufen? Das wäre für mich bitte wichtig...
    Entschuldige bitte meine Frage, nur so für mich als Laie ist kein Code erkennbar, der dies hier prüfen würde...

    Darf ich dich daher bitten, mir hier nochmals zu helfen?
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:03:56
    Onur
    Wiese testest du nicht mal MEINE Datei ?
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:55:50
    ralf_b
    kommt drauf an wo der Fehler auftritt.
    Vielleicht weil das erstellte Workbook auch noch das aktive ist.
    Was mich etwas stört ist das du das ActiveWorkbook auslesen möchtest. Das ist nicht unbedingt auch das wo der Code drin läuft.
    probier mal diesen.
    Sub Abzug_aller_IBANs()
    

    Dim wb1 As Workbook, wb2 As Workbook
    Dim kontoinhaber$, iban$, aktiv$, Path$, faellig As Date
    Dim geschwisterrabatt As Double, newrow&, lastrow&, zeile&, arr

    Path = "C:\Users\fuchu\Dropbox\Karateclub Liesing\Finanzen\ELBA 5\"

    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Add

    With wb2.Worksheets(1)
    .Range("A1:D1") = Array("Fälligkeitsdatum", "Kontoinhaber", "IBAN", "Betrag")
    .SaveAs Filename:=Path & Format(Now, "YYYYMMDD_HHMMSS") & "_wb2.xlsx"
    End With

    'erste freie Zeile der Spalte B suchen
    newrow = wb2.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

    With wb1.Worksheets("Kundendaten")
    'auslesen solange Spalte 3=ja UND Spalte 16 befüllt ist.
    lastrow = .Cells(Rows.Count, 1).End(xlUp).Row
    On Error Resume Next

    For zeile = 2 To lastrow

    If .Cells(zeile, 1).RowHeight > 0 Then 'zeile nicht gefiltert
    ' If .Cells(zeile, 3) = "ja" And .Cells(zeile, 16) > "" Then

    'wenn es ein Geschwisterkind ist, dann 5 Euro Rabatt
    geschwisterrabatt = 25 - IIf(.Cells(zeile, 24).Value = "ja", 5, 0)

    If Err = 0 Then
    faellig = DateSerial(Year(Date), Month(.Cells(zeile, "N")), Day(.Cells(zeile, "N")))
    arr = Array(faellig, .Cells(zeile, 17).Value, .Cells(zeile, 16).Value, geschwisterrabatt)
    wb2.Worksheets(1).Cells(newrow, 1).Resize(, 4).Value = arr
    Else
    Err.Clear
    wb2.Worksheets(1).Cells(newrow, 1).Resize(, 4).Value = Array("Fehler", "In Zeile" & zeile, Err.Number, Err.Description)
    End If
    newrow = newrow + 1
    End If
    Next
    On Error GoTo 0
    wb2.Worksheets(1).UsedRange.EntireColumn.AutoFit
    End With


    wb2.Save
    wb1.Activate
    End Sub
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:12:48
    Wolfgang
    Hallo Onur,
    entschuldigung bitte... ehrlich gesagt, konnte ich deine noch nicht testen, weil ich es nicht schaffe, die Datei zu starten...
    Ich bekomme die Meldung, dass ein potentiell gefährliches Makro blockiert wurde...

    Ich muss mich morgen hier einlesen, wie ich das machen soll, wie gesagt ich poste hier nicht so oft... sorry wenn ich mich etwas dämlich anstelle...
    oder hättest du einen schnellen Tipp für mich, wie ich deine Datei starten kann?

    Danke für deine Geduld und dein Verständnis,
    mit uns Laien ist es nicht immer leicht, aber ich bin wirklich dankbar für die Hilfe von Profis
    und ich kann auch verstehen, wenn du dir da die Haare raufst...
    ;-)

    herzliche Grüße
    Wolfgang.
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:14:36
    Wolfgang
    Wir kann ich denn das Makro in der Datei finden, die du für mich hochgeladen hast...
    Oje, hier blamiere ich mich ja total...
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:18:58
    Onur
    plaziere ein Active-X-Button auf "Kundendaten".
    Auf "Entwurfmodus" gehen, Rechtsklick auf das Button, "Code anzeigen".
    Den Code da einfügen (ohne die erste und letzte Zeile).
    Private Sub CommandButton1_Click()
    
    Dim z, ze, pfad
    pfad = "C:\Users\fuchu\Dropbox\Karateclub Liesing\Finanzen\ELBA 5\"
    ze = 2
    Sheets("Kopie").Rows("2:1000").ClearContents
    For z = 2 To 1000
    If Cells(z, 1) > "" Then
    If Not Cells(z, 1).EntireRow.Hidden Then
    If Cells(z, 3) = "ja" And Cells(z, 16) > "" Then
    Cells(z, 1).EntireRow.Copy Sheets("Kopie").Cells(ze, 1)
    ze = ze + 1
    End If
    End If
    End If
    Next z
    Sheets("Kopie").Copy
    ActiveWorkbook.SaveAs Filename:=pfad & Format(Date, "YYYYMMDD") & "_wb2.xlsx"
    ActiveWorkbook.Close
    End Sub
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    05.07.2024 22:46:30
    Wolfgang
    Hallo Onur,
    VIELEN VIELEN DANK!!!
    Du bist super gut!!

    Das war genau die Codezeile, die ich gebraucht habe, damit nur die sichtbaren Zeilen in der Schleife durchlaufen werden!
    If Not Cells(z, 1).EntireRow.Hidden Then
    ..............
    End If

    Ich habe nur ein wenig gebraucht um es zu implementieren, aber jetzt läuft es großartig!!!

    Danke vielmals dafür und noch einen schönen Abend,
    Wolfgang
    Anzeige
    Gerne !
    05.07.2024 22:50:36
    Onur
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 22:29:32
    Onur
    1) Es soll eine NEUE DATEI generiert werden.
    2) Was soll FILTER mit ausgeblendeten Zeilen ???

    Nix für Ungut, aber liest du auch mal Beiträge RICHTIG durch ? :)
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 22:55:25
    BoskoBiati2
    Hi,

    mit FILTER kann ich direkt die Zeilen herausziehen, die mich interessieren.

    Nix für Ungut, aber liest du auch mal Beiträge RICHTIG durch ?
    Manchmal.

    Gruß

    Edgar
    Anzeige
    AW: Schleife (nur sichtbare Zeilen) und Daten in neues Workbook
    30.06.2024 23:03:08
    Onur
    Er will händisch bereits gefilterte Daten nach best. Kriterien "exportieren".

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige