Clever-Excel-Forum

Normale Version: Excel2010 - VBA Code erweitern - wenn "verfügbar" Zelle leeren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi Lutz,

Ok werde ich direkt mal versuchen :) Danke dir
Dich wundert dass er läuft weil ?

LG
Hallo Felix,

Code:
If Target.Value <> "Entliehen" Then Exit Sub
Cells(Target.Row, Target.Column + 1).Value = Date
ElseIf Target.Value = "Verfügbar" Then
    Cells(Target.Row, Target.Column + 1).Value = ""

du hast eine If-Abfrage, die mit "Exit Sub" abgeschlossen ist.
Damit wird die nächste Zeile immer ausgeführt.
Dann kommt ein ElseIf. Hier müsste Excel eigentlich meckern, da es zu diesem ElseIf kein einleitendes If gibt...

Gruß,
Lutz
Hallo Lutz,

hat geklappt, vielen Dank.
Funktioniert jetzt genau so wie ich es mir vorgestellt habe, aber... 19 19
(Tabelle im Anhang)

Wenn ich jetzt in Spalte A auf Verüfgbar gehe, leer der die Zelle B komplett, so wie es sein soll.
in Zelle C wähle ich aber über ein Drobdownmenü aus, ob das Buch 7 oder 14 Tage ausgeliehen wird. In Zelle D zeigt er mir dann an, wann
das Buch wieder zurück gegeben werden müsste.
Setze ich also nun in Zelle A das Buch auf Verfügbar, welches vorher entliehen war, dann bleibt in Zelle C die 7 oder 14 aus dem Dropdownmenü stehen und auch das statische Datum in Zelle D. Kann ich auch das irgendwie ändern, dass er wenn verfügbar quasi nicht nur Zelle B sondern auch C und D leert?

Ich bin mir durchaus bewusst, dass solche Foren nicht dafür das sind, dass andere die komplette Arbeit für einen machen. Allerdings bin ich wie gesagt ein Erzieher und habe damit sonst nicht viele Berührungspunkte. Grundsätzlich wäre eine Bibliothekssoftware auch die bessere wahl, diese kann ich aber aufgrund dessen, dass unsere Einrichtung an eine IT-Firma angebunden ist, welche die Software seit 3 Wochen nicht installiert bekommt auf euch Profis angewiesen :)

Ich hoffe also dass du/ ihr mir weiterhelfen könnt.

Vielen dank im Vorraus.
Hallo Felix,

anbei der angepasste Code:
Code:
rivate Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

If Target.Cells.Count > 1 Then Exit Sub

Set Bereich = Range("A1:A9999")

If Intersect(Target, Bereich) Is Nothing Then Exit Sub

Application.EnableEvents = False

If Target.Value = "Entliehen" Then
    Cells(Target.Row, Target.Column + 1).Value = Date
    Cells(Target.Row, Target.Column + 3).FormulaR1C1 = "=RC[-2] + RC[-1]"
ElseIf Target.Value = "Verfügbar" Then
    Cells(Target.Row, Target.Column + 1).Value = ""
    Cells(Target.Row, Target.Column + 2).Value = ""
    Cells(Target.Row, Target.Column + 3).Value = ""
End If

Application.EnableEvents = True

Set Bereich = Nothing
End Sub
Bei "Entliehen" fügt der Code in Spalte D eine Formel ein.
Bei "Verfügbar" werden die Werte in Spalte B-D gelöscht.
Damit das Ganze nicht in eine Dauerschleife läuft , werden vor der Änderung die Events (z.B. WorkbokChange) ausgeschaltet und am Ende wieder eingeschaltet.

Gruß,
Lutz
Seiten: 1 2