Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Warum muss ich das Tabellenblatt aktivieren

Forumthread: Warum muss ich das Tabellenblatt aktivieren

Warum muss ich das Tabellenblatt aktivieren
15.02.2025 21:21:06
Wennerfaellt
Hallo, Ich hab da mal ne Verständnisfrage
Mit dem unten zu sehenden Code kopiere ich eine Tabelle (Abfahrten) aus einer Anderen Datei (Abfahrten) in die aktive Datei (Aushang). Dann füge ich ein zusätzliches leeres Tabellenblatt ein (Liste). Somit sehe ich also das Tabellenblatt (Liste) als Aktives. Aus (Abfahrten) will ich jetzt einen Teil in (Liste) kopieren, bekomme aber ein Fehlermeldung. Wenn ich dann zu debuggen das TB(Abfahrten) aktiviere, funktioniert die Codezeile. Hier liegt aber doch kein "Select" vor. Lösen kann ich das Problem mit 1-2 weiteren Codezeilen, aber ich verstehe nicht, warum das so ist?

Sub Import()


Windows("Abfahrten.xlsm").Activate

Sheets("Abfahrten").Move Before:=Workbooks("Aushänge.xlsm").Sheets(1)

Windows("Aushänge.xlsm").Activate

Sheets.Add After:=Sheets("Abfahrten")

ActiveSheet.Name = "Liste"

Sheets("Abfahrten").Range("B3", Range("B3").End(xlDown)).Copy Sheets("Liste").Range("A1")

Sheets("Liste").Columns("A:A").EntireColumn.AutoFit

End Sub
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum muss ich das Tabellenblatt aktivieren
15.02.2025 21:38:19
Onur
Du solltest dir abgewöhnen, das Blatt so zu benennen wie die Datei.
In der Zeile
 Sheets("Abfahrten").Range("B3", Range("B3").End(xlDown)).Copy Sheets("Liste").Range("A1")

muss
Sheets("Abfahrten"). 

vor JEDEM Range stehen, sonst wird für das erste zwar das richtige Blatt genommen, aber für das 2. Range "Liste".
Anzeige
AW: Warum muss ich das Tabellenblatt aktivieren
15.02.2025 21:48:06
GerdL
Moin
With Sheets("Abfahrten")

.Cells(3, 2).Resize(.Cells(3, 2).End(xlDown).Row - 2).Copy Sheets("Liste").Cells(1, 1)
End With

Gruß Gerd
AW: Warum muss ich das Tabellenblatt aktivieren
15.02.2025 22:17:47
Daniel
Hi
jedes Range, Cells, Rows, Columns ohne eine Tabellenblattangabe davor, beziehen sich IMMER auf das aktive Tabellenblatt.
wenn du eine Range über weitere Zellen definierst, müssen diese Zellen auf dem selben Tabellenblatt liegen wie die Range, die sie definieren sollen.

wenn du das hier: Sheets("Abfahrten").Range("B3", Range("B3").End(xldown))
ausführlich schreibst: Sheets("Abfahrten").Range("B3", ActiveSheet.Range("B3").End(xldown))
wird vielleicht klar, warum dieser Code nur dann funktioniert, wenn das Sheet "Abfahrten" aktiv ist.

Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige