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.

Ersetzen mittels VBA
#1
Hallo!

Ich habe in der Spalte N, beginnend ab N5 folgende Formel stehen:

Code:
=WENN(I5<EDATUM(HEUTE();-6);1;0)


Nun möchte ich mittels VBA diese Formeln in der gesamten Spalte N durch die Zahl 0 ersetzt haben, wenn der Wert aus der Formel 1 ergibt.
Wenn der Wert 0 in der Formel ergibt, darf die Formel nicht ersetzt werden und muss bestehen bleiben.

Ich hoffe, dass mir jemand helfen kann.

LG
Thomas
Excel Version 2016
Antworten Top
#2
Moin

Formeln und Festwerte in einer Spalte mischen ist ein NoNo.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
und wenn ich es trotzdem gerne hätte?  Undecided
Excel Version 2016
Antworten Top
#4
moin,

wenn ich dich richtig verstanden habe

wenn die Formel eine 1 ergibt soll in der Zelle eine 0 stehen
wenn die Formel eine 0 ergibt steht doch dann auch 0 in der Zelle
warum also überhaupt eine Formel
kannst doch gleich 0 in die Zelle schreiben

mfg Tom
Antworten Top
#5
das ist etwas kompliziert zum Erklären, da müsste ich dir die ganze Datei schicken
es soll beim Öffnen genau jenes Makro ausgeführt werden, was ich gerne hätte, nämlich mit dem Ersetzen von 1 auf 0
Excel Version 2016
Antworten Top
#6
Hallo

Code:
Sub Ersetzen()
    For Each AC In Selection
       If AC.Value = 1 Then AC.Value = 0
    Next AC
End Sub

Den gewünschten Bereich selektieren und das Makro starten.  Die übrigen Formeln bleiben bestehen.

mfg Gast 123

Nachtrag:  Sorry, ich hatte den Bereich Spalte N nicht gesehen. Dann bitte so, mit LastZell

Code:
Sub Ersetzen()
Dim AC As Range, lz1 As Long
    lz1 = Cells(Rows.Count, "N").End(xlUp).Row
    For Each AC In Range("N5:N" & lz1)
        If AC.Value = 1 Then AC.Value = 0
    Next AC
End Sub

Nachtrag:    Was ist, wenn man die Formel zurücksetzen will??  Egal aus welchem Grund. Alternativer Vorschlag:
Nehme eine Hilfsspalte die du auf 1 oder Null setzt, und mache in der Formel eine Wenn Verknüpfung zu der Hilfsspalte.
Das Hilfsspalte könnte man auch per VBA setzen.  Dann kannst du die Hilfsspalte aber bei Bedarf wieder löschen!!
Antworten Top
#7
Hallo Gast 123!

Danke für den Code, du hast mir sehr geholfen. Es funktioniert genau so, wie ich mir das vorgestellt habe.

LG
Thomas
Excel Version 2016
Antworten Top


Gehe zu:


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