Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Objekt erforderlich
#11
Hallo,

das ist mittlerweile nur noch ein "Rumgeeiere".
Zeig mal beide Worksheet_Change Codes.

Du kannst da nicht zwei davon haben. Sprich beide müssen in eine.

Gruß Werner
Antworten Top
#12
Hallo!

Danke sehr für die Hilfe, du hast mir sehr geholfen. Es funktioniert nun.

LG
Thomas
Excel Version 2016
Antworten Top
#13
Hallo noch einmal!

Leider habe ich das Problem doch noch nicht gelöst.
Es kommt noch immer folgende Fehlermeldung, wenn ich in der Spalte E den Betrag ändere:

Lautzeitfehler 424 - Objekt erforderlich

Ich möchte nämlich ein Makro ausführen, verwende dort aber den Befehl "Target.Offset", welcher anscheinend in einem Makro nicht zulässig ist.
Meine Frage wäre, wie könnte ich das Makro umschreiben, dass es trotzdem funktioniert? Bitte aber nicht als Lösung angeben, dass ich den Befehl "Target.Offset" im Sheet ("Panels") einbauen soll, da weiß ich eh, dass es funktioniert. Nur habe ich dort schon soviele Prozeduren, dass er mir dann einen Fehler bringt, dass die Prozedur zu groß ist.

Anbei habe ich das Sheet hochgeladen.

Ich hoffe, dass mir jemand helfen kann.

LG
Thomas


Angehängte Dateien
.xls   test.xls (Größe: 206,5 KB / Downloads: 2)
Excel Version 2016
Antworten Top
#14
Hallo Thomas,

zu:
Zitat:... verwende dort aber den Befehl "Target.Offset", welcher anscheinend in einem Makro nicht zulässig ist.

Wie kommst du denn darauf? Natürlich ist der Befehl zulässig wenn der Routine mitgeteilt wird, welches Objekt und welcher Bereich mit Target gemeint ist.
zB.
dim Target as Range
set Target = DeinBereich

Was für DeinBereich eingesetzt werden soll weist nur du (Armins Vorschlag war ActiveCell). Du kannst auch direkt DeinBereich.Offset schreiben.

In manchen Ereignismakro sind diese Informationen über den Parameter festgelegt.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#15
Auch Hallo,

@Ego

dein Vorschlag funktioniert so nicht, weil Thomas in dem Fall den target mit übergeben muss.

@dertommy

ändere dein Change-Ereignis so ab

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 5 Then

    Target.Offset(0, 4) = Date
                    
End If

If Target.Column <> 9 Then Exit Sub
        
    test Target
        
    With ThisWorkbook.Worksheets("Panels")
        
    .Range("A1").Select
        
    End With

End Sub

und dein Test-Makro so

Code:
Sub test(ByVal rngZiel As Range)

If rngZiel.Offset(0, -2) > 100 Then

    MsgBox ("Der mom. Stand hat sich bei """ & rngZiel.Offset(0, -7) & " erhöht.")
    
End If

End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#16
Hallo an alle!

Danke vorerst einmal an alle.

@ Ego: Ich habe das deswegen angenommen, weil Fennek in seinem Kommentar folgendes geschrieben hat: "Target" ist nur in Event-Prozeduren definiert.

@ Steffl: Danke sehr, du hast mir geholfen. Jetzt funktioniert es super.

LG
Thomas
Excel Version 2016
Antworten Top
#17
Hallo Thomas,

mag sein, dass Du zufrieden bist. Wenn ich mir aber den Code aus dem Beitrag #3 anschaue, insbesondere die Variablennamen, keine Fehlerabfrage bei den rngFind...., dann befürchte ich, irgendwann fliegt dir das um die Ohren.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#18
Hallo Steffl!

Ich habe gesehen, dass du eigentlich nur dem Marko Namen "Target" eingefügt hast und im Makro statt "Target" einfach auf "rngZiel" geändert hast.
Habe nicht gewusst, dass das so leicht geht.
Was mir aber aufgefallen ist, dass ich nun dieses Makro nicht mehr unter "Entwicklertools - Makro" finde, liegt wohl wahrscheinlich an "(ByVal rngZiel As Range)"
Gibt es da noch eine Möglichkeit, dass ich das Makro trotzdem sehe?

Danke nochmals.

LG
Thomas
Excel Version 2016
Antworten Top
#19
Hallo Thomas,

(16.03.2021, 10:41)dertommy schrieb: Was mir aber aufgefallen ist, dass ich nun dieses Makro nicht mehr unter "Entwicklertools - Makro" finde, liegt wohl wahrscheinlich an "(ByVal rngZiel As Range)"

Ja, hast Du richtig erkannt.

(16.03.2021, 10:41)dertommy schrieb: Gibt es da noch eine Möglichkeit, dass ich das Makro trotzdem sehe?

Wozu?
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste