Hallo zusammen,
bin noch Anfänger in VBA (Excel 2003). Bisher bin ich immer gut klargekommen, aber jetzt treibt mich ein Problem in den Wahnsinn. Kann mir jemand bitte einen Tipp geben?
Das Ziel: Ich versuche, aus einer Arbeitsmappe mittels Makro eine andere Arbeitsmappe zu öffnen, und anschließend zwischen beiden Arbeitsmappen Informationen auszutauschen. Ich muss also sowohl Zellen aus Tabellen aus der alten Mappe wie auch in der neuen Mappe ansprechen.
Mein Problem: Ich kann scheinbar die beiden Mappen nicht richtig ansprechen!
Ich habe es mit activeworkbook und thisworkbook probiert, und mit workbooks(Name), ohne Erfolg.
Einziges Ergebnis: Laufzeitfehler 438: Objekt unterstützt Eigenschaft oder Methode nicht.
Mein letzter Versuch war mit FullName, dann bekomme ich aber Laufzeitfehler 9 (Index).
Variablenumdefinition in Variant hat auch nichts gebracht...
Zum Code (mein letzter Versuch):
Sub Vorschlagslisteerzeugen()
Dim Ursprungsmappe, NeueMappe As Workbook
Dim Zelle As Range
Dim intCount1 As Integer
Dim sZelle As Single
Dim Auftragsnummer As Variant
Dim UrsprungsmappeName, NeueMappeName As Variant
Static ingAufrufe As Long
Set Ursprungsmappe = ThisWorkbook
UrsprungsmappeName = ThisWorkbook.FullName
Auftragsnummer = Tabelle1.Cells(7, 3).Value
Application.SheetsInNewWorkbook = 1
Workbooks.Add
With ActiveSheet
.Cells(1, 1).Value = "Auftragsnr."
.Cells(1, 2).Value = "Vorschlag"
.Range("A1:B1").Font.Bold = True
End With
Set NeueMappe = ActiveWorkbook
NeueMappeName = NeueMappe.FullName
intCount1 = 2
Set Zelle = Workbooks(UrsprungsmappeName).Tabelle3.Range("H1:H" & Workbooks(UrsprungsmappeName).Tabelle3.UsedRange.Rows.Count).Find(Auftragsnummer, after:=ActiveCell, LookIn:=xlValues, lookat:=xlWhole)
Zelle.Activate
If Not Zelle Is Nothing Then
sZelle = Zelle.Address
Do
Zelle.Activate
ActiveSheet.Cells(intCount1, 2).Value = Workbooks(UrsprungsmappeName).Tabelle3.Range("K" & ThisWorkbook.Tabelle3.Range(Zelle.Address).Row).Value
intCount1 = intCount1 + 1
Ursprungsmappe.Tabelle3.Zelle.Activate
Set Zelle = Workbooks(UrsprungsmappeName).Tabelle3.Range("H1:H" & Workbooks(UrsprungsmappeName).Tabelle3.UsedRange.Rows.Count).FindNext(after:=ActiveCell)
On Error Resume Next
If Zelle.Address = sZelle Then
Exit Sub
End If
Loop
End If
ingAufrufe = ingAufrufe + 1
End Sub
Hilfe, bitte! Der Wahnsinn kommt immer näher!
|