ich verstehe kein VBA und brauche Hilfe bei der Lösung des folgenden (ich glaube eigentlich recht einfachen?) Problems in Excel 2010:
In Spalte N („Gewinndatum“) können Nutzer ein Datum eingeben (die Zellen sind sonst leer).
Wenn ein Datum eingegeben wird, soll in der gleichen Zeile in Spalte I der Wert auf „Gewonnen!“ geändert werden. In Spalte I steht bereits ein Wert, der einfach überschrieben werden soll.
das kann man schon z.B. mit einem Makro machen, dass auf die Eingabe in Spalte N reagiert.
Allerdingst werden bei Falscheingaben (Datum in falscher Zeile) die Werte in Spalte I überschrieben, ohne dass die Möglichkeit besteht dies rückgängig zu machen-zumindest nicht so ganz einfach.
Sicherer wäre es in Spalte I mit einer bedingten Formatierung zu arbeiten, die gewonnen markiert - durch Prüfung, ob in Spalte N etwas eingetragen wurde.
das kann man schon z.B. mit einem Makro machen, dass auf die
Eingabe in Spalte N reagiert.
Allerdingst werden bei Falscheingaben (Datum in falscher
Zeile) die Werte in Spalte I überschrieben, ohne dass die
Möglichkeit besteht dies rückgängig zu machen-zumindest nicht
so ganz einfach.
Das macht nichts!
Sicherer wäre es in Spalte I mit einer bedingten Formatierung
zu arbeiten, die gewonnen markiert - durch Prüfung, ob in
Spalte N etwas eingetragen wurde.
Das habe ich schon probiert (mit bedingten Formatierung kann ich im Gegensatz zu Makros umgehen . Ich brauche aber leider den Texteintrag in Spalte I (u.a. für eine Pivot-Tabelle, die darauf zugreift, aber auch aus Gründen der Eindeutigkeit für de Benutzer).
In Spalte N („Gewinndatum“) können Nutzer ein Datum eingeben
(die Zellen sind sonst leer).
was soll geschehen wenn sie z.B. 31.2.2012 eingeben oder
1,2.12 usw.?
Wenn ein Datum eingegeben wird, soll in der gleichen Zeile in
Spalte I der Wert auf „Gewonnen!“ geändert werden. In Spalte I
steht bereits ein Wert, der einfach überschrieben werden soll.
Was soll geschehen wenn in N die Eingabe gelöscht wird, soll dann
„gewonnen“ durch den alten Wert ersetzt werden?
Ist der alte Text in I überall gleich?
hier ein entsprechendes Makro.
Wird in N etwas eingetragen - muß nicht unbedingt ein Datum sein - dann wird in I der Text „gewonnen“ eingetragen. Wird in N ein Eintrag wieder gelöscht, dann wird auch in I der Zellinhalt gelöscht.
Gruß
Franz
'Code im VBA-Editor unter der Tabelle einfügen in der das Datum eingegeben wird
Private Sub Worksheet\_Change(ByVal Target As Range)
Dim Zelle As Range
If Target.Column = 14 And Target.Columns.Count = 1 And Target.Row \>= 2 Then
Application.EnableEvents = False
For Each Zelle In Target
'für geänderte Zelle(n) in Spalte N in Spalte I Eintrag löschen/"gewonne" eintragen
If IsEmpty(Zelle) Then
Zelle.Offset(0, -5).ClearContents
Else
Zelle.Offset(0, -5) = "gewonnen"
End If
Next
Application.EnableEvents = True
End If
End Sub
Bin ich an der richtigen Stelle, wenn ich mit Rechtsklick auf
das Tabellenblatt „Code anzeigen“ wähle?
Ich muss mich dringend mal mit den Grundzügen von VBA
beschäftigen…
Hallo Ramona,
da bist du schon genau richtig, dadurch kommst du im VB_Editor genau
in das Modul was für dieses Blatt zuständig ist.
Und genau da gehört der Code von Franz hin.