Fehlermeldung bei Makro-Ausführung

Bild

Betrifft: Fehlermeldung bei Makro-Ausführung
von: natascha
Geschrieben am: 20.03.2005 15:10:32
Hallo,
ich möchte das nachfolgende Makro ausführen:
Public


Sub Spalte()
    Dim Zeilenanzahl As String
    Dim zelle As Range
    
    Sheets("Salesexport").Select
    
    Zeilenanzahl = "AP" + "ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row"
    
    For Each zelle In Range("AP2:Zeilenanzahl")
        zelle.Value = zelle.Offset(0, -2) * zelle.Offset(0, -1)
    Next
End Sub

Jetzt bekomme ich folgende Fehlermeldung:
Laufzeitfehler '1004':
Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen.
????
Könnt ihr mir helfen??
Bild

Betrifft: AW: Fehlermeldung bei Makro-Ausführung
von: Oberschlumpf
Geschrieben am: 20.03.2005 15:37:08
Hi Natascha
hier ein ungetesteter Vorschlag:

Sub Spalte()
    Dim Zeilenanzahl As String
    Dim zelle As Range
    
    Sheets("Salesexport").Select
    
    Zeilenanzahl = "AP" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row '<-- hier war Fehler
    
    For Each zelle In Range("AP2:" & Zeilenanzahl) '<-- hier war Fehler
        zelle.Value = zelle.Offset(0, -2) * zelle.Offset(0, -1)
    Next
End Sub

Konnte ich Dir helfen?
Ciao
Thorsten
Bild

Betrifft: AW: Fehlermeldung bei Makro-Ausführung
von: natascha
Geschrieben am: 20.03.2005 15:43:32
DANKE, Thorsten!!!
Genau DAS war's.....
Du hast mir gerade den Sonntag gerettet!!!
N.
Bild

Betrifft: ich lass mich gern zum Kaffee einladen :-)..OT
von: Oberschlumpf
Geschrieben am: 20.03.2005 15:45:48

Bild

Betrifft: AW: Fehlermeldung bei Makro-Ausführung
von: Nepumuk
Geschrieben am: 20.03.2005 15:45:02
Hallo Natascha,
wenn du diesen Ausdruck: "ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row"
in Anführungszeichen setzt, wird ein String daraus. Deine Variable Zeilenzahl beinhaltet dann folgendes: "APActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row"
Damit kann Excel natürlich nichts anfangen.
Du musst übrigens die Tabelle nicht zur aktiven Tabelle machen (Select - Methode) um darin die Value - Eigenschaft von Zellen zu ändern. Das geht auch so:


Public Sub Spalte()
    Dim myRange As Range
    Application.ScreenUpdating = False
    With Worksheets("Salesexport")
        For Each myRange In .Range(.Cells(2, 42), .Cells(.Cells(.Rows.Count, 1).End(-4162).Row, 42))
            myRange.Value = myRange.Offset(0, -2).Value * myRange.Offset(0, -1).Value
        Next
    End With
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehlermeldung bei Makro-Ausführung"