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"