Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code funktioniert unter 2003, nicht unter 2010

Code funktioniert unter 2003, nicht unter 2010
04.02.2013 08:35:04
Heiko
Hallo,
ich habe ein kleines Makro geschrieben, welches eines Bereich ermitteln soll und diesen dann farbig markieren soll. Unter 2003 funktioniert es, in Excel 2010 erhalte ich an 2 Stellen Fehlermeldungen:
Sub Zellen_formatieren()
Dim Zeilenbereich As Integer
Dim Spaltenbereich As Integer
Dim Zählspalte As Integer
Dim erste_Zeile As Integer
Spaltenbereich = Forecast.Range("E2").Value
'==> funktioniert unter 2003 nicht unter 2010, warum? 424 Object required
'Spaltenbereich = Range("E2").Value
' ==> wird alternativ verwendet und funktioniert, warum kann ich das Tabellenblatt nicht  _
benennen?
Zählspalte = 4
erste_Zeile = 14
'letzte Zeile bestimmen
leer = 0
For i = erste_Zeile To 65000
'If Forecast.Cells(i, Zählspalte).Text  "" Then
If Cells(i, Zählspalte).Text  "" Then
leer = 0
Else
leer = leer + 1
If leer > 10 Then
Exit For
End If
End If
Next i
Zeilenbereich = i - 11
ActiveSheet.Range(Cells(4, 2), Cells(Zeilenbereich, Spaltenbereich)).Select
'Fehler 1004: Select method of range class failed ==> unter 2003 funktioniert es, was ist  _
anders? Gibt es Alternativen?
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ist ForeCast eine global deklarierte Variable ?
04.02.2013 09:46:44
NoNet
Hallo Heiko,
mit folgender Zeile wird ein Objekt ForeCast referenziert, das zumindest im geposteten Code weder deklariert noch mit einem Wert (sinnigerweise einer Objektzuweisung eines Worksheets) befüllt ist :
Spaltenbereich = Forecast.Range("E2").Value
Oder meintest Du etwa das Blatt namens "Forecast" :
Spaltenbereich = Sheets("Forecast").Range("E2").Value
Gruß, NoNet

Vermutung : ForeCast ist ein Bereich ?
04.02.2013 10:20:17
NoNet
Hallo Heiko,
nun habe ich noch eine andere Vermutung : Ist Forecast möglicherweise ein definierter Bereichsname (mit Bezug auf einen Zellbereich) ?
Dann sollte es so lauten :
Spaltenbereich = [Forecast].Range("E2").Value
Salut, NoNet

Anzeige
AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 10:55:32
Heiko
Hallo NoNet,
danke für die Hilfe, den ersten Fehler habe ich behoben, jetzt sieht der Code wie folgt aus:
jetzt habe ich im unteren Bereich noch einen Fehler bei
ActiveSheet.Range(Cells(4, 2), Cells(Zeilenbereich, Spaltenbereich)).Select
Was mache ich hier falsch?
Sub Zellen_formatieren()
Dim Zeilenbereich As Integer
Dim Spaltenbereich As Integer
Dim Zählspalte As Integer
Dim erste_Zeile As Integer
Zählspalte = 4
erste_Zeile = 14
Spaltenbereich = Sheets("Forecast").Range("E2").Value
'letzte Zeile bestimmen
leer = 0
For i = erste_Zeile To 65000
'If Forecast.Cells(i, Zählspalte).Text  "" Then
If Cells(i, Zählspalte).Text  "" Then
leer = 0
Else
leer = leer + 1
If leer > 10 Then
Exit For
End If
End If
Next i
Zeilenbereich = i - 11
ActiveSheet.Range(Cells(4, 2), Cells(Zeilenbereich, Spaltenbereich)).Select
'Fehler 1004: Application defined or object defined error =unter 2003 funktioniert es, was ist  _
anders?
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub

Anzeige
AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 11:04:28
Daniel
Hi
welchen Wert haben die Variablen Zeilenbereich und Spaltenbereich?
befindet sich der Code in einem allgemeinen Modul oder im Modul eines Tabellenblatts?
Gruß Daniel

AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 11:43:10
Heiko
Hi Daniel,
ich bin im allgemeinen Modul, soll ich den Code besser aus dem Modul des Tabellenblattes ziehen?
Zeilenbereich kommt aus der For-Schleife, wird im Tabellenblatt Forecast gezählt
Spaltenbereich wird auch aus dem Forecastblatt übernommen, aus fester Zelle: Spaltenbereich = Sheets("Forecast").Range("E2").Value

AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 11:56:59
Daniel
Hi
nee, allgemeines Modul passt schon.
welchen wert haben die Variablen Spaltenbereich und Zeilenbereich, wenn der Fehler auftritt?
der Wert wird dir angezeigt, wenn du nach dem Fehlerstopp mit der Maus im Code über die Variablennamen fährst oder wenn du im Direktfenster ?Spaltenbereich eintippst.
oder du machsts paralles noch das Lokalfenster auf und überwachst dort die Variablenwerte.
Zeilen- und Spaltenbereich sollten grösser 0 und kleiner gleich der zulässtigen Zeilen- und Spaltenanzahl sein.
Gruß Daniel

Anzeige
AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 12:24:20
Heiko
Hallo Daniel,
Spaltenbereich = 4
Zeilenbereich = 44
beides zeigt er mir in der folgenden Zeile an:
ActiveSheet.Range(Cells(4, 2), Cells(Zeilenbereich, Spaltenbereich)).Select
Daher versehe ich den Fehler auch nicht, die Werte werden angezeigt, auf meinem PC zu Hause auf 2003 funktionierte es auch gestern abend....
Vielen dank für die Hilfe
heiko

AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 12:29:27
Heiko
Hallo Daniel,
jetzt läuft es.
habe den debugger noch 10 rüber laufen lassen und verschiedene Break-Points gesetzt, dann ließ es, warum kann ich nicht sagen....
nochmals Danke

AW: Ist ForeCast eine global deklarierte Variable ?
04.02.2013 17:53:08
Hajo_Zi
Hallo Daniel,
ich hätte aus Deinem Beitrag gelesen, das Problem ist gelöst?

Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige