Herbers Excel-Forum - das Archiv

Laufzeitfehler 104 automatisches Starten von Makro


Betrifft: Laufzeitfehler 104 automatisches Starten von Makro
von: Maik

Geschrieben am: 17.09.2019 16:08:33
Hallo zusammen,
beim öffnen einer Tabelle starte ich mit call s_Makro_starten mein Makro.
ich habe folgende Definitionen:
Public ws_AZ As Worksheet
Sub s_Makro_starten()
'Registernamen in die Variablen übernehmen
Set ws_AZ = ThisWorkbook.Worksheets("Arbeitszeiten")
' Sortierspalten auf 0 stetzen
Set rSortieren_1 = ws_AZ.Range(Cells(1, 1), Cells(1, 1))
Hier bekomme ich jetzt den Fehler, Laufzeitfehler _global 1004.
Starte ich danach das Makro von Hand, geht es.
Was fehlt :-)
Danke euch
Maik

Betrifft: AW: Laufzeitfehler 104 automatisches Starten von Makro
von: 1713506.html
Geschrieben am: 17.09.2019 16:13:54
Der Fehler kommt bei Cells(1,1)

Betrifft: AW: Laufzeitfehler 104 automatisches Starten von Makro
von: 1713514.html

Geschrieben am: 17.09.2019 16:27:37
Hi
ein Cells ohne Tabellenblattangabe davor bezieht sich IMMER auf das gerade aktive Tabellenblatt.
der Fehler kommt, wenn die Cells, die die Range definieren sollen, auf einem anderen Blatt liegen als die Range.
richtig ist:
Set rSortieren_1 = ws_AZ.Range(ws_AZ.Cells(1, 1), ws_AZ.Cells(1, 1))
Aus diesen Grund bevorzuge ich es, den Zellbereich über die RESIZE-Funktion zu beschreiben und nicht über die Eckzellen:
Set rSortieren_1 = ws_AZ.Cells(1, 1).Resize(1, 1)
Gruß Daniel

Betrifft: AW: Laufzeitfehler 104 automatisches Starten von Makro
von: 1713533.html

Geschrieben am: 17.09.2019 18:47:28
Hallo Maik,
oder Daniels 1. Vorschlag so umsetzen:

With ws_AZ
   Set rSortieren_1 = .Range(.Cells(1, 1), .Cells(1, 1))
End With
Gruß von Luschi
aus klein-Paris
PS: Warum nicht eigentlich: Set rSortieren_1 = ws_AZ.Range("A1") ?!?
Die obere Variante benutzt man doch, wenn irgendein Zahlenwert durch eine Variable ersetzt wird.

Betrifft: AW: Laufzeitfehler 104 automatisches Starten von Makro
von: 1713707.html
Geschrieben am: 18.09.2019 16:30:16
Hallo Daniel,
nach dem Tipp mit dem "bezieht sich immer auf das aktive Tabellenblatt" habe ich folgendes eingefügt:
Public ws_AZ As Worksheet
Sub s_Makro_starten()
'Registernamen in die Variablen übernehmen
Set ws_AZ = ThisWorkbook.Worksheets("Arbeitszeiten")
ws_AZ.Activate
Jetzt meckert er die letzte Zeile mit Worksheets an (Fehler 1004 Die Methode Activate für das Objekt Worksheet ist fehlgeschlagen)
Der Fehler kommt aber immer nur, wenn das Makro automatisch beim öffnen der Datei gestartet wird. Starte ich danach von Hand, läuft es durch.
Muss ich hier noch etwas anderes initialisieren?
Danke für die Hilfe
MAik

Excel-Beispiele zum Thema "Laufzeitfehler 104 automatisches Starten von Makro"
Fortlaufende Suche unter Vermeidung eines Laufzeitfehlers Automatisches Komplettieren einer Zelleingabe
Word mit bestimmtem Dokument starten Textprogramm starten und Inhalte von Zelle A1 eingeben
AcrobatReader mit *.pdf-Dokument über UserForm starten In Abhängigkeit von einem Formelwert Makro starten
Beim Öffnen PowerPoint starten und danach Mappe aktivieren Neue Excel-Sitzung mit Arbeitsmappe starten
UserForm starten, wenn Cursor in Zeile 5 Access-Datenbank öffnen und deren Makro starten
Bewerten Sie hier bitte das Excel-Portal