ich möchte eine Excel-Datei in eine andere Excel-Datei importieren. Dafür habe ich einen Code den ich für eine andere Programmierung erfolgreich verwendet habe. In meinem neuen Projekt benötige ich den Import allerdings differenzierter:
-Die Daten sollen unter die letzte verwendete Zeile eingetragen werden.
-Die Daten sollen als Werte ohne Formeln übernommen werden
-Es sollen nur die Spalten BH und J-N importiert werden und zwar auch nur, wenn da auch Daten drin stehen, also keine leeren Zeilen. In der zu importierenden Datei steht in Spalte B immer etwas drin, wenn dort Daten eingetragen werden. Vielleicht könnte man über eine If-Anfrage in Spalte B rausfinden, ob das was drin steht und diese Zeile dann importieren. Leere Zeilen sollen ignoriert werden.
Ich habe anhand meines Codes versucht das selber zu programmieren. Aber ich schaffe es nicht einmal, die importierten Daten unter die letze verwende Zeile zu übertragen. Die Code läuft bis zu öffnen der Importdatei und danach passiert nichts weiter. Es kommt nicht einmal eine Fehlermeldung.
Ich würde mich freuen, wenn mir jemand helfen könnte. Vielen Dank im Voraus.
Anja
Anbei mein Code:
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Dim Quelle As Object, Ziel As Object
Dim Datei As String
Dim letzteZeile As Long
On Error GoTo Fehler
'Dialog "Datei öffnen" anzeigen
Datei = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx)," & _
"*.xls; *.xlsx")
'Abbrechen falls keine Datei ausgewählt
If Datei = "Falsch" Then
MsgBox "keine Datei ausgewählt", , "Abbruch"
Exit Sub
End If
'MsgBox "Ausgewählte Datei: " & Datei, , ""
'Ausgewählte Datei öffnen
Workbooks.Open Filename:=Datei
Set Quelle = ActiveWorkbook.Worksheets(1)
Set Ziel = ThisWorkbook.Worksheets(2)
letzteZeile = ThisWorkbook.Worksheets(2).[A65536].End(xlUp).Row + 1
'kopieren und einfügen
Quelle.UsedRange.Copy Ziel.Cells(letzteZeile, 1)
ActiveWorkbook.Close
Application.ScreenUpdating = True
'Speicher freigeben
Set Quelle = Nothing
Set Ziel = Nothing
Exit Sub
Fehler:
Set Quelle = Nothing
Set Ziel = Nothing
MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
Application.ScreenUpdating = True