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

Forumthread: VBA Code zum Zellen Kopieren in andere Tabelle

VBA Code zum Zellen Kopieren in andere Tabelle
16.09.2014 09:26:06
marco
Ich habe eine Tabelle die geht von Zelle 2 bis 1000. Die Tabelle heißt : "Terminblatt".
Also was ich tun möchte ist folgendes:
Wenn in Tabelle "Terminblatt" in Spalte "L" "Terminieren oder Nachfragen" steht, dann soll folgende Zellen in dieser Zeile kopiert werden: A E F G H L M.
Die Kopie soll in Tabelle "Zu Erledigen" in Zeile ( ab 3 fortlaufend) Kopiert werden und zwar in Spalte A B C D E F G.
So nun ich hoffe ich habe das verständlich aufgeschrieben.
Danke im voraus

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code zum Zellen Kopieren in andere Tabelle
16.09.2014 09:35:08
Sascha

'Zelle
Sheets("maske").Range("B2:B2").Copy Sheets("Datenbank").Cells(i, 3)
'Nur Werte
Sheets("Datenbank").Cells(i, 4).Value = Sheets("maske").Range("B9").Value
Hier ein paar Beispiele die wohl recht nah an dem sind was Du brauchst.
Einmal wird die Zelle kopiert und das andere mal nur der Zahlenwert ( bei Formeln )
Dieses IF/Else kann ich nicht
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Code zum Zellen Kopieren in andere Tabelle


Schritt-für-Schritt-Anleitung

Um Zellen basierend auf bestimmten Kriterien von einer Tabelle in eine andere zu kopieren, kannst du folgenden VBA-Code verwenden. Dieser Code sucht nach den Werten "Terminieren" oder "Nachfragen" in der Spalte L des "Terminblatt" und kopiert die entsprechenden Daten in die Tabelle "Zu Erledigen".

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub KopiereZellen()
    Dim wsQuelle As Worksheet
    Dim wsZiel As Worksheet
    Dim i As Long, j As Long

    Set wsQuelle = ThisWorkbook.Sheets("Terminblatt")
    Set wsZiel = ThisWorkbook.Sheets("Zu Erledigen")

    j = 3 ' Startzeile in der Ziel-Tabelle

    For i = 2 To 1000
        If wsQuelle.Cells(i, 12).Value = "Terminieren" Or wsQuelle.Cells(i, 12).Value = "Nachfragen" Then
            wsZiel.Cells(j, 1).Value = wsQuelle.Cells(i, 1).Value ' A
            wsZiel.Cells(j, 2).Value = wsQuelle.Cells(i, 5).Value ' E
            wsZiel.Cells(j, 3).Value = wsQuelle.Cells(i, 6).Value ' F
            wsZiel.Cells(j, 4).Value = wsQuelle.Cells(i, 7).Value ' G
            wsZiel.Cells(j, 5).Value = wsQuelle.Cells(i, 8).Value ' H
            wsZiel.Cells(j, 6).Value = wsQuelle.Cells(i, 12).Value ' L
            wsZiel.Cells(j, 7).Value = wsQuelle.Cells(i, 13).Value ' M
            j = j + 1
        End If
    Next i
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle KopiereZellen aus und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass die Tabellen "Terminblatt" und "Zu Erledigen" exakt so benannt sind. Achte auf Leerzeichen und Groß-/Kleinschreibung.
  • Fehler: Kopierte Werte erscheinen nicht in der Ziel-Tabelle

    • Lösung: Überprüfe, ob die Spalte L in "Terminblatt" tatsächlich die gewünschten Werte ("Terminieren" oder "Nachfragen") enthält.

Alternative Methoden

Wenn du keinen VBA-Code verwenden möchtest, könntest du auch die Filterfunktion in Excel nutzen:

  1. Wähle die Tabelle "Terminblatt" aus.
  2. Aktiviere den Filter über Daten > Filter.
  3. Filtere die Spalte L nach "Terminieren" oder "Nachfragen".
  4. Kopiere die gefilterten Zeilen manuell in die Tabelle "Zu Erledigen".

Praktische Beispiele

Angenommen, deine Tabelle "Terminblatt" sieht so aus:

A E F G H L M
Projekt Datum Status Verantwortlicher Notizen Anmerkungen Weitere Details
--------- --------- --------- --------- --------- --------------- ---------
Projekt 1 01.01.2023 Offen Max Mustermann N/A Terminieren Details 1
Projekt 2 02.01.2023 Offen Maria Musterfrau N/A Nachfragen Details 2

Nach dem Ausführen des Codes wird die Tabelle "Zu Erledigen" so aussehen:

A B C D E F G
Projekt Datum Status Verantwortlicher Notizen Anmerkungen Weitere Details
Projekt 1 01.01.2023 Offen Max Mustermann N/A Terminieren Details 1
Projekt 2 02.01.2023 Offen Maria Musterfrau N/A Nachfragen Details 2

Tipps für Profis

  • Du kannst den Code erweitern, um weitere Bedingungen hinzuzufügen oder andere Spalten zu kopieren.
  • Nutze Option Explicit am Anfang deines Moduls, um die Variablen zu deklarieren. Dies hilft, Fehler frühzeitig zu erkennen.

FAQ: Häufige Fragen

1. Frage
Kann ich den Code anpassen, um auch andere Werte zu kopieren?
Antwort: Ja, du kannst die Bedingung im If-Statement ändern und weitere Spalten hinzufügen, die kopiert werden sollen.

2. Frage
Funktioniert dieser Code in jeder Excel-Version?
Antwort: Ja, dieser Code sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige