Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Wert suchen und Zellen kopieren

Per VBA Wert suchen und Zellen kopieren
13.09.2021 13:50:22
Michael
Hallo zusammen,
ich stehe gerade vor einem Makro-Problem, das mich etwas an meine Grenzen bringt und wäre äußerst dankbar, wenn jemand dafür einen Code hätte. Ich hänge eine Beispiel-Datei an, da das sonst wohl etwas kompliziert ist.
Ich habe 2 Tabellenblätter: "Liste1" und "Liste2". In Liste 1 stehen Daten, die teilweise in Liste 2 übernommen werden sollen.
Ich hätte nun gerne ein Makro, das folgendes macht:
Es soll ein Fenster erscheinen mit dem Text "Bitte die gewünschte KW eintragen" und eben einem Feld um einen Wert einzugeben.
Die KW steht in Liste 1 in Spalte F.
Nun soll Excel aus den Zeilen mit dieser KW die Werte aus den Spalten B, C, D und E kopieren und in Liste 2 einfügen.
Achtung: Es sollen nur die Zeilen kopiert werden, bei denen die Zelle in Spalte A leer ist.
Eingefügt werden müsste in Liste2 beginnend bei Zeile 3.
Leider ändern sich auch die Spalten. Der Wert aus Liste1 Spalte B muss in Liste2 Spalte E, C muss in A, D muss in B, E muss in C.
Leider wird in Liste1 viel mit diversen Filtern gearbeitet. Vermutlich wäre es ja die einfachste Lösung das mittels eines Autofilters zu lösen. Falls ja, müsste das Makro am Ende die Filter wieder auf die vorherige Einstellung zurücksetzen... keine Ahnung ob das möglich ist.
Ich hoffe ihr konntet mir folgen. Wäre super dankbar, wenn mir jemand helfen könnte.
https://www.herber.de/bbs/user/148038.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Ergänzung... (Tippfehler)
13.09.2021 15:53:46
migre
Hi!
In der Zeile

EingabeFehler:
WsZ.AutoFilterMode = False
hab ich mich vertippt, es muss

WsQ.AutoFilterMode = False
heißen.
LG Michael
Anzeige
Kleiner Fehler noch
14.09.2021 08:17:19
Michael
Vielen vielen Dank dir! Das funktioniert schon fast perfekt!
Ein kleiner Fehler ist allerdings noch drin. Ich hab grad schon etwas herumprobiert, aber ich bekomms leider nicht hin.
Wenn in der Liste2 schon Daten stehen (z.B. KW 45) und ich dann das Makro ausführe mit KW46 (das ist die Woche mit dem "x" in der Spalte "Rahmen"), dann setzt er mir das "x" in der Liste2 in Zeile 3, also da wo eigentlich Daten aus KW 45 stehen.
Kann man das noch anpassen?
Vielen Dank vorab!
Anzeige
AW: Sicher, da war ich unaufmerksam...
15.09.2021 14:11:54
Michael
Super!
Danke dir
;

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 per VBA suchen und kopieren in Excel


Schritt-für-Schritt-Anleitung

Um Daten von einem Tabellenblatt in ein anderes zu kopieren, benötigst du ein VBA-Makro. Folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDateiName)" und wähle Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub WerteKopieren()
       Dim ws1 As Worksheet, ws2 As Worksheet
       Dim kw As String
       Dim letzteZeile As Long, i As Long, zielZeile As Long
    
       Set ws1 = ThisWorkbook.Worksheets("Liste1")
       Set ws2 = ThisWorkbook.Worksheets("Liste2")
    
       kw = InputBox("Bitte die gewünschte KW eintragen")
    
       letzteZeile = ws1.Cells(ws1.Rows.Count, "F").End(xlUp).Row
       zielZeile = 3 ' Start in Liste2 bei Zeile 3
    
       For i = 1 To letzteZeile
           If ws1.Cells(i, "F").Value = kw And ws1.Cells(i, "A").Value = "" Then
               ws2.Cells(zielZeile, "E").Value = ws1.Cells(i, "B").Value
               ws2.Cells(zielZeile, "A").Value = ws1.Cells(i, "C").Value
               ws2.Cells(zielZeile, "B").Value = ws1.Cells(i, "D").Value
               ws2.Cells(zielZeile, "C").Value = ws1.Cells(i, "E").Value
               zielZeile = zielZeile + 1
           End If
       Next i
    End Sub
  4. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle WerteKopieren und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Problem: Das Makro kopiert die Werte an die falsche Stelle.

    • Lösung: Stelle sicher, dass die Zielzeile (zielZeile) korrekt gesetzt ist und dass in Liste2 ab Zeile 3 eingefügt wird, wo die vorherigen Daten nicht überschrieben werden.
  • Problem: Der Filter wird nicht zurückgesetzt.

    • Lösung: Füge am Ende des Makros den Code hinzu, um die Filter zurückzusetzen, falls du mit Autofilter gearbeitet hast.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die folgende Methode nutzen:

  1. Verwende SVERWEIS:

    • Mit der Funktion SVERWEIS kannst du Werte aus Liste1 in Liste2 suchen und kopieren, jedoch ist diese Methode weniger flexibel bei komplexen Anforderungen.
  2. Kopieren und Einfügen:

    • Du kannst die Daten auch manuell kopieren und einfügen, wobei du darauf achten musst, die richtigen Spalten und Zeilen zu wählen.

Praktische Beispiele

Wenn du die KW 46 aus Liste1 suchst:

  • In Liste1 stehen in Spalte F die Kalenderwochen.
  • In den Spalten B, C, D und E befinden sich die Werte, die du in Liste2 übertragen möchtest.
  • Stelle sicher, dass die Zellen in Spalte A leer sind, bevor du das Makro ausführst.

Tipps für Profis

  • Debugging: Nutze die Debug.Print-Anweisung im Code, um Zwischenergebnisse zu überprüfen, während das Makro ausgeführt wird.

  • Fehlerbehandlung: Implementiere On Error Resume Next und On Error GoTo 0, um Fehler im Makro elegant zu handhaben.

  • Speichere deine Arbeit: Bevor du das Makro ausführst, speichere deine Datei, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Muss ich etwas an den Spalten ändern? Ja, die Spalten B, C, D, und E in Liste1 müssen die entsprechenden Werte enthalten, die du in Liste2 übertragen möchtest.

2. Kann ich das Makro für mehrere Kalenderwochen gleichzeitig verwenden? Das aktuelle Makro ist auf eine KW ausgelegt. Du müsstest den Code anpassen, um mehrere KWs zu verarbeiten.

3. Was mache ich, wenn das Makro nicht funktioniert? Überprüfe den Code auf Schreibfehler, insbesondere bei den Blattnamen und Spaltenbezügen. Stelle sicher, dass die Blätter existieren und die Daten korrekt angeordnet sind.

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