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

Forumthread: Wenn Wert in Spalte, ganze Zeile Kopieren

Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:02:43
Moritz
Hallo zusammen,
ich habe eine Tabelle mit 6 Spalten (A-F) und möchte nun gerne, dass alle Zeilen, in denen die Werte in Spalte D mit "AT" beginnen (z.B. "AT0001") in ein neues Arbeitsblatt kopiert werden.
Die Tabelle hat mehrere tausend Zeilen und keine klar definierbare Anzahl an Zeilen, weshalb ich gerne über die gesamte Spalte hinweg den Abgleich vornehmen möchte.
Eigentlich müsste ich das selber können, aber irgendwie bekomme ich es grade partout nicht hin.
Wärt ihr so nett mir einmal zu helfen? Vielen Dank, Moritz
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Filter setzen ...
19.02.2019 10:08:47
Matthias
Hallo
Spalte("D") filtern nach beginnt mit: "AT"
gefilterten Bereich markieren und kopieren und in anderes Blatt einfügen.
Das sollte es schon gewesen sein
Gruß Matthias
AW: Filter setzen ...
19.02.2019 10:14:25
Moritz
Hallo Matthias,
danke für deine Antwort. Ja das mit dem Filter stimmt natürlich. Allerdings wollte ich das ganze gerne automatisieren, da ich Dateien mit dieser Struktur regelmäßig abrufe. Hätte ich selbstverständlich in meinem anfänglichen Post erwähnen sollen!
Anzeige
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:08:48
ede
Hallo Moritz,
setze auf die Spalte D einen Filter und als Filterbedingung "Textfilter Beginnt mit 'AT", markiere die Zeilen und kopiere sie dir in ein neues Tabellenblatt.
gruss
ede
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:12:45
Moritz
Hallo Ede,
danke für deine Antwort. Ja das mit dem Filter stimmt natürlich. Allerdings wollte ich das ganze gerne automatisieren, da ich Dateien mit dieser Struktur regelmäßig abrufe. Hätte ich selbstverständlich in meinem anfänglichen Post erwähnen sollen!
Anzeige
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:21:15
ede
Hallo noch mal,
als per vba, teste mal, bitte die Blattnamen anpassen...

Sub test()
Dim i As Long, tLR As Long
Dim tarWks As Worksheet, srcWks As Worksheet
Set srcWks = Worksheets("Tabelle1")
Set tarWks = Worksheets("Tabelle2")
With srcWks
For i = 1 To .Cells(.Rows.Count, 4).End(xlUp).Row
If Left(.Cells(i, 4).Value, 2) = "AT" Then
tLR = tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1
Debug.Print tLR
With tarWks
.Range(.Cells(tLR, 1), .Cells(tLR, 10)).Value = srcWks.Range(srcWks.Cells(i, 1), _
_
srcWks.Cells(i, 10)).Value
End With
End If
Next i
End With
End Sub

Anzeige
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:48:45
Moritz
Hallo Ede,
vielen vielen Dank für den VBA Code. Auch wenn ich leider nicht nachvollziehen kann was genau du da gemacht hast: Es funktioniert ausgezeichnet! Danke nochmals!
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 10:57:48
Günther
Moin Moritz,
wenn du xl2010/13: Power Query, xl2016/365: Daten | Abrufen und transformieren einsetzt, kannst du das Filtern und kopieren so automatisieren, dass per Mausklick das Ziel-Sheet aktualisiert wird.
Gruß
Günther
Anzeige
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 11:13:45
Moritz
Hallo Günther,
danke für den Tipp. Könntest du das etwas näher erläutern?
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 11:31:58
Günther
Ja klar, Moritz...
wenn du Excel 2013 hast, dann musst du das kostenlose Add-In Power Query bei MS herunterladen und installieren. Ansonsten hast du es unter dem Menüpunkt Daten | Abrufen und transformieren on board.
Danach importierst du die Daten über PQ und wählst -wie schon für Excel beschrieben- Spalte("D") filtern nach beginnt mit: "AT". Dadurch bleiben dann nur die gesuchten Daten übrig. "Schließen & laden" und es wird automatisch eine neue Tabelle in einem neuen Tabellenblatt erstellt. Und wenn sich die Quelldaten ändern ein Klick auf Aktualisieren und die extrahierten Daten werden angepasst.
Gruß
Günther
Anzeige
AW: Wenn Wert in Spalte, ganze Zeile Kopieren
19.02.2019 11:38:37
ede
Hallo,
anbei mal ein zweiter Code incl. Erläuterungen:

Sub BedingteZeilenKopieren()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
Dim strSuch As String
Dim tarWks As Worksheet, srcWks As Worksheet
Set srcWks = Worksheets("Tabelle1")   'Quelle anpassen
' Set tarWks = Worksheets("Tabelle2") 'Zielsheet als vorhandenens Sheet setzen
Set tarWks = Worksheets.Add           'neues Sheet anlegen
strSuch = "AT"                       'Suchbegriff
With srcWks
ZeileMax = .UsedRange.Rows.Count   'letzte Zeile im Quellsheet
n = 2                              'erste Zeile im ZielSheet
For Zeile = 2 To ZeileMax          'Quellsheet zeilenweise durchlaufen
If Left(.Cells(Zeile, 4).Value, Len(strSuch)) = strSuch Then 'prüfe Suchbegriff in Spalte 4
.Rows(Zeile).Copy Destination:=tarWks.Rows(n)   'Zeile kopieren in Zeile n
n = n + 1                     'Nächste Zeile im Zielsheet setzen
End If
Next Zeile
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen basierend auf Spaltenwerten in Excel kopieren


