Range funktioniert nicht bei auto open
Guten Abend zusammen,
Problem: Makro funktioniert bei manueller Betätigung aber nicht bei auto_open oder bei Private Sub Workbook_Open()
Hier ist der Code, dass Ihr Euch das besser vorstellen könnt:
Sub sort()
'
' sort Makro
'
'
Range("A8:A15773").Select
ActiveWorkbook.Worksheets("HS2_lower_kurz").sort.SortFields.Clear
ActiveWorkbook.Worksheets("HS2_lower_kurz").sort.SortFields.Add Key:=Range( _
"A8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("HS2_lower_kurz").sort
.SetRange Range("A8:A15773")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Excel-Version: 2007, kann aber auch auf 2003 zurück gehen wenn es daran hängt.
Ziel ist, die Felder A8 bis A15773 zu markieren und die Werte zu sortieren. Bei automatischer Ausführung bekomme ich eine Fehlermeldung in der Range-Zeile am Anfang. Wo liegt mein Fehler?
Das alles ist ein Teil einer automatischen Auswertung, deshalb kann ich zwischendurch nicht manuell das Makro starten.
Würde mich riesig über Hilfe freuen, ich komme einfach nicht mehr weiter.
Viele Grüße
Bifi
Problem: Makro funktioniert bei manueller Betätigung aber nicht bei auto_open oder bei Private Sub Workbook_Open()
Hier ist der Code, dass Ihr Euch das besser vorstellen könnt:
Sub sort()
'
' sort Makro
'
'
Range("A8:A15773").Select
ActiveWorkbook.Worksheets("HS2_lower_kurz").sort.SortFields.Clear
ActiveWorkbook.Worksheets("HS2_lower_kurz").sort.SortFields.Add Key:=Range( _
"A8"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("HS2_lower_kurz").sort
.SetRange Range("A8:A15773")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Excel-Version: 2007, kann aber auch auf 2003 zurück gehen wenn es daran hängt.
Ziel ist, die Felder A8 bis A15773 zu markieren und die Werte zu sortieren. Bei automatischer Ausführung bekomme ich eine Fehlermeldung in der Range-Zeile am Anfang. Wo liegt mein Fehler?
Das alles ist ein Teil einer automatischen Auswertung, deshalb kann ich zwischendurch nicht manuell das Makro starten.
Würde mich riesig über Hilfe freuen, ich komme einfach nicht mehr weiter.
Viele Grüße
Bifi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132047
Url: https://administrator.de/forum/range-funktioniert-nicht-bei-auto-open-132047.html
Ausgedruckt am: 18.05.2025 um 16:05 Uhr
7 Kommentare
Neuester Kommentar

Hallo Bifi,
hab die Funktion eben unter 2003 getestet. Funktionsaufruf war in Workbook_open untergebracht. Bei mir tritt kein Fehler auf (zumindest erst in der 2ten Zeile, aber auch nur weil es ein Worksheet mit dem Namen bei mir nicht gibt).
Hast Du es mit ThisWorkbook.Worksheets("Name").Range("A8:A15773").Select probiert? Evtl. hilft das.
Ist das Tabellenblatt geschützt o.ä.?
Gruß abaaba
P.S.: Benutze hier lieber ThisWorkbook statt ActiveWorkbook
hab die Funktion eben unter 2003 getestet. Funktionsaufruf war in Workbook_open untergebracht. Bei mir tritt kein Fehler auf (zumindest erst in der 2ten Zeile, aber auch nur weil es ein Worksheet mit dem Namen bei mir nicht gibt).
Hast Du es mit ThisWorkbook.Worksheets("Name").Range("A8:A15773").Select probiert? Evtl. hilft das.
Ist das Tabellenblatt geschützt o.ä.?
Gruß abaaba
P.S.: Benutze hier lieber ThisWorkbook statt ActiveWorkbook

Eine Timerprozedur wär auch denkbar.
Du schreibst das Du auf 2003 zurückgehen kannst. Das wär vermutlich die einfachere und saubere Methode.
Ach ja, nicht das das vllt. wichtig wäre oder so - wie lautet denn die Fehlermeldung ;)
Du schreibst das Du auf 2003 zurückgehen kannst. Das wär vermutlich die einfachere und saubere Methode.
Ach ja, nicht das das vllt. wichtig wäre oder so - wie lautet denn die Fehlermeldung ;)

Hallo DerBifi!
Das hier sollte funktionieren:
wobei die anderen Sort-Optionen in Deinem Code schon als Standardwerte gesetzt sind.
Gruß Dieter
Das hier sollte funktionieren:
Private Sub Workbook_Open()
Call SortColumnA
End Sub
Sub SortColumnA()
With Sheets("HS2_lower_kurz")
.Range("A8:A15773").Sort Key1:=.Range("A8"), Header:=xlNo
End With
End Sub
Gruß Dieter
Moin DerBifi,
ich vermute ähnlich wie abaaba, dass gar nicht das gewünschte Tabellenblatt "den Fokus hat".
Ich würde allerdings lediglich vor die erste deiner vorhandenen Codezeilen setzen
Begründung:
Wenn die Redmonder PraktikantInnenen nicht vollkommen blond programmiert haben,
dann ist der AutoStart-Makro natürlich an genau ein bestimmtes Workbook gebunden, also ist "ThisWorkbook" bekannt und activated.
Falls aber das Workbook mehrere Sheets enthält, dann muss nicht zwangsweise eines davon aktiv sein.
Grüße
Biber
[Edit] Ok, ein bisschen langsam.... ist ja Montag.. [/Edit]
ich vermute ähnlich wie abaaba, dass gar nicht das gewünschte Tabellenblatt "den Fokus hat".
Ich würde allerdings lediglich vor die erste deiner vorhandenen Codezeilen setzen
ThisWorkbook.Worksheets("HS2_lower_kurz").Activate
Begründung:
Wenn die Redmonder PraktikantInnenen nicht vollkommen blond programmiert haben,
dann ist der AutoStart-Makro natürlich an genau ein bestimmtes Workbook gebunden, also ist "ThisWorkbook" bekannt und activated.
Falls aber das Workbook mehrere Sheets enthält, dann muss nicht zwangsweise eines davon aktiv sein.
Grüße
Biber
[Edit] Ok, ein bisschen langsam.... ist ja Montag.. [/Edit]