Hallo Zusammen!
Falls es dieses Thema schon einmal gab, freue ich mich über einen Link oder Hinweis, denn ich habe leider den passenden Beitrag nicht gefunden.
Mein Problem stellt sich wie folgt dar:
Ich habe eine vorgefertigte Excel mit einer VBA.
Diese soll mir aus einer zu öffnenden Excel-Datei Daten auslesen und in meine Datei eintragen.
Damit ich in meine aktuelle Datei über Range die ausgelesenen Daten einsetzen kann, versuche ich mit
Set wksOrig = ActiveWorkbook
mir das aktuelle Workbook zu setzen um es später mit
wksOrig.Range("O9").Value = wks.Cells(lngZeile, 1)
zu füllen.
Die fremde Datei öffne ich mit:
Set wks = Workbooks.Open(strDatei).Sheets(1)
Leider bekomme ich beim "Set wksOrig = ActiveWorkbook" folgenden Fehler:
"Laufzeitfehler 13: Typen unverträglich"
obwohl ich wks und wksOrig mit
Public wks As Worksheet
Public wksOrig As Worksheet
initialisiert habe.
Was mache ich falsch? :)
Vielen Dank.
Im Code liest sich das so:
Public wks As Worksheet
Public wksOrig As Worksheet
Sub MeinVBA()
'
' VBA
'
Set wksOrig = ActiveWorkbook
' Öffne fremdes Excel
strDatei = Application.GetOpenFilename
If strDatei > False Then
Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
Exit Sub
End If
' Check vars
strSpalte(1) = "Name"
strSpalte(2) = "Meilen"
strSpalte(3) = "Preis"
strSpalte(4) = "Kosten"
Dim notThere As String
For Each element In strSpalte
If wks.Application.CountIf([A1:Z1], element) = 0 Then
notThere = notThere + element + vbCrLf
End If
Next element
'
If notThere = "" Then
For lngZeile = 2 To Cells(Rows.Count, 5).End(xlUp).Row
Select Case wks.Cells(lngZeile, 5)
Case "Miami"
wksOrig.Range("O9").Value = wks.Cells(lngZeile, 1)
wksOrig.Range("O10").Value = wks.Cells(lngZeile, 2)
' hier sind noch eine Menge Cases :)
End Select
Next lngZeile
wks.Parent.Close False
Set wks = Nothing
' Druckdialog aufrufen
ActiveSheet.PrintPreview
'Application.Dialogs(xlDialogPrint).Show
Else
Dim strErrorMsg As String
strErrorMsg = "Fehler! Es fehlen Spalten im Export:" + vbCrLf + notThere
MsgBox strErrorMsg, vbCritical, "Spalten falsch!"
End If
End Sub