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

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



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"


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


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige