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

Forumthread: Werte suchen und in anderem Tabellenblatt einfügen

Werte suchen und in anderem Tabellenblatt einfügen
05.12.2017 15:15:24
Martin
Hallo zusammen,
ich bin noch Anfänger was VBA Programmierung an geht und gerade dabei mein zweites Makro zu schreiben. Jedenfalls versuche ich es :-)
Es geht sich um folgendes:
Ich möchte den Wert A1 von Tabellenblatt1 in Tabellenblatt2 suchen. Dieser Wert befindet sich irgendwo in Spalte A von Tabellenblatt2.
Anschließend sollen alle Werte die sich in Tabelle 1 befinden in das Tabellenblatt2 übertragen werden und zwar ab da, wo sich der Wert im Tabellenblatt2 wieder findet.
In meinem Fall steht ein Datum mit Uhrzeit in A1 Tabellenblatt1. Das Tabellenblatt2 beinhaltet ebenfalls Datum mit Uhrzeit in Spalte A. Dieses soll also fortgeführt werden um die Werte von Tabellenblatt1, die es bei Tabellenblatt2 noch nicht gibt. Insgesamt gibt es hier Werte von Spalte A bis H. Mehr Spalten kommen auch nicht hinzu. Das einzige was sich ändert ist die Anzahl der Zeilen in Tabellenblatt1.
Ziel ist es, dass ich nur noch einen Button betätige und die Daten dann jedes Mal übertragen werden.
Ich würde mich freuen wenn mir jemand nicht nur den Code dazu geben würde sondern auch eine kurze Erklärung dazu damit ich verstehe wie es funktioniert.
Vielen Dank
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wir/ich würden uns über eine Beispielmappe freuen
05.12.2017 15:47:54
Werner
Hallo Martin,
zumindest mir ist nicht so ganz klar was du möchtest.
Wenn ich das richtig interpretiere, dann benutzt du Tabellenblatt 1 als Eingabemaske und willst die Daten nach Abschluß der Eingaben vom Blatt 1 ins Blatt 2 übertragen, immer in die Zeile von Blatt 2 in der Datum und Uhrzeit mit dem Datum und der Uhrzeit aus Blatt 1 A1 übereinstimmen.
Mach mal eine kleine Beispielmappe und lade die hoch, damit man sieht, was warum wohin soll.
Gruß Werner
Anzeige
Nochmal mit Beispielmappe
05.12.2017 16:46:24
Martin
Hallo Werner,
ich sehe es grad selber das ich einen kleinen Denkfehler in der Beschreibung habe.
Hab mal ne Datei erstellt.
Das letzte Datum aus Tabelle2 soll in Tabelle1 gesucht werden und anschließend alles, was unter diesem Datum in Tabelle1 steht Zellen und Spalten) in Tabelle2 verschoben werden. Tabelle1 kann danach gelöscht werden.
https://www.herber.de/bbs/user/118117.xlsx
Danke
Anzeige
AW: Nochmal mit Beispielmappe
05.12.2017 18:13:39
Werner
Hallo Martin,
teste:
Public Sub aaa()
Dim loLetzteQ As Long, loLetzteZ As Long
Dim loStart As Long, loSpalte As Long
Dim wsQ As Worksheet, wsZ As Worksheet
Set wsQ = Worksheets("Tabelle1")
Set wsZ = Worksheets("Tabelle2")
loLetzteZ = wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Row
loLetzteQ = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row
On Error Resume Next
loStart = wsQ.Columns(1).Find(wsZ.Cells(loLetzteZ, 1)).Row
If loStart = 0 Then
On Error GoTo 0
MsgBox "Datum/Zeit aus der letzten Zeile in Tabelle 2" _
& vbLf & "ist in Spalte A in Tabelle 1 nicht vorhanden."
End If
loSpalte = wsQ.Cells(1, wsQ.Columns.Count).End(xlToLeft).Column
wsQ.Range(wsQ.Cells(loStart + 1, 1), wsQ.Cells(loLetzteQ, loSpalte)).Copy _
wsZ.Cells(loLetzteZ + 1, 1)
wsQ.Cells.ClearContents
Set wsQ = Nothing: Set wsZ = Nothing
End Sub
Gruß Werner
Anzeige
AW: Nochmal mit Beispielmappe
06.12.2017 10:37:29
Martin
Hallo Werner,
funktioniert einwandfrei. Super Vielen Dank.
Ich wird mich dann mal rein hauen um zu verstehen wies geht ;-)
Noch mal vielen Dank.
Gerne u. Danke für die Rückmeldung. o.w.T.
06.12.2017 10:57:43
Werner
;

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

Werte suchen und in einem anderen Tabellenblatt einfügen


Schritt-für-Schritt-Anleitung

Um in Excel einen Wert aus einem anderen Tabellenblatt zu suchen und zu übernehmen, folge diesen Schritten:

  1. Öffne die Excel-Datei mit mindestens zwei Tabellenblättern (Tabellenblatt1 und Tabellenblatt2).

  2. Wechsle zur Entwicklertools-Registerkarte (aktiviere sie eventuell in den Excel-Optionen).

  3. Klicke auf „Visual Basic“, um den VBA-Editor zu öffnen.

  4. Füge ein neues Modul hinzu:

    • Rechtsklick auf „VBAProject (DeineDatei.xlsx)“.
    • Wähle „Einfügen“ > „Modul“.
  5. Kopiere den folgenden VBA-Code in das Modul:

    Public Sub WerteUebertragen()
        Dim loLetzteQ As Long, loLetzteZ As Long
        Dim loStart As Long, loSpalte As Long
        Dim wsQ As Worksheet, wsZ As Worksheet
        Set wsQ = Worksheets("Tabellenblatt1")
        Set wsZ = Worksheets("Tabellenblatt2")
    
        loLetzteZ = wsZ.Cells(wsZ.Rows.Count, 1).End(xlUp).Row
        loLetzteQ = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row
    
        On Error Resume Next
        loStart = wsQ.Columns(1).Find(wsZ.Cells(loLetzteZ, 1)).Row
        If loStart = 0 Then
            MsgBox "Datum/Zeit aus der letzten Zeile in Tabellenblatt 2 ist in Spalte A in Tabellenblatt 1 nicht vorhanden."
            Exit Sub
        End If
    
        loSpalte = wsQ.Cells(1, wsQ.Columns.Count).End(xlToLeft).Column
        wsQ.Range(wsQ.Cells(loStart + 1, 1), wsQ.Cells(loLetzteQ, loSpalte)).Copy _
        wsZ.Cells(loLetzteZ + 1, 1)
    
        wsQ.Cells.ClearContents
        Set wsQ = Nothing: Set wsZ = Nothing
    End Sub
  6. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Datei.

  7. Füge einen Button hinzu, um das Makro auszuführen:

    • Wähle „Entwicklertools“ > „Einfügen“ > „Button“ und ziehe ihn auf dein Blatt.
    • Wähle das Makro „WerteUebertragen“ aus und klicke „OK“.

Jetzt kannst du mit einem Klick die Daten aus Tabellenblatt1 in Tabellenblatt2 übertragen, indem du den zuletzt gefundenen Wert in Spalte A suchst.


Häufige Fehler und Lösungen

  • Fehler: „Datum/Zeit nicht vorhanden“
    Lösung: Stelle sicher, dass das Datum/Zeit aus Tabellenblatt2 in Tabellenblatt1 korrekt eingegeben ist.

  • Fehler: Makro läuft nicht
    Lösung: Überprüfe die Sicherheitseinstellungen für Makros in den Excel-Optionen. Stelle sicher, dass Makros aktiviert sind.


Alternative Methoden

Wenn du keine VBA-Lösungen nutzen möchtest, kannst du auch die SVERWEIS-Funktion verwenden, um Daten aus einem anderen Tabellenblatt zu suchen und zu übernehmen:

=SVERWEIS(A1;Tabellenblatt2!A:H;2;FALSCH)

Diese Formel sucht den Wert in A1 von Tabellenblatt1 in der ersten Spalte von Tabellenblatt2 und gibt den Wert aus der zweiten Spalte zurück.


Praktische Beispiele

Ein Beispiel für die Verwendung des VBA-Codes:

  1. In Tabellenblatt1 hast du folgende Daten:

    A          B      C
    01.01.2023  Wert1  Wert2
    02.01.2023  Wert3  Wert4
  2. In Tabellenblatt2 hast du:

    A          B      C
    01.01.2023

Wenn du das Makro ausführst, wird alles unter „01.01.2023“ in Tabellenblatt2 eingefügt.


Tipps für Profis

  • Verwende benannte Bereiche, um die Wartung deiner Formeln und Makros zu erleichtern.
  • Implementiere Fehlerbehandlungen im VBA-Code, um die Benutzerfreundlichkeit zu verbessern.
  • Teste den Code in einer Kopie deiner Datei, um unerwünschte Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um nur bestimmte Spalten zu übertragen?
Du kannst die Range-Anweisung im Code ändern, um nur die gewünschten Spalten auszuwählen.

2. Funktioniert das auch in älteren Excel-Versionen?
Ja, die meisten VBA-Codes funktionieren in Excel 2010 und neuer. Stelle sicher, dass du die richtigen Objekte und Eigenschaften 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