Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

nochmal: Tabellenvergleich in verschiedenen Mappen

Forumthread: nochmal: Tabellenvergleich in verschiedenen Mappen

nochmal: Tabellenvergleich in verschiedenen Mappen
25.02.2003 14:26:33
Randy R.
Ich kriegs nicht auf die Reihe ;-)
Also, ich möchte immer noch zwei Tabellen aus verschiedenen Excel-Mappen vergleichen. Mit untenstehendem Code sollte das funktionieren. Aber er springt automatisch immer sofort auf die Fehlermeldung über (markierte Stelle).
Weiß vielleicht noch jemand Rat oder bin ich einfach ein hoffnungsloder Fall?
Danke & Gruß
Randy R.


Sub Vergleichen()
Dim wkb As Workbooks
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iWks As Integer, iRow As Integer, iRowT As Integer
On Error Resume Next
For iWks = 1 To 3
Set wkb = Workbooks("Mappe" & iWks)<-- hier springt er sofort zur Fehlermeldung über
Next iWks
If Err > 0 Or wkb Is Nothing Then
Beep
Err.Clear
MsgBox prompt:="Die 3 Arbeitsmappen sind nicht vorhanden!"
Exit Sub
End If
On Error GoTo 0
Set wksA = Workbooks("Mappe1").Worksheets(1)
Set wksB = Workbooks("Mappe2").Worksheets(1)
Set wksC = Workbooks("Mappe3").Worksheets(1)
iRow = 1
Do Until IsEmpty(wksA.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksB.Columns(1), _
wksA.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksA.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksA.Parent.Name
End If
iRow = iRow + 1
Loop
iRow = 1
Do Until IsEmpty(wksB.Cells(iRow, 1))
If WorksheetFunction.CountIf( _
wksA.Columns(1), _
wksB.Cells(iRow, 1).Value) = 0 Then
iRowT = iRowT + 1
wksC.Cells(iRowT, 1).Value = wksB.Cells(iRow, 1).Value
wksC.Cells(iRowT, 2).Value = wksB.Parent.Name
End If
iRow = iRow + 1
Loop
End Sub



Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: nochmal: Tabellenvergleich in verschiedenen Mappen
25.02.2003 14:57:56
Felix

Hallo,

Deine Variable iWks ist Integer, die kannst Du nicht mit dem String "Mappe" 'addieren'!
So müsste es gehen:
Set wkb = Workbooks("Mappe" & cstr(iWks))

Den Rest habe ich nicht überprüft.

Gruß, Felix

Re: nochmal: Tabellenvergleich in verschiedenen Mappen
25.02.2003 15:21:15
Randy R

Hey,

also erstaml Dank an Felix für die Antwort. Funktioniert so nur leider auch nicht. Nimmt man die Fehlerschleife ganz raus, meldet Visual Basic als Fehler: "Der Index übersteigt den zulässigen Wert"


Anzeige
Re: nochmal: Tabellenvergleich in verschiedenen Mappen
26.02.2003 09:33:27
Felix

Hallo,

einen Tag später der Tip, wkb as object zu deklarieren.
Oder um zu prüfen, ob bestimmte Mappen geöffnet:

Sub Kontrolle()
Dim iCount#, iZaehler#
For iCount = 1 To Workbooks.Count
If Workbooks(iCount).Name = "Mappe1" Or Workbooks(iCount).Name = "Mappe2" Or _
Workbooks(iCount).Name = "Mappe3" Then
iZaehler = iZaehler + 1
End If
Next iCount
If iZaehler <> 3 Then MsgBox "Mind. eine Mappe ist nicht da.": Exit Sub

'weiter gehts
MsgBox "Alle Mappe sind da."

End Sub


Gruß, Felix

Anzeige
Danke Felix!
26.02.2003 10:19:24
Randy R

Hey Felix,

vielen, vielen Dank! Mit Hilfe der Abfrageschleife hab ich den Fehler endlich entdeckt :-) Jetzt kann ich das Makro fertigstellen.
Danke nochmal!

Gruß
Randy R


;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige