Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler '1004'

Laufzeitfehler '1004'
24.07.2005 09:58:47
Marc
... Die Select-Methode des Range Objektes konnte nicht ausgeführt werden.
Hallo alle miteinander, ich hoffe, ihr könnt mir dabei helfen, obige Fehlermeldung zu beseitigen!
Habe mit dem Macrorecorder folgendes Macro aufgenommen, das für sich einwandfrei funktioniert:
Sub Sortieren_1()
'
' Sortieren_1 Makro
' Makro am 16.12.2004 von Marc aufgezeichnet
'
'
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Sheets("Umsätze").Select
Sheets("Umsätze").Name = "Umsätze"
Rows("2:2").Select
ActiveWindow.ScrollRow = 232
Rows("2:251").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Sheets("Personenregister").Select
End Sub
Für diese Sortier-Routine wollte ich dann einen Butten mit Hilfe der Steuerelemente-Toolbox machen, der dem entsprechend dann mit folgendem Code versehen wurde:

Private Sub CommandButton1_Click()
' CommandButton1_Click Makro
' Makro am 16.12.2004 von Marc aufgezeichnet
Columns("B:B").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Sheets("Umsätze").Select
Sheets("Umsätze").Name = "Umsätze"
Rows("2:2").Select
ActiveWindow.ScrollRow = 232
Rows("2:251").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Sheets("Personenregister").Select
End Sub

Tja und wenn ich nun auf den Button klicke, kommt eben jene Fehlermeldung. Im Debug-Modus wird angezeigt (Gelbe Hinterlegung), dass die Zeile [Rows("2:2").Select] nicht korrekt ist. Wenn ich diese Zeile und auch die Zeile [ActiveWindow.ScrollRow = 232] lösche, weil sie ja eigentlich nicht benötigt werden, ist die Zeile [Rows("2:251").Select] gelb hinterlegt. Was mache ich falsch?
Vielen Dank im Voraus!
Marc

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler '1004'
24.07.2005 10:16:04
Marc
Ich schau heut Mittag nochmal rein, muss leider kurzfristig weg. Aber danke schon einmal für die Antworten!
Gruß
Marc
AW: Laufzeitfehler '1004'
24.07.2005 10:05:33
Hajo_Zi
Hallo Marc,
es steht schon in vielen Beiträgen,. Verzichte auf select.
Option Explicit

Private Sub CommandButton1_Click()
' CommandButton1_Click Makro
' Makro am 16.12.2004 von Marc aufgezeichnet
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("Umsätze").Rows("2:251").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Laufzeitfehler '1004'
24.07.2005 10:13:47
Matthias
Hallo Hajo,
kleiner Fehler, der "Key1" (Range("A2")) muss sich auch auf das Blatt "Umsätze" beziehen.
Ich weiß, diese Art von Fragen verleiten nicht gerade zu genauen Antworten ;-)
Gruß Matthias
AW: Laufzeitfehler '1004'
24.07.2005 10:18:03
Hajo_Zi
Hallo Matthias,
da hast Du Recht.
Gruß Hajo

"Wer Rechtschreibfehler findet, darf sie behalten!"
AW: Laufzeitfehler '1004'
24.07.2005 10:10:06
Matthias
Hallo Marc,
das liegt daran, dass der Code ist Tabellenblattmodul verschoben wurde.
Hier bedeutet z.B. Range("A1") immer der bereich des Blattes, in dessen Modul der Code steht.
Im allgemeinen Modul bezieht sich Range("A1") auf den Bereich des aktiven Blattes.
Wenn also nicht das Blatt ausgewählt ist, in dem der Code steht (im Tabellenblattmodul), dann kann der Bereich nicht ausgewählt werden.
Abhilfe durch eindeutiges Referenzieren und Verzicht auf Select:

Private Sub CommandButton1_Click()
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
With Sheets("Umsätze")
.Rows("2:251").Sort Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub

Gruß Matthias
Anzeige
Problem gelöst :)
24.07.2005 12:43:35
Marc
Vielen Dank an euch alle, und besonders an dich, Matthias, mit deinem Code gings.
MfG
Marc

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige