Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
440to444
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
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

tabellen vergleichen

tabellen vergleichen
14.06.2004 13:11:25
nelly
hallo leute, ich hoffe hier kann mir jemand helfen. folgende ausgangssituation:
ich habe eine feste kundenliste (tabelle1) mit ca.200 einträgen. jetzt bekomme ich täglich mehrere xls.dateien (tabelle2) in denen tausende kunden aufgeführt sind und ich muss diese mit meiner kundenliste abgleichen.
was ich suche ist also ein script, welches meine kundenliste (tabelle1) mit einer x-beliebigen anderen liste vergleicht und zellen, die übereinstimmen (in tabelle2) rot markiert. vielen dank
AW: tabellen vergleichen
Veit
Moin, Moin,
sowas ähnliches hatten wir heute schon. Etwas an Deine Bedürfnisse angepasst , sieht das dann so aus:

Sub Makro4()
Dim treffer As String
Dim Pfad As String
Dim suchmappe As Workbook
Dim zielmappe As Workbook
Dim suchliste As Worksheet
Set suchmappe = ThisWorkbook
Set suchliste = suchmappe.Worksheets("Suchbegriffe")
Pfad = "C:\test\"
Dateiname = Dir$(Pfad)
If Dateiname = "" Then
MsgBox "nix vorhanden"
Exit Sub
End If
Do While Dateiname <> ""
Workbooks.Open Filename:=Pfad & Dateiname
Set zielmappe = Workbooks(Dateiname)
spalte = 2
For i = 1 To zielmappe.Worksheets.Count
If zielmappe.Sheets(i).Name <> "Suchbegriffe" Then
'test = zielmappe.Worksheets(i).Cells(2, 2).Value
With zielmappe.Worksheets(i).Range("a1:f200")
For suchzähler = 1 To 300
suche = suchliste.Cells(suchzähler, 1).Value
If suche = "" Then Exit For
Set c = .Find(suche, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
'treffer = c.Address
'suchliste.Cells(suchzähler, spalte).Value = treffer 'Hyperlink
c.Interior.ColorIndex = 3
'suchliste.Activate
'suchliste.Hyperlinks.Add Anchor:=Range(Cells(suchzähler, spalte), Cells(suchzähler, spalte)), Address:=Pfad & Dateiname, TextToDisplay:=treffer
spalte = spalte + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
c = ""
spalte = 2
End If
Next suchzähler
End With
End If
Next i
'Windows(Dateiname).Close
Dateiname = Dir$()
Loop
End Sub

Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
14.06.2004 13:53:38
nelly
oh danke, aber ich bekomme die fehlermeldung "index ausserhalb des gültigen bereichs" in der zeile: Set suchliste = suchmappe.Worksheets("Suchbegriffe")
was muss ich denn da ändern?
AW: tabellen vergleichen
Veit
Hast Du denn in Deiner Datei ein Arbeitsblatt, was "Suchbegriffe" heißt ;-) ?
Ein Veit
AW: tabellen vergleichen
nelly
nein habe ich nicht. ich möchte die tabellen auch nicht jedesmal umkopieren oder umbenennen, da es mehrere pro tag sind und der aufwand so klein wie möglich sein soll.
gibt es da keine möglichkeit eine_feste_kundenliste mit verschiedenen xls-dateien zu vergleichen?
AW: tabellen vergleichen
nelly
oh...ich habe jetzt noch ein bisschen experimentiert und alles hinbekommen. danke Veit!! habe nur noch das problem, dass die zeilen nur markiert werden, wenn der komplette kundenname da steht. also zb. "testkunde gmbh & co kg". oft steht aber als kundenname testkunde oder test da. wie kann ich excel nun dazu bewegen alles zu markieren, was im suchbegriff enthalten ist?
Anzeige
AW: tabellen vergleichen
Veit
wenn ich Dich richtig verstehe geht es um das alte Problem: Ich gebe dem Prog. XY meine aber XYZ.
Das einzige was mir jetzt einfällt: der Einbau einer Fehlertolleranz, dh Kontrolliere ob Name=Name, Ansprechpartner=Ansprechpartner, Tel-Nr=Tel-Nr, Hausnr-Hausnr usw. und das in unterschiedlichen Gewichtungen.
Wenn nun die Firma unterschiedlich ist aber die Anschrift, der Ansprechpartner und die Telefonnummer gleich sind ist die Wahrscheinlichkeit relativ hoch, dass es sich um die gleiche Firma handelt. Dabei mußt Du allerdingsbeachten, dass man zB "Strasse" auch "Str", "St", "Str.", "St.", "Straße", "Stasse", "Strase" bzw. "XYZStrasse", "XYZ Strasse", "XYZ-Strasse"... schreiben kann. Die Schreibwesen für Telefonnummern, die Abkürzung für "Herr" und so weiter machen diese "Fehlertolleranz" zu einem riesen Projekt.
Vielleicht sollte man am anderen Ende ansetzen und bei der Eingabe so viele "Fehler" wie möglich ausmerzen. Z.B. Eingabe der Telefonnr. "Bitte Vorwahl eingeben" - nur Zahlen keine Leerzeichen. "Bitte geben Sie die Telefonnummer ein" - nur Zahlen keine Leerzeichen. Damit hast Du dann schon die Telefonnummer sauber. Das gleichew bei der Postleitzahl. Beim einpflegen der PLZ und des Ortsnamens - Kontrolle ob die PLZ schon mal vergeben wurde und ob da der Ort genauso geschrieben wurde. Dann vielleicht der Ansprechpartner Combobox mit Auswahl "Herr"/"Frau"/"Abteilung"/...
Oder aber Du passt Deine Liste der Suchbegriffe soweit an, dass alle Variationen abgeglichen werden...Problem der Dopplung ("test" ist genauso in "testkunde" als auch in "testkunde gmbh & co kg").
Du siehst, da kann man einiges machen
Aber dem Rechner beizubringen, zu wissen, was Du meinst... eher schwer.
Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
nelly
vielen dank. dann lass ich das eben so wie es ist. du glaubst gar nicht, wieviel mühe du mir dadurch ersparst. ganz grosse klasse:)
eine letzte frage allerdings noch: das script nimmt einige dateinamen nicht. wenn ich die datei zb. test.xls nenne gehts nicht, abctest.xls funktioniert aber! hast du eine idee was da los ist?
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
AW: tabellen vergleichen
nelly
"Hast du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst."
wo stelle ich das denn ein?
Anzeige
AW: tabellen vergleichen
Veit
Einfach als Befehl in den Code:
application.DisplayAlerts = true
On Error GoTo 0
geh einfach mit dem Cursor auf "DisplayAlerts" bzw. "On Error" und drücke F1
Aber ich denke mal, wenn Du nicht weißt was das ist, dass Du das dann auch noch nicht verwendet hast. Also muß wohl noch was anderes sein.
Aber was?
Ratlos
Ein Veit
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit
Anzeige
AW: tabellen vergleichen
Veit
habe ich versucht nachzubauen. Bei mir gehts. An den Dateinamen sollte es aber auch nicht liegen. Die sind dem Programm eigentlich egal. Da muß noch irgendwas anderes sein. vielleicht 2 Dateien mit dem gleichen Namen. Wenn er versucht die 2. zu öffnen....
Hastt du die application.DisplayAlerts auf true bzw "On Error GoTo 0"? Damit Du auch eventuelle Fehler angezeigt bekommst.
Wie gesagt, da ist was anderes.
Gruß
Ein Veit

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige