4.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo liebe Experten - folgendes Problem quält mich:
Ich habe eine Dienstplantabelle erstellt mit Listenfeldern, in denen sich Uhrzeiten befinden.
Zum Beispiel: Zelle A1 wird über das Listenfeld ( Arbeitszeit von ) bedient und Zelle A2 über das Listenfeld ( Arbeitszeit bis ).
Also zB. A1 06:00 A2 15:00
Ich möchte jetzt folgendens erreichen:
Das Listenfeld für Zelle A2 soll erst bedient werden können, wenn in Zelle A1 bereits eine Uhrzeit ausgewählt wurde bzw wenn die Uhrzeit in A1 wieder gelöscht wird, soll in A2 auch nichts mehr stehen.
Also soll sich das Listenfeld der Zelle A2 in Abhängigkeit der Zelle A1 befinden.
Ich hoffe, es hat jemand einen Rat für mich.
Dank für Eure Mühe
Gruß kurt`l

13 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

wie gewuenscht

vorraussetzung reiter der fehlermeldung nicht setzen

gruss nighty

einzufuegen
alt+f11/projektexplorer/DeineTabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 And Target.Row = 1 Then
If Cells(Target.Row, Target.Column) <> "" Then Range("B1").Validation.InCellDropdown = True
If Cells(Target.Row, Target.Column) = "" Then
Range("B1").Validation.InCellDropdown = False
Range("B1") = ""
End If
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von
Hallo nighty,
Dein Makro funktioniert wie gewünscht !!! Danke super! Jetzt muß ich das nur noch eine meine Tabelle anpassen, denn die Zellen A und B1 waren ja nur als Beispiel genannt, aber ich denke, den Rest bekomme ich allein hin.
Auch Helmut noch einmal Dank für seine Mühe.

Grüße kurtl
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi kurt ^^

dann noch ein paar kommentare :-)

gruss nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'ereignisausschaltung
If Target.Column = 1 And Target.Row = 1 Then 'abfrage auf spalte a bzw 1,und,abfrage auf zeile 1 bzw 1
If Cells(Target.Row, Target.Column) <> "" Then Range("B1").Validation.InCellDropdown = True 'wenn a1 gefuellt ist,wird das listenfeld in b1 aktiviert
If Cells(Target.Row, Target.Column) = "" Then 'abfrage auf a1 ob ungefuellt ist
Range("B1").Validation.InCellDropdown = False 'wenn a1 ungefuellt ist wird b1 listenfeld deaktiviert
Range("B1") = "" 'wenn a1 ungefuellt ist wird b1 geloescht
End If
End If
Application.EnableEvents = True 'ereigniseinschaltung
End Sub

'bei der listenfelderstellung ist unter fehlermeldung,fehleranzeige auszuschalten,da ansonsten nur listenfeldeintraege erlaubt waeren
...