Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Such Makro über mehrere Dateien
15.08.2007 11:55:00
Dominik
Ich brauche Hilfe!!
Ich hoffe mir kann jemand helfen,
folgendes Problem: Ich habe 3 Excel Dateien mit verschiedenen Kundendaten gefüllt und alle 3 Tabellen sehen unterschiedlich aus und sind unterschiedlich Formatiert.
Gibt es eine Möglichkeit ein Such Makro zu schreiben, um damit in allen 3 Datein nach Namen zu suchen und falls es einen Identischen Namen gibt soll der Makro die Zeile von den jeweiligen Tabellenblättern ausgeben, oder in ein neues Tabellenblatt kopieren , so das ich als Ergebniss sehen kann ob der selbe Name in 2 Dateien vorhanden ist. Und wenn der Name in 2 oder mehr Dateien enthalten ist soll er den Namen der Datei ausgeben werden .
Ich hoffe es gibt so schlaue Köpfe die mir bei meinem Problem helfen können. Ich werde das alleine wohl auch in 100 Jahren nicht schaffen!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Such Makro über mehrere Dateien
15.08.2007 13:43:00
Jan3
Hi Dominik,
zu dieser Problematik gibt es in diesem Forum einige Lösungen bzw. Lösungsansätze. Um Dir konkret helfen zu können, brauch ich Beispieldateien.
Jan

AW: Such Makro über mehrere Dateien
15.08.2007 14:17:00
Dominik
Hallo Jan
vielen Dank für die schnelle Antwort.
Ich versuche dir hier mal 3 Dateien Hochzuladen.
Im Prinzip stehen in jeder Datei irgendwo die Kundendaten Name Starße Adresse aber halt in jeder Datei in einer anderen Spalte Manche Tabellen habe auch mehr oder weniger Spalten. Jetzt muss ich einen Weg finden um zu schauen ob ein Kundenname in mehr als einer Datei vorkommt und wenn ja, welche Informationen dort hinterlegt sind bzw. in welcher Datei der Kunde steht.
Leider kann ich die orginalen Listen nicht senden, versteht sich ja von selbst warum!
Ich hoffe ich kann es so beschreiben das man das versteht. Sorry wenn es sich etwas komisch anhört.
Datei 1:

Die Datei https://www.herber.de/bbs/user/45096.xls wurde aus Datenschutzgründen gelöscht


Datei 2:

Die Datei https://www.herber.de/bbs/user/45097.xls wurde aus Datenschutzgründen gelöscht


Datei 3:

Die Datei https://www.herber.de/bbs/user/45098.xls wurde aus Datenschutzgründen gelöscht


Danke
Dominik

Anzeige
AW: Such Makro über mehrere Dateien
15.08.2007 16:07:04
Chaos
Servus Dominik,
hier mal ein Ansatz, wie sowas ausschauen könnte:
Das Makro sucht in zeile 1 der jeweiligen Datien das Wort Kundennummer und vergleicht dann die Einträge, sind die Einträge in beiden dateien vorhanden, dann wird in der Ausgangsdatei das Suchergebnis in Tabelle Suchergebnis widergegeben.

Sub suchever()
Dim zquelle As Long, rquelle As Long, spquelle As Long, spquelleneu As Long, rowquelle As Long
Dim nquelle As String, quellead As String, quelleadb As String
Dim row As Long, zeile As Long
row = Sheets(3).Range("a65536").End(xlUp).Offset(0, 0).row
For zeile = 2 To row Step 1 ' Löschschleife in Suchergebnis
Sheets(3).Cells(zeile, 1).EntireRow.ClearContents
Next zeile
nquelle = ThisWorkbook.Name ' Ermittlung der Quellinformationen
For spquelle = 1 To 200 Step 1
If Workbooks(nquelle).Sheets(1).Cells(1, spquelle).Value = "Kundennummer" Then ' Suche  _
nach Kundennummer
quellead = Workbooks(nquelle).Sheets(1).Cells(1, spquelle).Address(0, 0) ' Adresse  _
auslesen
With WorksheetFunction
quelleadb = .Substitute(quellead, 1, "")
rowquelle = Workbooks(nquelle).Sheets(1).Range(quelleadb & "65536").End(xlUp). _
Offset(0, 0).row ' letzte beschriebene zelle finden
End With
spquelleneu = Workbooks(nquelle).Sheets(1).Cells(1, spquelle).Column
Exit For
End If
Next spquelle
Workbooks.Open Filename:="C:\Dokumente und Einstellungen\Christian\Desktop\45097.xls" '  _
Zieldatei öffnen / Pfad anpassen
Dim nziel As String, zielad As String, zieladb As String
Dim zziel As Long, rziel As Long, spziel As Long, spzielneu As Long, rowziel As Long
nziel = ActiveWorkbook.Name ' Hier das selbe Spiel wie oben für die Zieldatei
For spziel = 1 To 256 Step 1
If Workbooks(nziel).Sheets(1).Cells(1, spziel).Value = "Kundennummer" Then
zielad = Workbooks(nziel).Sheets(1).Cells(1, spziel).Address(0, 0)
With WorksheetFunction
zieladb = .Substitute(zielad, 1, "")
rowziel = Workbooks(nziel).Sheets(1).Range(zieladb & "65536").End(xlUp).Offset( _
0, 0).row
End With
spzielneu = Workbooks(nziel).Sheets(1).Cells(1, spziel).Column
Exit For
End If
Next spziel
Dim verquelle As Long, verziel As Long ' Vergleich in den ermittelten Grenzen
For verquelle = 2 To rowquelle Step 1
For verziel = 2 To rowziel Step 1
If Workbooks(nquelle).Sheets(1).Cells(verquelle, spquelleneu).Value =  _
Workbooks(nziel).Sheets(1).Cells(verziel, spzielneu).Value Then
Workbooks(nquelle).Sheets(1).Cells(verquelle, spquelleneu).EntireRow.Copy  _
Workbooks(nquelle).Sheets(3).Range("A65536").End(xlUp).Offset(1, 0)
End If
Next verziel
Next verquelle
Workbooks(nziel).Close
Workbooks(nquelle).Sheets(3).Activate
End Sub


