Sepp und Bernd waren hier so super nett um mich bei folgendem Befehl zu unterstützen!
Danke nochmals dafür!
Nun hätte ich aber noch eine Frage/Bitte - wer kann mir da weiterhelfen?
Im besagten Beispiel kopiert mir der Befehl immer den Zellenbereich B2:AB20! Wie müsste ein Befehl lauten der mir nur beschriebene Zellen im Bereich B2:AB300 kopiert?
Also nur Zellen kopieren, die innerhalb dieser Zeilen auch Werte enthalten!
Es könnte ja sein, dass ich mehr als Zeile 20 befülle oder auch weniger! Also immer nur die Zeilen die befüllt sind!
Wer weiß Rat?
Hier noch der bisherige Befehl:
Option Explicit
Sub copyData()
Dim objWB As Workbook
Dim strFile As String
Dim bolOpen As Boolean
Dim lngCalc As Long
On Error GoTo ErrExit
With Application
.ScreenUpdating = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
strFile = "E:\Pfad\Tool.xls" 'Pfad zur Datei - Anpassen!
For Each objWB In Application.Workbooks
If objWB.FullName = strFile Then Exit For
Next
If objWB Is Nothing Then
bolOpen = True
Set objWB = Workbooks.Open(strFile)
End If
With objWB
ThisWorkbook.Sheets("Daten").Range("B2:AB20").Copy _
.Sheets("Final").Range ("B2")
.Save
If bolOpen Then .Close
End With
ErrExit:
With Err
If .Number 0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "'copyData'" & vbLf & String(60, "_") & _
vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
"Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
.Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
"VBA - Fehler in Modul - Modul1"
.Clear
End If
End With
On Error GoTo 0
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
Set objWB = Nothing
End Sub
Danke für alle die helfen wollen/können!Doni