Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
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
Inhaltsverzeichnis

Laufzeitfehler bei Range().Select

Laufzeitfehler bei Range().Select
wernerp
Hallo,
ich bekomme jedesmal einen Laufzeitfehler 1004 (Die Methode 'Range' für das Object '_Global' ist fehlgeschlagen)
im nachfolgendem Code:

' --- Datenbereich ermitteln ----------------------------------------------
Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
Set rngLastCellLine5 = ActiveCell
strLastCellLine5 = rngLastCellLine5.Address()
ActiveCell.Offset(-4, 0).Select
Set rngLastCellLine1 = ActiveCell
strLastCellLine1 = rngLastCellLine1.Address()
'--- beim nächsten Befehl stoppt die Bearbeitung mit Fehlermeldung 1004
'    macht aber mit "Ausführen ... (F5)" weiter
Range("A1:" & strLastCellLine1 & ",A5:" & strLastCellLine5).Select
Wie im Kommentar erwähnt, läuft der Makro nach F5 ordnungsgemäß weiter.
Woran könnte es liegen?
Gruß Werner.
AW: Laufzeitfehler bei Range().Select
11.02.2011 09:53:49
Holger,
Hallo,
was machtst du hier?
strLastCellLine1 = rngLastCellLine1.Address()
Wenn strLastCellline1 als String definiert ist, kannst du später das glaube ich nicht
als Addresse verwenden.
Besser wäre es auch de Range mit Cells zu definieren.
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:13:45
wernerp
Hallo Holger,
ich erzeuge aus einer Tabelle mit Datum in der Titelzeile (TZ) und 4 Datenreihen zwei Diagramme.
Das erste Diagramm wird aus der TZ und den ersten 3 Datenreihen erzeugt und das funktioniert.
Das zweite Diagramm wird aus der TZ und der 4. Datenreihe erzeugt. Dazu muß ich die Titelzeile
und die 4. Datenreihe selektieren.
Ich ermittle mit
strLastCellLine1 = rngLastCellLine1.Address()

die Adresse der rechten unteren Zelle des Datenbereichs als String, den ich zur Konstruktion des
Range-Befehls verwende, der den Fehler verursacht.
Für das erste Diagramm verwende ich ein ähnliches Konstrukt und das macht keine Probleme:

' --- Datenbereich ermitteln ----------------------------------------------
Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
ActiveCell.Offset(-1, 0).Select
Set rngLastCell = ActiveCell
strLastCell = rngLastCell.Address()
Range("A1:" & strLastCell).Select
Gruß Werner.
Anzeige
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:34:01
Holger,
Hallo Werner,
die Codes sind aber unterschiedlich.
In diesem Nefehl hast du im Range nur eine Adresse stehen und im anderen zwei.
Ich denke, da liegt der Fehler, da du nicht mehrmals das & Zeichen verwenden kannst.
Anstatt Range(A1:A2) kannst du auch schreiben Range(Cells(1,1),Cells2,1).
Das meinte ich mit, die Syntax des Ranges zu ändern, denn deine Fehlermeldung hatte ich auch schon mal und seither definiere ich Ranges immer mit Cells und nicht mehr mit den ZellAdressen.
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:57:27
wernerp
Hallo Holger,
wie ermittels Du dabei die rechte untere Eckzelle des aktuellen Bereichs?
Gruß Werner.
Anzeige
AW: Laufzeitfehler bei Range().Select
11.02.2011 11:11:52
Holger,
Hallo Werner,
das geht so:
Letzte Zelle ermitteln:
LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Die 1 steht für Spalte 
1
Letzte belegte Spalte ermitteln:
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column 'Die 1 steht für Zeile 1

Jetzt hast du mit LastRow, LastCol die rechte untere Zelle ;)
AW: Laufzeitfehler bei Range().Select
11.02.2011 13:02:33
wernerp
Hallo Holger,
gut das funktioniert so. Nur wie kann ich 2 Bereiche á la
Range(A1:B1,A5:B5)

mit der Cells-Methode ausdrücken?
Gruß Werner.
Anzeige
AW: Laufzeitfehler bei Range().Select
11.02.2011 14:25:25
Holger,
Mir Range.Cells(Cells1,Cell2)
Wobei Cells1 z.B. Cell(1,1) ist und Cells Cell(10,1)
AW: Laufzeitfehler bei Range().Select
11.02.2011 09:55:19
Reinhard
Hallo Werner,
was erzählst du da? Der Fehler kommt schon hier:
ActiveCell.Offset(-4, 0).Select
und da ist nix mit F5 und weitermachen. Negative Zeielnnummern kennt Excel nicht und ActiveCell ist A1, du willst zu Aminus3.

Option Explicit
Sub tt()
Dim rngLastCellLine5, rngLastCellLine1, strLastCellLine5, strLastCellLine1
Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
Set rngLastCellLine5 = ActiveCell
strLastCellLine5 = rngLastCellLine5.Address()
ActiveCell.Offset(-4, 0).Select
Set rngLastCellLine1 = ActiveCell
strLastCellLine1 = rngLastCellLine1.Address()
Range("A1:" & strLastCellLine1 & ",A5:" & strLastCellLine5).Select
End Sub

Gruß
Reinhard
Anzeige
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:14:44
wernerp
Hallo Reinhard,
zu diesem Zeitpunkt befinde ich mich in der 5. Zeile.
Gruß Werner.
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:30:40
Reinhard
Hallo Werner,
tja du, ich aber nicht :-))
Beweis: https://www.herber.de/bbs/user/73496.xls
D.h. der Fehler kommt zumindest bei einem jungfräulichen Blatt.
Vielleicht ist auch das was du zu Rudi geschrieben hast darauf zurückzuführen, daß ihr jnterschiedliches in A habt. Bei mir läuft Rudis Code (XL2000)
Gruß
Reinhard
AW: Laufzeitfehler bei Range().Select
11.02.2011 11:01:31
wernerp
Hallo Reinhard,
ich glaube Holgers Ansatz ist der erfolgversprechendste und den will ich mal weiterverfolgen.
Vielen Dank für Deine Bemühungen, Gruß Werner.
Anzeige
AW: Laufzeitfehler bei Range().Select
11.02.2011 09:58:08
Rudi
Hallo,
die Selecterei ist überflüssig.
    Set rngLastCellLine5 = Range("A1").SpecialCells(xlCellTypeLastCell)
strLastCellLine5 = rngLastCellLine5.Address()
Set rngLastCellLine1 = rngLastCellLine5.Offset(-4)
strLastCellLine1 = rngLastCellLine1.Address()
Range(Range(Cells(1, 1), rngLastCellLine1), Range(Cells(5, 1), rngLastCellLine5)).Select
Gruß
Rudi
AW: Laufzeitfehler bei Range().Select
11.02.2011 10:21:32
wernerp
Hallo Rudi,
mit diesem Code bekomme ich den Fehler
Die Methode 'Cells' für das Object '_Global' ist fehlgeschlagen

und danch gehts nicht mehr weiter. Sorry.
Gruß Werner.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige