Microsoft Excel

Herbers Excel/VBA-Archiv

Methode Range für Objekt global fehlgeschlagen | Herbers Excel-Forum


Betrifft: Methode Range für Objekt global fehlgeschlagen von: Chris
Geschrieben am: 05.01.2010 12:16:25

Hi,
bekomme die Fehlermeldung 1004 "Die Methode 'Range' ist für das Objekt '_Global' fehlgeschlagen" bei folgender Zeile meines Codes.

nachfrage = Range("AE" & maxzeile1) 'Produkt der maxzeile wird ausgewählt

Woran liegt die Fehlermeldung?

Code ausführlicher:

Range("AF161").Select ' Zelle AF161 für erstes Nachfragefeld auswählen
aktrow = ActiveCell.Column ' aktuelle Spalte ermitteln
aktzeile = ActiveCell.Row ' aktuelle Zeile ermitteln
Do While ActiveCell <> "" ' führe aus solange aktuelle Zelle nicht leer ist
maxw = Worksheets.Application.Max(Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(2, 0))) 'Range: Maximalwert ermitteln bis 2 Spalten unten drunter
maxaus = Worksheets.Application.Max(Range(ActiveCell.Offset(3, 0), ActiveCell.Offset(5, 0))) 'Range: höchste Auslastung ab 3 Spalten bis 5 Spalten unten drunter
If ActiveCell.Offset(0, 0) = maxw Then maxzeile = ActiveCell.Row 'Zeile mit Maximalwert ermitteln
If ActiveCell.Offset(1, 0) = maxw Then maxzeile = ActiveCell.Row + 1
If ActiveCell.Offset(2, 0) = maxw Then maxzeile = ActiveCell.Row + 2
If ActiveCell.Offset(3, 0) = maxaus Then maxzeile1 = ActiveCell.Row + 3 'Zeile mit höchster Auslastung ermitteln
If ActiveCell.Offset(4, 0) = maxaus Then maxzeile1 = ActiveCell.Row + 4
If ActiveCell.Offset(5, 0) = maxaus Then maxzeile1 = ActiveCell.Row + 5
nachfrage = Range("AE" & maxzeile1) 'Produkt der maxzeile wird ausgewählt

  

Betrifft: AW: Methode Range für Objekt global fehlgeschlagen von: Ramses
Geschrieben am: 05.01.2010 12:25:55

Hallo

Vielleicht hat deine Variable "maxzeile1" gar keinen Wert ?

Geh das Makro doch mal mit F8 im Einzelschritt durch und bevor du die benannte Zeile mit F8 ausführst fahr mal mit der Maus über die Variable und schau dir den Wert an.

Wenn dir das zu kompliziert ist, dann bau vor dieser Zeile diesen Code ain

Msgbox "Der maximale Wert = " & maxzeile1

und schau was dann angzeigt wird

Gruss Rainer


  

Betrifft: AW: Methode Range für Objekt global fehlgeschlagen von: Chris
Geschrieben am: 05.01.2010 12:44:09

Ja, maxzeile1 bleibt leer.
Aber maxzeile bspw. nimmt einen Wert an (161)?!?


  

Betrifft: AW: Methode Range für Objekt global fehlgeschlagen von: Ramses
Geschrieben am: 05.01.2010 12:48:48

Hallo

Ich kann nicht hellsehen, ... aber dann geht deine Prüfung

maxaus = Worksheets.Application.Max(Range(ActiveCell.Offset(3, 0), ActiveCell.Offset(5, 0)))

vielleicht schon in die Hose oder die Prüfung

If ActiveCell.Offset(3, 0) = maxaus Then maxzeile1 = ActiveCell.Row + 3

ist fehlerhaft.
Da musst du halt mal Schritt für Schritt nachsehen

Gruss Rainer


  

Betrifft: AW: Methode Range für Objekt global fehlgeschlagen von: Chris
Geschrieben am: 05.01.2010 12:51:48

Du hast recht. Sorry, ganz doofer Fehler:
maxaus hat schon keinen Wert angenommen, da maxaus als Long deklariert war. Die Werte von maxaus sind allerdings Dezimalzahlen


Beiträge aus den Excel-Beispielen zum Thema "Methode Range für Objekt global fehlgeschlagen"