Macro suchen und ersetzn

fastasy

Grünschnabel
Hallo,

ich bräuchte ein Macro/einen Befehl für folgendes Problem.

Ich habe 2 Exceldateien in einer Datei steht eine Zahlenabfolge und ein Stadtname rechts daneben.
In einer weiteren Datei stehen die gleichen Zahlenabfolgen und andere Informationen.

Ich würde gerne in der ersten Datei einen Button erstellen ( in der Datei in der die Zahlenabfolge und Stadtname steht), der die gleichen Zahlen in den beiden Dateien vergleicht und in der Zelle wo der Stadtname nicht steht, rechts neben der Zelle wo die Zahlen stehen eine neue Spalte erstellt und den Stadtnamen einfügt.

Leider bin ich mit so einem Macro völlig überfordert und würde mich sehr freuen, wenn mir wer helfen koennte.

Vielen Dank schonmal.

Gruß

Markus
 
Zuletzt bearbeitet:
Also irgendwie bin ich mit der Rechtschreibung deiner Frage (vor allem Groß-/Kleinschreibung) total überfordert, wird wahrscheinlich ein paar Wochen brauchen, bis ich das alles zusammen habe und dir helfen kann. Alternativ kannst du das ja auch korrigieren, so dass ich das schneller begreife.


Der Doc!
 
Ja, vieeeeel besser lesbar. ;)

Nur mal so als Anregung, eine gute Variante Excel-VBA zu lernen ist die, ein Makro von verschiedensten Aktionen aufzuzeichnen (über Extras - Makro - Aufzeichnen), dann kannst du dir die VBA-Codes im VBA-Editor ansehen und so kleinere Probleme lösen.

In deinem Fall müsstest du beim Klick auf den Button erst prüfen, ob die zweite Excel-Datei auch wirklich geladen ist, wenn nicht, musst du sie laden (entweder direkt im Makro oder der Benutzer läd sie und klickt nochmals auf den Button).
Visual Basic:
 For Each wbBooks In Workbooks
  If wbBooks.Name = "Mappe3" Then bLoaded = True
 Next wbBooks
 If bLoaded = False Then ' "Nicht Geladen", du kannst also z.B. mit einer Messagebox abbrechen oder das Dokument laden
' ansonsten dein weiterer Code

Eine Excel-Datei laden geht simpel über
Visual Basic:
Workbooks.Open "C:\Dateien\deineExcelDatei.xls"

Analog zum Workbook gibt es das Worksheet (die einzelne Tabelle), auch die kannst du über ihren Namen ansprechen:
Visual Basic:
Worksheets("Tabelle1").Cells(1, 1).Value = "A" 'ich weise hier A1 einen Wert zu

Suchen geht auch ganz einfach, mit
Visual Basic:
Workbooks("Mappe1").Worksheets("Tabelle1").Cells.Find(What:="Suchbegriff").Activate
findest du etwas im Sheet. Mit
Visual Basic:
Workbooks("Mappe1").Worksheets("Tabelle1").Cells.FindNext(After:=ActiveCell).Activate
führst du die Suche mit dem gleichen Suchbegriff weiter fort (sonst würde er immer nur den ersten Eintrag finden).

Da du ja mit Workbooks auf verschiedene Arbeitsmappen zugreifen kannst, sollte zumindest eine rudimentäre Suche für dich jetzt möglich sein. Probier mal einen Code zu kreieren, wenn du Probleme hast, meld dich einfach wieder.


Der Doc!
 
Zurück