Hallo Leute,
Ich bin recht neu in VBA unterwegs und habe folgende Aufagbe wo ich mir seit 2 Tagen die Zähne ausbeiße:
Ich habe eine Ziel-Datei in die die Daten geschrieben werden sollen und wo auch die Makros drinne stehen und in einer anderen Quell-Datei habe ich Daten die bei A2 losgehen und die ganze Spalte runter Kundenummern stehen. Die anderen Spalten aus dieser Datei sind uninteressant erstmal. Ich öffne die Ziel-Datei gehe in den VBA-Editor und habe folgendes geschrieben:
Sub suchen()
Dim workbookquelle As Workbook
Dim workbookziel As Workbook
Dim zelle As Variant
Dim nummer As Long
Dim rng As Range
Set workbookziel = ActiveWorkbook
Set workbookquelle = Workbooks.Open(ThisWorkbook.Path & "\quelle.xlsx", False, True)
workbookziel.Activate
workbookquelle.Windows(1).Visible = False
Set rng = workbookquelle.Sheets("Tabelle2").Range("A2:A")
For Each zelle In rng
If Len(zelle.Value) > 0 Then
nummer = zelle.Value
Debug.Print nummer
Else
Exit For
End If
Next
workbookquelle.Close Savechanges:=False
Set workbookquelle = Nothing
End Sub
Der Code soll nun folgendes machen:
Er soll Variablen anlegen auf die ich das aktuelle workbook lege und die Quell-Datei öffne und auch auf eine Varible anlege. Dann öffnet er die Datei versteckt sie usw weiter das geht auch alles. Jetzt soll er eine Range festlegen aus der Quell-Datei und zwar die Spalte A von A2 bis unendlich da ich nicht weiß wie viele Daten darin sein könnten daher kann ich nicht mir festen Werten arbeiten. In der for each Schleife soll er jetzt die Range durchlaufen und dann zu jeder Zelle wo er ist die nummer auf die Variable nummer speichern und probehalber ausgeben. Wenn die Range leer ist, er also am Ende angekommen ist springt er raus. Am Ende schließt er dann die andere Datei wieder.
Mein Problem ist, dass es nicht funktioniert und ich weiß nicht warum. Habe schon viel probiert. Aber trotzdem Fehler 1004 "Anwendungs- oder objektdefinierter Fehler". Kann mir vielleicht jemand helfen? Ich wäre echt dankbar.
Gruß Nils
|