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

Forumthread: Tabelle durchsuchen und Werte kopieren

Tabelle durchsuchen und Werte kopieren
08.03.2007 09:31:31
UweL.
Hallo,
habe mal wieder ein Problem welches ich lösen möchte...
Ich habe eine Tabel mit mehreren Spalten und Zeilen.
Ich möchte jetzt den Bereich von A1 bis G500 durchsuchen.
Wenn ich jetzt den gesuchten Wert finde. Dann soll der Wert rchts davon in eine zweite Tabelle kopiert werden. Der nächste Gesuchte Wert wird dann in der zweiten Tabelle in der Spalte daneben eingefügt usw.
Ich hoffe es ist Verständlich. Ich würde das Makro dann um die Gesuchten Begriffe jeweils erweitern.
Sagen wir einfach für den anfang ich suche Metall und Kupfer und möchte die Werte rechts davon in die nächste Tabelle kopieren.
Viele Dank für alle Hilfen im vorraus...
Gruß
Uwe L.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle durchsuchen und Werte kopieren
09.03.2007 05:42:57
fcs
Hallo Uwe,
hier zwei Varianten.
In der 1. Variante kannst du die Suchbegriffe in einer Schleife nacheinander in eine Textbox eingeben.
In der 2. Variante sind die Suchbegriffe fest vorgegeben. Weitere Suchbegriffe kannst du in der Zeile
Suchen = Array("Metall", "Kupfer")
ergänzen
Gruss
Franz
Sub SuchenVar1()
Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range, Suchen
Dim Zeile As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Zeile = 2 'Einfügezeile in Tabelle 2
wks2.Rows(Zeile).ClearContents 'alte Inhalte in Einfügezeile löschen
Do
Suchen = InputBox("Suchbegriff?", "Suche was in Tabelle 1")
If Suchen = "" Then GoTo naechste
Set Zelle = wks1.Range("A1:G500").Find(What:=Suchen, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox ("Suchbegriff '" & Suchen & "' nicht gefunden")
Else
With wks2
If IsEmpty(.Cells(Zeile, 1)) Then
.Cells(Zeile, 1) = Zelle.Offset(0, 1).Value
Else
.Cells(Zeile, .Columns.Count).End(xlToLeft).Offset(0, 1) = Zelle.Offset(0, 1).Value
End If
End With
End If
naechste:
Loop Until MsgBox("Weiter suchen ?", vbYesNo + vbQuestion, "Suche was in Tabelle 1") = vbNo
End Sub
Sub SuchenVar2()
Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range, Suchen, i As Integer
Dim Zeile As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
Suchen = Array("Metall", "Kupfer")
Zeile = 2 'Einfügezeile in Tabelle 2
wks2.Rows(Zeile).ClearContents 'alte Inhalte in Einfügezeile löschen
For i = LBound(Suchen) To UBound(Suchen)
Set Zelle = wks1.Range("A1:G500").Find(What:=Suchen(i), LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox ("Suchbegriff '" & Suchen(i) & "' nicht gefunden")
Else
With wks2
If IsEmpty(.Cells(Zeile, 1)) Then
.Cells(Zeile, 1) = Zelle.Offset(0, 1).Value
Else
.Cells(Zeile, .Columns.Count).End(xlToLeft).Offset(0, 1) = Zelle.Offset(0, 1).Value
End If
End With
End If
Next
End Sub

Anzeige
AW: Tabelle durchsuchen und Werte kopieren
09.03.2007 06:47:06
Uwe
Hallo Franz,
vielen Dank für deine beiden Varianten.
Habe beide ausprobiert und beides Funktioniert so wie ich es gerne hätte.
Im Moment favoritisiere ich die zweite Variante. Aber ich habe auch eine Anwendung in
der ich die erste Form gut einsetzen kann.
Also nochmals vielen Dank für deine Hilfe...
Gruß
Uwe
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

Tabelle durchsuchen und Werte kopieren in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle zwei Tabellenblätter: "Tabelle1" für die Daten und "Tabelle2" für die kopierten Werte.
  2. Gib deine Daten in "Tabelle1" ein, und stelle sicher, dass die gesuchten Werte in den Zellen A1 bis G500 stehen.
  3. Öffne den VBA-Editor mit ALT + F11.
  4. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  5. Kopiere den folgenden Code in das Modul:
Sub SuchenVar2()
    Dim wks1 As Worksheet, wks2 As Worksheet, Zelle As Range, Suchen, i As Integer
    Dim Zeile As Long
    Set wks1 = Worksheets("Tabelle1")
    Set wks2 = Worksheets("Tabelle2")
    Suchen = Array("Metall", "Kupfer")
    Zeile = 2 'Einfügezeile in Tabelle 2
    wks2.Rows(Zeile).ClearContents 'alte Inhalte in Einfügezeile löschen
    For i = LBound(Suchen) To UBound(Suchen)
        Set Zelle = wks1.Range("A1:G500").Find(What:=Suchen(i), LookIn:=xlValues, lookat:=xlWhole)
        If Zelle Is Nothing Then
            MsgBox ("Suchbegriff '" & Suchen(i) & "' nicht gefunden")
        Else
            With wks2
                If IsEmpty(.Cells(Zeile, 1)) Then
                    .Cells(Zeile, 1) = Zelle.Offset(0, 1).Value
                Else
                    .Cells(Zeile, .Columns.Count).End(xlToLeft).Offset(0, 1) = Zelle.Offset(0, 1).Value
                End If
            End With
        End If
    Next
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus: Gehe zu Entwicklertools > Makros > wähle SuchenVar2 und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Suchbegriff nicht gefunden"

    • Stelle sicher, dass der gesuchte Begriff in "Tabelle1" korrekt eingegeben ist. Achte auf Groß- und Kleinschreibung.
  • Fehler: Keine Ergebnisse in Tabelle2

    • Überprüfe, ob die Einfügezeile in "Tabelle2" korrekt gesetzt ist. Die Zeile beginnt standardmäßig bei 2.
  • Fehler: Makro funktioniert nicht

    • Stelle sicher, dass die Makros in deinen Excel-Einstellungen aktiviert sind (Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Einstellungen für Makros).

Alternative Methoden

  • Excel SVERWEIS-Funktion: Du kannst auch die SVERWEIS-Funktion nutzen, um Werte zu suchen und zu kopieren. Dies ist besonders nützlich, wenn du nur eine direkte Zuordnung benötigst.

  • Filterfunktion: Verwende die Filterfunktion in Excel, um gezielt nach bestimmten Werten zu suchen und diese manuell zu kopieren.


Praktische Beispiele

  1. Gesuchter Wert: Metall

    • Wenn "Metall" in A1 gefunden wird, wird der Wert in B1 in "Tabelle2" kopiert.
  2. Gesuchter Wert: Kupfer

    • Wenn "Kupfer" in A2 gefunden wird, wird der Wert in B2 in die nächste Spalte in "Tabelle2" kopiert.

Tipps für Profis

  • Erweiterung des Arrays: Du kannst das Array in Suchen = Array("Metall", "Kupfer") jederzeit erweitern, um mehr Suchbegriffe hinzuzufügen.
  • Automatisierung: Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True zum Deaktivieren und Aktivieren der Bildschirmaktualisierung, um die Ausführungsgeschwindigkeit zu erhöhen, besonders bei großen Datenmengen.

FAQ: Häufige Fragen

1. Wie viele Werte kann ich gleichzeitig kopieren? Du kannst so viele Werte kopieren, wie du in das Array einfügst, solange sie in "Tabelle1" vorhanden sind.

2. Funktioniert das auch in Excel Online? Das VBA-Makro funktioniert nicht in Excel Online, da die Online-Version keine VBA-Unterstützung bietet. Du musst die Desktop-Version von Excel verwenden.

3. Kann ich anstelle von "Find" auch "Filter" verwenden? Ja, du kannst die Filterfunktion verwenden, um gezielt nach Werten in einer Excel-Tabelle zu suchen und diese zu kopieren.

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