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

Forumthread: Zeile kopieren, wenn Bedingung in Zeile erfüllt

Zeile kopieren, wenn Bedingung in Zeile erfüllt
30.08.2004 12:31:58
Andreas
Hallo!
Ich kämpfe mit einem Problem, dass ich eigentlich als ganz einfach interpretiert habe:
Ich will aus einer Tabelle (Spalten A bis W und rund 300 Zeilen) immer dann die ganze Zeile (Datensatz) in ein neues Tabellenblatt kopieren, wenn eine Bedingung in Spalte J erfüllt ist.
Die Bedingung ist ein Datum. Immer wenn das in "J" stehende Datum größer als der 31.12.03 ist, dann soll die Zeile kopiert werden.
Die kopierten Zeilen sollen dann komplett in einem neuen Blatt stehen.
Weiß jemand, wie das geht? oder besser gesagt, welchen Code ich dafür brauche? Ich habe leider von VBA keinen Schimmer, zumindest nicht soviel, dass ich das lösen könnte.
Danke!
Gruß Andi
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile kopieren, wenn Bedingung in Zeile erfüllt
Uduuh
Hallo,
in ein Modul:

Sub KopierenDatum()
Dim Z1 As Integer, Z2 As Integer
Z2 = 1
For Z1 = Cells(65536, 1).End(xlUp).Row To 1 Step -1
If Cells(Z1, 10) > DateValue("31.12.2003") Then
Range(Cells(Z1, 1), Cells(Z1, 23)).Copy Destination:=Sheets("Tabelle2").Cells(Z2, 1)
Z2 = Z2 + 1
End If
Next Z1
End Sub

Gruß aus'm Pott
Udo
Anzeige
;

Forumthreads zu verwandten Themen

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

Zeilen kopieren in ein anderes Tabellenblatt basierend auf Bedingungen


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen in ein anderes Tabellenblatt zu kopieren, wenn eine bestimmte Bedingung erfüllt ist, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft das Datum in Spalte J und kopiert die gesamte Zeile, wenn das Datum größer als der 31.12.2003 ist.

  1. Öffne deine Excel-Datei.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden Code in das Modul ein:

    Sub KopierenDatum()
       Dim Z1 As Integer, Z2 As Integer
       Z2 = 1
       For Z1 = Cells(65536, 1).End(xlUp).Row To 1 Step -1
           If Cells(Z1, 10) > DateValue("31.12.2003") Then
               Range(Cells(Z1, 1), Cells(Z1, 23)).Copy Destination:=Sheets("Tabelle2").Cells(Z2, 1)
               Z2 = Z2 + 1
           End If
       Next Z1
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle KopierenDatum und klicke auf Ausführen.

Dieser Code wird die gesamte Zeile in das Tabellenblatt "Tabelle2" kopieren, wenn die Bedingung erfüllt ist.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"

    • Lösung: Stelle sicher, dass das Zielblatt (z.B. "Tabelle2") existiert. Ansonsten erstelle ein neues Tabellenblatt mit diesem Namen.
  • Fehler: "Typen unverträglich"

    • Lösung: Überprüfe, ob die Zellen in Spalte J tatsächlich Datumswerte sind. Manchmal können sie als Text gespeichert sein. Formatiere die Spalte als Datum.
  • Fehler: "Das Makro kann nicht gefunden werden"

    • Lösung: Stelle sicher, dass das Makro im richtigen Modul gespeichert ist und dass du es korrekt aufrufst.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die FILTER-Funktion (verfügbar in Excel 365) nutzen:

  1. Gehe zu einer leeren Zelle in deinem Zielblatt.
  2. Verwende die folgende Formel:

    =FILTER(Tabelle1!A:W, Tabelle1!J:J > DATE(2003, 12, 31))

Diese Formel kopiert alle Zeilen von "Tabelle1" nach "Tabelle2", bei denen die Bedingung in Spalte J erfüllt ist.


Praktische Beispiele

Angenommen, du hast folgende Daten in "Tabelle1":

A B ... J
... ... ... 01.01.2004
... ... ... 15.11.2003
... ... ... 05.05.2005

Nach Ausführung des Codes oder der Formel wird nur die erste und die dritte Zeile in "Tabelle2" kopiert, da sie die Bedingung erfüllen.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es automatisch beim Öffnen der Datei ausgeführt wird, indem du es im Workbook_Open-Event platzierst.
  • Datenvalidierung: Verwende Datenvalidierung in Spalte J, um sicherzustellen, dass nur gültige Datumswerte eingegeben werden.
  • Erweiterung: Du kannst den Code erweitern, um mehrere Bedingungen zu prüfen, z.B. zusätzlich zu Datumswerten auch Werte in anderen Spalten.

FAQ: Häufige Fragen

1. Frage: Kann ich mehrere Bedingungen hinzufügen?
Antwort: Ja, du kannst weitere If-Anweisungen in den Code einfügen, um zusätzliche Bedingungen zu überprüfen.

2. Frage: Ist dieser Code in allen Excel-Versionen verfügbar?
Antwort: Ja, der VBA-Code sollte in allen Versionen von Excel, die VBA unterstützen, funktionieren. Stelle sicher, dass du die richtige Excel-Version verwendest.

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