Clever-Excel-Forum

Normale Version: Ersetzen mittels VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Moin

Formeln und Festwerte in einer Spalte mischen ist ein NoNo.
und wenn ich es trotzdem gerne hätte?  Undecided
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
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
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!!
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