Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In Spalte Suchen und Zeile kopieren

In Spalte Suchen und Zeile kopieren
09.01.2018 13:48:56
Sven
Guten Tag,
ich Suche nach einem Makro, welches in Tabelle1 in der ersten Spalte ein bestimmtet Text sucht (fest im Makro hinterlegt, ohne Inputbox) (der immer wo anders stehen kann) und die Passende Zeile dann in Tabelle 2 kopiert.
Dieses benötige ich dann für 5 "Suchwerte" welche dann von Tabelle 1 in Tabelle2 kopiert werden sollen.
Vorab vielen Dank
Gruß Sven
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte Suchen und Zeile kopieren
10.01.2018 09:26:09
Sven
Guten Morgen,
danke für die Info, konnte es für meine Zwecke anpassen.
Gruß Sven
Anzeige
AW: In Spalte Suchen und Zeile kopieren
11.01.2018 08:14:08
Sven
Guten Tag,
hat mir noch jemand ein Tipp, wie ich das Makro anpassen muss, dass nicht in der Zeile gesucht und kopiert wird sondern in der Spalte gesucht und kopiert wird?
Sub In_Zeile_suchen_Spalte_kopieren()
Dim TB1, TB2, TB3, TB4, TB5, TB6, LR1 As Double, LR2 As Double, LC As Integer, EZ1 As  _
Integer, EZ2 As Integer, EZ3 As Integer, EZ4 As Integer, EZ5 As Integer, EZ6 As Integer
Dim Arr, Z, Spalte As Integer, ESp2 As Integer, ESp3 As Integer, ESp4 As Integer
Set TB1 = Sheets("Tabelle1")
Set TB2 = Sheets("Tabelle2")
EZ1 = 1 'Zeile in der gesucht wird
EZ2 = 2 'Zielzeile für Daten
ESp2 = 1 'erste ZielSpalte
Arr = Array("Rückmeldenummer", "Identität") 'die Suchbegriffe für Rohdaten
With WorksheetFunction
LR1 = .Max(EZ1, TB1.Cells.SpecialCells(xlCellTypeLastCell).Row) 'letze Spalte des  _
gesamten Blattes
LR2 = .Max(EZ2, TB2.Cells.SpecialCells(xlCellTypeLastCell).Row)
'Reset ohne Überschriften
TB2.Rows(EZ2).Resize(LR2 - EZ2 + 1).ClearContents
If LR1 > EZ1 Then 'sind Werte vorhanden?
For Each Z In Arr
If .CountIf(TB1.Rows(EZ1), Z) > 0 Then 'Ist Suchbegriff in Zeile EZ1 =4  _
vorhanden?
Spalte = .Match(Z, TB1.Rows(EZ1), 0) 'in welcher Spalte steht der Begriff
'Übertragen ohne Überschrift
TB2.Cells(EZ2, ESp2).Resize(LR1 - EZ1 + 1).Value = _
TB1.Cells(EZ1 + 1, Spalte).Resize(LR1 - EZ1 + 1).Value
Else
'Fehlermeldung, wenn der Suchbegriff in Rohdaten nicht gefunden wird
MsgBox "Suchbegriff '" & Z & "' wurde nicht gefunden"
End If
ESp2 = ESp2 + 1 'nächste Spalte
Next
End If
End With
End Sub

Anzeige
AW: Range.Find
09.01.2018 15:00:50
Fennek
Hallo,
sieh dir die M$-Hilfe zu Range.Find an, diese Methode ist recht flexibel (mehrfache Treffer, xlPart, formate).
mfg
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

In Spalte Suchen und Zeile kopieren


Schritt-für-Schritt-Anleitung

Um in Excel eine bestimmte Spalte nach einem Text zu durchsuchen und die entsprechende Zeile in eine andere Tabelle zu kopieren, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub In_Zeile_suchen_Spalte_kopieren()
       Dim TB1, TB2 As Worksheet
       Dim EZ1 As Integer, EZ2 As Integer
       Dim Arr As Variant, Z As Variant
       Dim Spalte As Integer, ESp2 As Integer
    
       Set TB1 = Sheets("Tabelle1")
       Set TB2 = Sheets("Tabelle2")
       EZ1 = 1 ' Zeile in der gesucht wird
       EZ2 = 2 ' Zielzeile für Daten
       Arr = Array("Rückmeldenummer", "Identität") ' die Suchbegriffe
    
       With WorksheetFunction
           For Each Z In Arr
               If .CountIf(TB1.Rows(EZ1), Z) > 0 Then
                   Spalte = .Match(Z, TB1.Rows(EZ1), 0)
                   TB2.Cells(EZ2, ESp2).Value = TB1.Cells(EZ1 + 1, Spalte).Value
               Else
                   MsgBox "Suchbegriff '" & Z & "' wurde nicht gefunden"
               End If
               ESp2 = ESp2 + 1
           Next Z
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle das Makro In_Zeile_suchen_Spalte_kopieren aus und klicke auf Ausführen.

Damit wird das Makro die Suchbegriffe in der ersten Zeile von Tabelle1 suchen und die entsprechenden Werte in Tabelle2 kopieren.


Häufige Fehler und Lösungen

  • Fehler: "Suchbegriff wurde nicht gefunden"

    • Lösung: Stelle sicher, dass die Suchbegriffe korrekt im Array definiert sind und dass sie in der angegebenen Zeile vorhanden sind.
  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Überprüfe, ob die Tabellenblätter richtig benannt sind (Tabelle1 und Tabelle2).

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Funktion SVERWEIS oder INDEX und VERGLEICH nutzen, um Werte zu suchen und zu kopieren:

  1. SVERWEIS:

    =SVERWEIS(Suchwert; Tabelle1!A:B; 2; FALSCH)
  2. INDEX und VERGLEICH:

    =INDEX(Tabelle1!B:B;VERGLEICH(Suchwert;Tabelle1!A:A;0))

Diese Methoden sind zwar weniger flexibel, aber sie funktionieren gut für einfache Suchaufgaben.


Praktische Beispiele

  1. Beispiel 1: Du suchst nach "Rückmeldenummer" in der ersten Zeile der Tabelle1. Das Makro kopiert den Wert aus der zweiten Zeile der entsprechenden Spalte in Tabelle2.

  2. Beispiel 2: Wenn Du mehrere Suchbegriffe hast, wie "Identität" und "Rückmeldenummer", kannst Du diese im Arr-Array erweitern, um sie alle gleichzeitig zu suchen und zu kopieren.


Tipps für Profis

  • Experimentiere mit den Suchbegriffen im Arr-Array, um die Suche zu optimieren.
  • Wenn Du regelmäßig mit solchen Aufgaben arbeitest, speichere das Makro in Deiner persönlichen Makroarbeitsmappe, um es einfach zugänglich zu haben.
  • Nutze die Range.Find-Methode für komplexere Suchanfragen, da sie flexibler ist und mehrere Treffer finden kann.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um in mehreren Zeilen zu suchen?
Ja, Du kannst die Schleife anpassen, um mehrere Zeilen zu durchsuchen, indem Du die EZ1-Variable änderst.

2. Funktioniert das Makro in Excel 2016 oder älteren Versionen?
Ja, das Makro ist mit Excel 2016 und älteren Versionen kompatibel.

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