Ist jetz nur für eine Zieldatei, also 2 Dateien. Für die andere Datei musst du das genauso aufbauen (2.Block) und dann mit den neu ermittelten Werten einen Vergleich (Werte aus Block 1 bleiben gleich) starten
Gruß
Chaos

Anzeige
AW: Such Makro über mehrere Dateien
16.08.2007 07:17:00
Dominik
Guten Morgen Chaos,
vielen Dank für den super Lösungsvorschlag,
die Eingabe ist ein wenig starr, und jedes mal das Makro Ändern ist ein wenig schwierig, denn manchmal gibt es den Kundennamen 2 mal mit unterschiedlichen Kundennummern.
Gibt es eine Möglichkeit im eine Useform einen Suchbegriff abzufragen und ein Makro öffnet dann alle Dateien und schaut in welcher Datei der Suchbegriff existiert und gibt das Ergebniss in ein Listenfeld aus?
Am Besten wenn das Listenfeld die ersten 6 Spalten und den Namen des Dokuments ausgibt in dem er gefunden wurde.
Und wenn zu viele Übereinstimmungen sind das man die suche innerhalb des Listenfeldes noch weiter einschränkt?
Ich weiß, das das schon fast unverschämt ist, aber die Listen sind echt lang und von verschiedenen Personen gepflegt worden. Ich habe sie jetzt um damit zu arbeiten, und ich kann sagen macht nicht wirklich viel spass
Wäre echt spitzenklasse wenn es einen Lösungsvorschlag in dieser Richtung gäbe.
Vieln Dank für eure Mühen und euren Einsatz.
Gruss
Dominik

Anzeige
AW: Such Makro über mehrere Dateien
16.08.2007 12:49:00
Chaos
Servus Dominik,
es gibt viele Möglichkeiten, auch das ist möglich, kostet aber viel Zeit, die ich momentan nicht habe. Das heißt: ich kann das nur häppchenweise machen und das dauert eben.
Was willst du mit den ersten 6 Spalten ? Willst du da die Werte bei Treffer, oder was? Ist mir nicht wirklich klar.
Gruß
Chaos

AW: Such Makro über mehrere Dateien
16.08.2007 17:25:23
Dominik
Hallo Chaos,
erst einmal muss ich Danke sagen das du dich mit meiner Anfrage beschäftigst.
Die ersten 6 Spalten wollte ich nur habe damit ich sehen kann was in den Zeilen Steht falls es einen Treffen gibt und in welchem Dokument es steht.
Das wäre so super wenn du helfen könntest.
Vielen Vielen Dank
Dominik

Anzeige
AW: Such Makro über mehrere Dateien
17.08.2007 19:59:00
Chaos
Servus Dominik,
ich hab mal schon etwas gemacht. Ist aber noch nicht ganz fertig, evtl morgen kann ich dir die Datei posten.
Gruß
Chaos

AW: Such Makro über mehrere Dateien
18.08.2007 19:26:38
Chaos
Servus Dominik,
hier die Datei:
kurzer Ablauf alle Dateien im gegebenen Pfad werden geöffnet und miteinander verglichen. Bei Treffer wird das über "Anzeige" in einer 2.Userform angezeigt und in Tabelle2 werden alle suchen archiviert.
Du kannst suchen, was du willst.
Den Suchstring bei Eingabe eingeben (siehst du, wenn du die Datei öffnest).
In UserForm1 ist dreimal ein Pfad angegeben den musst du anpassen
1. Makro CommandButton1 (1-mal)
2. nach2 (2-mal)
leere zellen bei Treffer werden nicht ausgegeben.
Also Ablauf Suchtext eingeben, Suche drücken, Anzeige drücken, et voila.
https://www.herber.de/bbs/user/45187.xls
Gruß
Chaos

