Excel Makro - Vergleichen bzw. Ersetzen der Inhalte aus mehreren Excel-Dateien
vbscripter (Level 1) - Jetzt verbinden
07.09.2011, aktualisiert 10:13 Uhr, 6140 Aufrufe, 2 Kommentare
Hallo Community, ich hoffe ihr könnt mir helfen, ich bin schon ziemlich verzweifelt.
Seit einigen Tagen beschäftige ich mich mit VB, mit folgendem Problem: Hier im Forum fand ich ein Script, dass 2 Arbeitsmappen innerhalb einer Excel-Datei vergleicht und die Inhalte ersetzt. Ich versuche gerade das Script (s.U.) anzupassen, indem ich einfach die Pfade angeben will, doch leider klappt es nicht...
Ziel ist eine Excel-Datei, bei der ich mit einem Button 2 andere Excel-Dateien miteinander vergleichen und die Inhalte ersetzen kann. Dazu stehen mir die Quelldatei (Quelldatei.xls) mit einer Liste zur Verfügung, bei der ich 2 Spalten habe, in welcher die ursprünglichen und neuen Namen stehen. Eine zweite Excel-Datei (Zieldatei.xls) mit einer Tabelle mit den zu ersetzenden Zellen.
Das Script soll in der dritten Excel-Datei mit einem simplen Button ausgeführt werden.
Anbei mein Code, bei dem mir folgender Fehler erscheint: "Laufzeitfehler 438; Objekt unterstützt diese Methode oder Eigenschaft nicht."
Ich hoffe ich habe mich verständlich ausgedrückt und bin für jeden Tipp dankbar!
Gruß
Das Script soll in der dritten Excel-Datei mit einem simplen Button ausgeführt werden.
Anbei mein Code, bei dem mir folgender Fehler erscheint: "Laufzeitfehler 438; Objekt unterstützt diese Methode oder Eigenschaft nicht."
Option Explicit
Option Compare Text
Private Sub CommandButton1_Click()
Dim quelldatei As Workbook
Dim zieldatei As Workbook
Set quelldatei = Workbooks.Open("C:\xyz\abc\quelldatei.xls")
Set zieldatei = Workbooks.Open("C:\xyz\abc\zieldatei.xls")
Dim c As Range
Dim d As Range
For Each c In quelldatei.Range("C3:C" & quelldatei.Cells(quelldatei.Rows.Count, "C").End(xlUp).Row)
If Not IsEmpty(c) Then
Set d = zieldatei.Columnbs("B").Find(c, LookIn:=xlValues, LookAt:=xlWhole)
If d Is Nothing Then
c.Offset(0, 1) = "Nein"
Else
d.Value = c.Offset(0, -1): c.Offset(0, 1) = "Ja"
End If
End If
Next
End Sub
Gruß
2 Antworten
- LÖSUNG Biber schreibt am 07.09.2011 um 10:54:42 Uhr
- LÖSUNG vbscripter schreibt am 07.09.2011 um 13:42:14 Uhr
LÖSUNG 07.09.2011 um 10:54 Uhr
LÖSUNG 07.09.2011 um 13:42 Uhr