Office-Fragen.de

Normale Version: Wenn bestimmter Wert in Zelle dann Makro ausführen
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe mir ein Makro erstellt, welches das aktuelle Datum statisch einfügt.

Nun möchte ich aber erreichen, wenn ich in Zelle C4 den Wert "IT" per Dropdown auswähle, dass es mir in die Zelle D4 das aktuelle Datum statisch einfügt, sprich das Makro ausführt.
Wenn in der Zelle C5 "IT" steht, soll es das Makro in Zelle D5 ausführen und so weiter.

Leider weiß ich nicht wie ich Excel dazu bringen kann, das es diese Funktion ausführt.

Kann mir jemand weiter helfen?

Vielen Dank!
Hi,

Rechtsklick auf dein Tabellenblatt und "Code anzeigen" auswählen.
Im VBA-Editor eintragen (mal eine einfache Version):


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Target.Column = 3 Then
        If Target.Row > 3 Then
            If Target.Value = "IT" Then
                Target.Offset(0, 1) = Format(Now, "dd.mm.yyyy")
            End If
        End If
    End If
   
End Sub


Mit dieser Ereignisprozedur wird jede Änderung an deinem Blatt überprüft. Dabei ist "Target" die aktuell veränderte Zelle. Mit den "If"-Anweisungen prüfst du, ob die Zelle in Spalte 3 ("C") liegt, ob sie in einer Zeile liegt, die größer als 3 ist und ob sie einen bestimmten Wert ("IT") hat. Wenn diese Bedingungen erfüllt sind, dann wird in der rechten Nachbarzelle (Offset) das heutige Datum eingetragen. Du kannst das entsprechend anpassen und verfeinern (z.B. Prüfen, wenn mehrere Zellen auf einmal geändert werden, beispielsweise bei einer Mehrfachauswahl).

Viel Erfolg.
HG - Lucky Joe
Hallo,

vielen vielen Dank.

Es hat super geklappt.

Nun hätte ich nur noch gerne, dass wenn in der Zelle C das "IT" nicht mehr steht, sondern ein anderer Wert auch das Datum nicht mehr vorhanden ist sondern die Zelle einfach leer ist

Ich wäre dankbar, wenn mir jemand erklären könnte, wie ich das Makro anpassen muss

Für Antworten bedanke ich mich im Voraus.
Hi,

... dan ergänze die "IF"-Anweisung um ein "Else":

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Target.Column = 3 Then
        If Target.Row > 3 Then
            If Target.Value = "IT" Then
                Target.Offset(0, 1) = Format(Now, "dd.mm.yyyy")
            Else
                Target.Offset(0, 1) = ""
            End If
        End If
    End If
   
End Sub

Viel Erfolg.
HG - Lucky Joe
Moin!
Auch von mir eine Ergänzung.
Code:
Target.Offset(0, 1) = Format(Now, "dd.mm.yyyy")

Hier wird ein Text in die Zelle eingetragen, der wie ein Datum aussieht, aber keines ist!
Dies erschwert spätere Auswertungen.
Warum nicht einfach:
Code:
Target.Offset(0, 1) = Date

Gruß Ralf