Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nur bestimmte Zeilen aus versch. Blätter kopieren

Nur bestimmte Zeilen aus versch. Blätter kopieren
23.04.2018 18:17:15
Marius
Hallo zusammen,
ich möchte aus verschiedenen Arbeitsblättern NUR diejenigen Zeilen in ein Zusammenfassungs-Blatt kopieren, die in der Spalte G den Wert "doing" aufweisen.
Leider versagen meine VBA-Kenntnisse beim Einbau der Bedingung "nur Wert doing in Spalte G", und ich bitte euch um Hilfe.
Das folgende (gefundeene und abgewandelte) Makro erfüllt den Zweck des Kopierens von Zeilen.
Wie baue ich nun die obengenannte Bedingung ein, so dass aus den verschiedenen Blättern nur Zeilen einkopiert werden, die in der Spalte G den Wert "doing" enthalten?
Danke und viele Grüsse, Marius
**********************
Public Sub Übersicht()
Dim WkSh_Q    As Worksheet ' die Quell-Tabellenblätter - die Herkunftblätter
Dim WkSh_Z    As Worksheet ' das  Ziel-Tabellenblatt   - die Ausgabe
Dim lZeile_Q  As Long      ' der For/Next Schleifen-Index im Quell-Tabellenblatt
Dim lZeile_Z  As Long      ' die Ausgabezeile im Ziel-Tabellenblatt
Application.ScreenUpdating = False ' kein Bildschirm-Update - kein Flackern
Set WkSh_Z = ThisWorkbook.Worksheets("Übersicht") ' das Ausgabeblatt
For Each WkSh_Q In ThisWorkbook.Worksheets   ' über alle Blätter der Mappe laufen
If WkSh_Q.Name  "Übersicht" Then  ' das Ziel-Tabellenblatt ausnehmen
'           ab Zeile 7 bis zur letzten belegten Zelle in Spalte 1 = A
For lZeile_Q = 7 To WkSh_Q.Cells(Rows.Count, 1).End(xlUp).Row
'              ist die Zeile die kopiert werden soll NICHT leer?
If WorksheetFunction.CountA(WkSh_Q.Rows(lZeile_Q))  0 Then
'                 im Ziel-Tabellenblatt die nächste freie Zeile suchen
lZeile_Z = WkSh_Z.Cells(Rows.Count, 1).End(xlUp).Row + 1
'                 ist die erste freie Zeile im Ziel-Tabellenblatt  ZielTabellenblatt kopieren
WkSh_Q.Rows(lZeile_Q).Copy Destination:=WkSh_Z.Rows(lZeile_Z)
End If
Next lZeile_Q
End If
Next WkSh_Q
Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur bestimmte Zeilen aus versch. Blätter kopieren
23.04.2018 18:49:53
Günther
Moin Marius,
wenn ich das richtig sehe, kannst du das ganz ohne VBA und wahrscheinlich auch ohne eine einzige Formel erledigen lassen: Power Query, -> http://www.excel-ist-sexy.de/power-query-das-add-in/heißt das Zauberwort. Das ist für "Normalos" gewiss leichter lernbar als VBA.
Anzeige
PowerQuery Filter?
24.04.2018 15:00:31
Marius
Hallo Günther,
danke für den Hinweis mit PowerQuery. Ich denke, die grundsätzlichen Abfragen werde ich hinbekommen, aber wie richte ich die "Filterbedingung" (nur Zeile kopieren WENN Wert in Spate G = "doing"?
Danke und Gruss, Marius
AW: PowerQuery Filter?
24.04.2018 19:25:26
Günther
Moin Marius,
das geht praktisch genau so wie in einer formatierten / intelligenten Tabelle. Du erweiterst die Überschriftzeile durch einen Klick auf das ▼ deaktivierst das Häkchen bei (Alles auswählen) und setzt dann das Häkchen bei doing. Eventuell auch bei Doing, weil PQ case-sensitiv ist.
Falls du wissen willst, ob doing in der Spalte enthalten ist I'm doing this dann filterst du nach Enthält doing. Bei Bedarf kannst du ja dein File hier hochladen.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nur bestimmte Zeilen aus verschiedenen Blättern kopieren


Schritt-für-Schritt-Anleitung

Um bestimmte Zeilen in ein anderes Tabellenblatt zu kopieren, die in der Spalte G den Wert "doing" aufweisen, kannst du das folgende VBA-Makro verwenden. Du kannst das bestehende Makro von Marius verwenden und entsprechend anpassen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Public Sub Übersicht()
    Dim WkSh_Q    As Worksheet ' die Quell-Tabellenblätter - die Herkunftblätter
    Dim WkSh_Z    As Worksheet ' das Ziel-Tabellenblatt - die Ausgabe
    Dim lZeile_Q  As Long      ' der For/Next Schleifen-Index im Quell-Tabellenblatt
    Dim lZeile_Z  As Long      ' die Ausgabezeile im Ziel-Tabellenblatt
    Application.ScreenUpdating = False ' kein Bildschirm-Update - kein Flackern
    Set WkSh_Z = ThisWorkbook.Worksheets("Übersicht") ' das Ausgabeblatt
    For Each WkSh_Q In ThisWorkbook.Worksheets   ' über alle Blätter der Mappe laufen
        If WkSh_Q.Name <> "Übersicht" Then  ' das Ziel-Tabellenblatt ausnehmen
            For lZeile_Q = 7 To WkSh_Q.Cells(Rows.Count, 1).End(xlUp).Row
                ' Überprüfen, ob der Wert in Spalte G "doing" ist
                If WkSh_Q.Cells(lZeile_Q, 7).Value = "doing" Then
                    ' im Ziel-Tabellenblatt die nächste freie Zeile suchen
                    lZeile_Z = WkSh_Z.Cells(Rows.Count, 1).End(xlUp).Row + 1
                    ' kopieren der Zeile ins Ziel-Tabellenblatt
                    WkSh_Q.Rows(lZeile_Q).Copy Destination:=WkSh_Z.Rows(lZeile_Z)
                End If
            Next lZeile_Q
        End If
    Next WkSh_Q
    Application.ScreenUpdating = True  ' den Bildschirm-Update wieder zulassen
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Kompatibilitätsprobleme"

    • Stelle sicher, dass du eine unterstützte Excel-Version verwendest. VBA funktioniert am besten in Excel 2010 und höher.
  • Problem: Makro wird nicht ausgeführt

    • Überprüfe, ob Makros in deiner Excel-Version aktiviert sind. Gehe zu Datei > Optionen > Trust Center und aktiviere die Makros.
  • Fehler: Keine Zeilen kopiert

    • Vergewissere dich, dass die Werte in Spalte G genau "doing" sind, ohne zusätzliche Leerzeichen.

Alternative Methoden

Wenn du Excel bestimmte Zeilen in ein neues Blatt kopieren möchtest, kannst du auch Power Query verwenden:

  1. gehe zu Daten > Abrufen und transformieren.
  2. Wähle die Blätter aus, die du importieren möchtest.
  3. Füge einen Filter hinzu, um nur Zeilen anzuzeigen, die den Wert "doing" in Spalte G haben.
  4. Lade die gefilterten Daten in ein neues Blatt.

Praktische Beispiele

Angenommen, du hast mehrere Arbeitsblätter mit verschiedenen Daten. Du möchtest nur die Zeilen, die in Spalte G "doing" enthalten, herausfiltern und in dein Übersicht-Blatt kopieren.

Verwende das oben genannte VBA-Makro, um dies effizient zu erledigen. Du kannst das Makro auch anpassen, um nach anderen spezifischen Werten zu filtern.


Tipps für Profis

  • Du kannst das Makro erweitern, um mehrere Bedingungen zu berücksichtigen, z.B. auch andere Spaltenwerte.
  • Verwende Fehlerbehandlung im VBA, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben stabil läuft.
  • Experimentiere mit Power Query für eine benutzerfreundlichere Lösung ohne Programmierung.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zeilen kopieren?
Du kannst das VBA-Makro anpassen, um spezifische Bedingungen für das Kopieren von Zeilen festzulegen.

2. Funktioniert das Makro in älteren Excel-Versionen?
Das Makro sollte in Excel 2010 und höheren Versionen problemlos funktionieren. In älteren Versionen können Komplikationen auftreten.

3. Gibt es eine Möglichkeit, die Zeilen automatisch in ein anderes Tabellenblatt zu kopieren?
Ja, das VBA-Makro ermöglicht es dir, Zeilen automatisch zu kopieren, basierend auf den definierten Bedingungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige