Excel: Dynamisch Bereich selber auswählen?
Liebe Community,
ich habe folgendes Macro in meiner Excel Tabelle. Es funktioniert auch wunderbar, bis auf die Tatsache, dass dort der Tabellenbereich aus der fremden Excel-Datei definiert ist.
Leider sind es nicht immer 239 Zeilen. Mal mehr und mal weniger. Dass es bei A7 anfängt, das stimmt schon. Wie müsste ich die Formel ändern, damit Excel sich automatisch anpasst?
Kann einer sagen, was ich nun genau ändern müsste in der betroffenen Zeile, damit Excel dynamisch sich den Bereich auswählt?
Vielen lieben Dank im Voraus!
Es handelt sich konkret um diese Zeile.
wbQuelle.Worksheets(1).Range("A7:I239").Copy
Sub Quelle()
Hier der gesamte Code
Dim sPfad As String
Dim wbQuelle As Workbook
Dim zelle As Range
sPfad = "C:\Users\Beispiel\Desktop\Irgendeine Datei\Daten\Daten.xlsx"
If Dir(sPfad) <> "" Then
Set wbQuelle = Workbooks.Open(sPfad)
wbQuelle.Worksheets(1).Range("A7:I239").Copy ThisWorkbook.Worksheets(3).Range("B2")
wbQuelle.Close savechanges:=False
End If
End Sub
1 Antwort
Ist das vielleicht immer der gesamte Bereich? Dann würde:
wbQuelle.Wordsheets(1).UsedRange.Copy
reichen. Falls nur ÜBER Zeile 7 etwas steht, könntest Du das auch nachträglich löschen.
Sonst müsstest Du erst die letzte Zeile herausfinden. Z.B.:
Dim loletzte As Long
loletzte = Cells(Rows.Count, 1).End(xlUp).Row
Hilft Dir das schon weiter?
Hab ich Dir doch beschrieben.
Dim loletzte As Long
loletzte = Cells(Rows.Count, 1).End(xlUp).Row
Range("A7:I" & loletzte).Copy
Klappt das nicht?
Hey, ich hab das noch nicht probiert, weil dein Code nicht zu meinem Code passt. Was meinst du mit Dim loletzte?
Ich müsste folgendes ändern.
wbQuelle.Worksheets(1).Range("A7:I239").Copy
Oh, ich dachte, Du kennst Dich ein bisschen aus in VBA.
Mit Dim ...wird ein Variable dimensioniert (festgelegt).
Das kommt in die erste Zeile.
In die zweite Zeile dann das
loletzte= ....
Und dann ersetzt Du DEIN
Range("A7:I239").Copy
durch mein Konstrukt. Der Bezug davor bleibt so.
P.S.: Bin jetzt erstmal off. Schaue in ein paar Stunden wieder vorbeil
Hey, hat geklappt. Super vielen lieben Dank dir! Ja, ich bin noch kein Profi, brauche ab und an einfach eine etwas genauere bzw. vereinfachte Erklärung. :P
@Oubyi, UserMod Light
Hallo. Danke!
Es fängt immer bei A7 an und geht bis zur Spalte I7. Das ist fest! Aber die Zeilen darunter sind je nach Datei unterschiedlich lang. Mal sind es 237 oder 450 Einträge.
Mit dieser Zeile mache ich den Bereich ja fest, welcher kopiert werden soll. Nun möchte ich jedoch nicht immer die Zahl am Ende manuell verändern, bevor ich das Makro ausführe.