Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Problem Abgleich von zwei Tabellen,

Betrifft: Problem Abgleich von zwei Tabellen, von: Bernd
Geschrieben am: 04.09.2014 18:50:00

Hallo zusammen,

zunächst einmal sorry wenn ich jetzt vielleicht etwas frage, was schon irgendwo versteckt ist, ich wusste aber nicht genau wonach ich suchen sollte und habe so nicht das passende finden können.

Ich habe folgende Aufgabenstellung:
Tabelle 1 (eine Spalte) enthält Daten, in denen die Daten aus Tabelle 2 (eine Spalte) gesucht werden sollen. Das Problem dabei ist, dass die Daten aus Tabelle 2 auch als Teilinhalte in Tabelle 1 vorkommen können. Beispiel:
- Suchbegriff (Tabelle 2): muster
- zu durchsuchende Daten: maxineMUSTERmann
- die Suchbegriffe können an jeder Stelle in der zu durchsuchenden Zelle vorkommen. Also am Anfang des Zellinhaltes, irgendwo mittendrinnen und auch am Ende.

Problem 2: Tabelle 2 enthält einige hundert Suchbegriffe und jede Zeile in Tabelle 1 muss wie oben beschrieben mit allen Suchbegriffen überprüft werden.

Ich hoffe, ich konnte das halbwegs nachvollziehbar erklären. Nun die Frage, wie kann ich das in Excel realisieren? Oder geht das überhaupt?

Ich bin recht ratlos, hat jemand eine Idee dazu?

  

Betrifft: AW: Problem Abgleich von zwei Tabellen, von: Marco
Geschrieben am: 04.09.2014 23:38:51

Nabend Bernd,

schau mal ob der Code hier macht was du willst. Ist quasi nur eine Schleife, die jeden Begriff in Tabelle2 per SVERWEIS in der gesamten Tabelle1 sucht und ggf. das gefundene Ergebnis in Spalte B der Tabelle2 schreibt. Der "Bereich_Verweis" ist auf True gesetzt, d.h. es werden auch Teilübereinstimmungen gefunden. Wenn deine eine Spalte in einer der Tabellen nicht A sein sollte und/oder das Ergebnis nicht in B geschrieben werden soll, müsstest du den Code entsprechend anpassen. Das gilt auch für den Fall, dass deine Daten nicht in Zeile 1 beginnen.

Option Explicit

Sub Zellen_durchsuchen()

Dim AnzTab1, AnzTab2, i As Single

'Weist den beiden Variablen jeweils das Ende der jeweiligen Tabelle zu_
' (wenn Tabelle1 bis A250 gefüllt ist, dann ist AnzTab1 = 250)
AnzTab1 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
AnzTab2 = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row

'Geht Tabelle2 Schritt für Schritt nach unten durch, sucht jeden Begriff _
' jeweils in der gesamten Tabelle1 und schreibt das Ergebnis in Spalte B der Tabelle2
For i = 1 To AnzTab2
  Range("B" & i).Value = WorksheetFunction.VLookup(Worksheets(2).Range("A" & i), Worksheets(1). _
Range("A1:A" & AnzTab1), 1, True)
Next i

End Sub
Viele Grüße


  

Betrifft: AW: Problem Abgleich von zwei Tabellen, von: Marco
Geschrieben am: 04.09.2014 23:38:57

Nabend Bernd,

schau mal ob der Code hier macht was du willst. Ist quasi nur eine Schleife, die jeden Begriff in Tabelle2 per SVERWEIS in der gesamten Tabelle1 sucht und ggf. das gefundene Ergebnis in Spalte B der Tabelle2 schreibt. Der "Bereich_Verweis" ist auf True gesetzt, d.h. es werden auch Teilübereinstimmungen gefunden. Wenn deine eine Spalte in einer der Tabellen nicht A sein sollte und/oder das Ergebnis nicht in B geschrieben werden soll, müsstest du den Code entsprechend anpassen. Das gilt auch für den Fall, dass deine Daten nicht in Zeile 1 beginnen.

Option Explicit

Sub Zellen_durchsuchen()

Dim AnzTab1, AnzTab2, i As Single

'Weist den beiden Variablen jeweils das Ende der jeweiligen Tabelle zu_
' (wenn Tabelle1 bis A250 gefüllt ist, dann ist AnzTab1 = 250)
AnzTab1 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
AnzTab2 = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row

'Geht Tabelle2 Schritt für Schritt nach unten durch, sucht jeden Begriff _
' jeweils in der gesamten Tabelle1 und schreibt das Ergebnis in Spalte B der Tabelle2
For i = 1 To AnzTab2
  Range("B" & i).Value = WorksheetFunction.VLookup(Worksheets(2).Range("A" & i), Worksheets(1). _
Range("A1:A" & AnzTab1), 1, True)
Next i

End Sub
Viele Grüße


  

Betrifft: AW: Problem Abgleich von zwei Tabellen, von: Bernd
Geschrieben am: 05.09.2014 18:43:03

Hallo Marco,

wow... herzlichen Dank mal Vorab für deine Mühe und deine Unterstützung.
Ich habe nur ein kleines Problem, ich habe sowas schonmal gesehen, weiss aber adhoc nicht wie ich es anwenden soll. Ich bin eher noch Excel-Anfänger.

Dürfte ich daher bitten, mir einen ganz kurzen Crashkurs in der Anwendung zu schreiben? Muss nichts aufwendiges sein, einfach nur so, dass ich umsetzen und anwenden kann. Ich wäre dir sehr dankbar dafür.


  

Betrifft: AW: Problem Abgleich von zwei Tabellen, von: Marco
Geschrieben am: 05.09.2014 20:54:43

Nabend Bernd,

die Anwendung ist einfach: wenn du Excel geöffnet hast drückst du Alt+F11. Es öffnet sich das Visual Basic Fenster. Dort klickst du auf Einfügen - Modul und fügst den Code in das weiße Fenster ein.

Jetzt hast du zwei Möglichkeiten das Makro auszuführen: wenn du es nur einmal brauchst kannst du einfach in Excel auf Ansicht - Makro - Makros anzeigen klicken. Sofern du keine anderen hast, wird dort dann nur dieses Makro angezeigt. Einfach raufklicken und "Ausführen".

Wenn du es öfters brauchst empfiehlt sich ein Button. Dazu auf Entwicklertools klicken (wenn der Reiter bei dir nicht angezeigt ist unter Datei - Optionen - Menüband anpassen zum Menü hinzufügen), dann Einfügen und einen Button (egal ob normal oder ActiveX). Dem kannst du nun das Makro zuweisen. Das geht per Rechtsklick, dann entweder auf "Makro zuweisen" oder "Code anzeigen". Bei Code anzeigen kommst du wieder in den VBA-Editor. Da müsste dann stehen "CommandButton1_Click". Schreib einfach vor "End Sub" "Zellen_durchsuchen" - ohne Anführungszeichen. Dann reicht ein Klick auf den Button um den Code auszuführen.

Wenn du den Button nicht mit rechts anklicken kannst, wähle unter Entwicklertools den Entwurfsmodus aus.

Viele Grüße


 

Beiträge aus den Excel-Beispielen zum Thema "Problem Abgleich von zwei Tabellen,"