Schritt-für-Schritt-Anleitung

Um alle Zeilen in Excel zu kopieren, in denen die Werte in Spalte D mit "AT" beginnen, kannst Du folgende Schritte ausführen:

  1. Öffne Deine Excel-Datei.
  2. Setze einen Filter auf Spalte D:
    • Klicke auf die Überschrift von Spalte D.
    • Gehe zu „Daten“ und wähle „Filter“.
    • Klicke auf den Dropdown-Pfeil und wähle „Textfilter“ > „Beginnt mit…“.
    • Gib „AT“ in das Eingabefeld ein und bestätige.
  3. Markiere die gefilterten Zeilen:
    • Klicke auf die erste Zeile, halte die Shift-Taste gedrückt und klicke auf die letzte Zeile, um alle gefilterten Zeilen auszuwählen.
  4. Kopieren und Einfügen:
    • Kopiere die ausgewählten Zeilen (Strg + C).
    • Gehe zu dem neuen Arbeitsblatt, wo die Daten eingefügt werden sollen, und füge sie ein (Strg + V).

Wenn Du diesen Prozess automatisieren möchtest, kannst Du den folgenden VBA-Code verwenden:

Sub BedingteZeilenKopieren()
    Dim Zeile As Long
    Dim ZeileMax As Long
    Dim n As Long
    Dim strSuch As String
    Dim tarWks As Worksheet, srcWks As Worksheet
    Set srcWks = Worksheets("Tabelle1")   ' Quelle anpassen
    Set tarWks = Worksheets.Add           ' neues Sheet anlegen
    strSuch = "AT"                       ' Suchbegriff
    With srcWks
        ZeileMax = .UsedRange.Rows.Count   ' letzte Zeile im Quellsheet
        n = 2                              ' erste Zeile im ZielSheet
        For Zeile = 2 To ZeileMax          ' Quellsheet zeilenweise durchlaufen
            If Left(.Cells(Zeile, 4).Value, Len(strSuch)) = strSuch Then ' prüfe Suchbegriff in Spalte 4
                .Rows(Zeile).Copy Destination:=tarWks.Rows(n)   ' Zeile kopieren in Zeile n
                n = n + 1                     ' Nächste Zeile im Zielsheet setzen
            End If
        Next Zeile
    End With
End Sub

Häufige Fehler und Lösungen

  • Filter funktioniert nicht: Stelle sicher, dass Du die Filteroption korrekt eingestellt hast. Überprüfe, ob Du in der richtigen Spalte filterst.
  • Kopierte Daten sind unvollständig: Achte darauf, dass Du alle gefilterten Zeilen ausgewählt hast, bevor Du sie kopierst.
  • VBA-Code gibt einen Fehler aus: Überprüfe, ob die Blattnamen im VBA-Code korrekt sind. Die Namen müssen mit den tatsächlichen Namen der Arbeitsblätter übereinstimmen.

Alternative Methoden

  1. Power Query (Excel 2013 und neuer):

    • Gehe zu „Daten“ > „Abrufen und transformieren“.
    • Wähle „Daten abrufen“ und importiere Deine Tabelle.
    • Filtere die Daten, indem Du „Spalte D“ nach „Beginnt mit: AT“ filterst.
    • Lade die gefilterten Daten in ein neues Blatt.
  2. VBA für regelmäßige Aktualisierungen:

    • Der VBA-Code kann in regelmäßigen Abständen ausgeführt werden, um automatisch die neuesten Daten zu kopieren, wenn sich die Originaldaten ändern.

Praktische Beispiele

  • Beispiel 1: Du hast eine Liste von Bestellungen und möchtest nur die Bestellungen aus Österreich (AT) kopieren.
  • Beispiel 2: In einer Mitarbeiterliste möchtest Du nur die Mitarbeiter, deren ID mit „AT“ beginnt, in ein neues Blatt übertragen.

Tipps für Profis

  • Verwende Namensbereiche: Wenn Du häufig mit bestimmten Daten arbeitest, kannst Du diese in Excel benennen. Das erleichtert den Zugriff in Formeln und VBA.
  • Makros aufzeichnen: Wenn Du häufig dieselben Schritte wiederholst, kannst Du die Makroaufzeichnung verwenden, um einen VBA-Code automatisch zu generieren.
  • Automatisierung mit Timern: Wenn Du regelmäßig Daten kopieren musst, kannst Du Timer im VBA verwenden, um die Aktualisierung automatisch durchzuführen.

FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, wenn ich mehr Spalten habe? Du kannst die Anzahl der Spalten im Code anpassen, indem Du die Range-Parameter entsprechend änderst.

2. Funktioniert dies in Excel 365? Ja, die beschriebenen Methoden, einschließlich der Nutzung von Power Query, sind in Excel 365 verfügbar und können dort angewendet werden.

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