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.
16.03.2021, 09:29 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2021, 09:33 von Ego.)
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.
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.
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?
(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?