Anzeige
AW: Nachtrag
19.08.2007 08:51:08
Chaos
Servus Dominik,
kleiner Nachtrag:
Wenn du beim Textvergleich die Gross- und Kleinschreibung des Anfangsbuchstaben des Suchstrings vernachlässigen willst, dann schreib in das UserForm1.Code-fenster ganz oben folgendes rein:
Option Compare Text
Das Makro vergleicht momentan in Zeile 1 nur Text, sprich zahlen werden nicht berücksichtigt. falls du aber Zahlen auch berücksichtigen willst, dann kopier das Makro nach2 und benenne es um z.B. nach3). Ändere im kopierten Makro überall wo steht:
= UserForm1.TextBox1.Value diesen Teil ab in:
= CDbl(UserForm1.TextBox1.Value)
und unter CommandButton1_Click ändere folgende zeile so ab:
Call nach2 in:
Dim s As String
s = UserForm1.TextBox1.Value
If IsNumeric(s) Then
Call nach3
Else
Call nach2
End if
Gruß
Chaos

Anzeige
AW: Nachtrag
19.08.2007 11:59:49
Dominik
Hallo Chaos,
du bist einfach Spitze!!
Ich werde bestimmt ein paar Stunden brauchen um das Anzupassen und zu verstehen, aber ich werde dir schreiben wenn ich es geschafft habe.
1000 Dank erst einmal.
Gruss Dominik

AW: Nachtrag
19.08.2007 12:20:04
Dominik
Hallo Chaos,
ich habe dein Makro ausgeführt, läuft auch ohne Fehler aber ich bekomme null Ergebnisse, wenn ich z.B. Meierstraße eingebe dann sagt er mir erst in Datei 3 nichts gefunden und dann in 2 nichts gefunden und dann zeigt er nichts an.
Was mach ich denn Falsch?
Ich glaub ich bin zu unfähig!
Danke
Gruss Dominik

Anzeige
AW: Nachtrag
19.08.2007 14:29:34
Chaos
Servus Dominik,
nur die Überschriften eingeben! Nicht den einzelnen Suchstring, z.B. Meierstrasse, sondern nur Strasse, oder Staße, oder Umsatz, oder Kundennummer, u.s.w..
Dann vergleicht das Makro alle Dateien und wenn Meierstrasse in allen drei ist, kommt in der Userform2 auch das Ergebnis. Die Zwischenmeldung habe ich nur eingebaut, damit man weiß, dass in der geöffneten Vergleichsdatei nichts zu finden ist.
Also das Makro geht zuerst in Zeile1, dann wenn die Überschrift vorhanden ist, dann werden erst die Strassennamen verglichen und zwar alle (gibt dir für alle Strassen die Treffer aus, wenn sie in verschiedenen Dateien vorhanden sind).
Gruß
Chaos

Anzeige
AW: Nachtrag
19.08.2007 18:11:00
Dominik
Hallo Chaos!
Jetzt habe ich das verstanden und es funzt wunderbar.
Ist es Möglich zum Beispiel möglich den Straßen oder Firmennamen einzugeben und das sucht das Makro nach Übereinstimmungen in den einzelnen Dokumenten?
Egal in welcher Zeile und wie die Spalte heißt?
Und wenn ein Ergebniss in alle 3 Tabellen enthalten ist das es sagt.
Suchwort:Z.B. Name
-Dokument 1 und dann die Informationen aus der Zeile.
-Dokument 2 und die Informationen aus der Zeile.
-Dokument 3. und die passende Zeile.
Ich weiß du hast schon so viel Zeit investiert und eine Lösung gezaubert.
Sorry!
Gruss Dominik

Anzeige
AW: Nachtrag
19.08.2007 18:22:00
Chaos
Servus Dominik,
das geht auch. Dauert halt wieder seine Zeit.
Das Problem dabei ist, dass die Daten nicht immer in derselben Spalte stehen und man dann mit .Find arbeiten muss, was ich eher weniger bevorzuge, da man etliche, mögliche Fehler auffangen muss. Oder mit riesigen Schleifen, was immens Zeit bei der Suche kostet.
Aber ich schau mal.
Gruß
Chaos

AW: Nachtrag
19.08.2007 18:38:17
Dominik
Hallo Chaos!
Jetzt habe ich das verstanden und es funzt wunderbar.
Ist es Möglich zum Beispiel möglich den Straßen oder Firmennamen einzugeben und das sucht das Makro nach Übereinstimmungen in den einzelnen Dokumenten?
Egal in welcher Zeile und wie die Spalte heißt?
Und wenn ein Ergebniss in alle 3 Tabellen enthalten ist das es sagt.
Suchwort:Z.B. Name
-Dokument 1 und dann die Informationen aus der Zeile.
-Dokument 2 und die Informationen aus der Zeile.
-Dokument 3. und die passende Zeile.
Ich weiß du hast schon so viel Zeit investiert und eine Lösung gezaubert.
Sorry!
Gruss Dominik

AW: Nachtrag
21.08.2007 10:39:00
Chaos
Servus Dominik,
bitteschön:
Das Ergebis wird allerdings über eine ComboBox angezeigt, weil die ListBox nicht so richtig wollte:
https://www.herber.de/bbs/user/45238.xls
Gruß
Chaos

148 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige