Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalt einer Zelle anhand der Angabe inder Zelledavor füllen

Inhalt einer Zelle anhand der Angabe inder Zelledavor füllen
15.12.2023 14:19:24
Simon7777
Ich habe in zwei Spalten nebeneinander Dropdownmenüs bei denen ich in der linken Spalte Namen und in der rechten Spalte Geburtsdaten auswählen kann. Die Daten für dieses Dropdownmenüs kommen von einer daneben stehenden Liste. In dieser Liste stehen in der ersten Spalte Namen und in der rechten Spalte daneben jeweils die Geburtsdaten dazu.
Jetzt möchte ich in der linken Spalte im Dropdownmenü einen Namen auswählen und in der rechten Spalte in dem Dropdownmenü soll automatisch das richtige Geburtstag anhand der anderen Liste ausgewählt werden. Wenn möglich auch umgekehrt, wenn ich in der rechten Spalte in einem Dropdownmenü ein Geburtsdatum ausgewählt wird soll in der linken Spalte automatisch der richtige Name mit ausgewählt werden, ist sowas möglich?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt einer Zelle anhand der Angabe inder Zelledavor füllen
15.12.2023 16:27:19
Yal
Hallo Simon,

ungefähr so:
Private Sub Worksheet_Change(ByVal Target As Range)

'nur reagieren, wenn eine nur eine Zelle geändert wurde
If Target.Cells.Count > 1 Then Exit Sub

Application.EnableEvents = False
Select Case Target.Column
Case 4 'Beispiel: 4=Spalte D
If Target.Value > "" Then Target.Offset(0, 1) = Geburtstag_finden(Name:=Target.Value)
Case 5 'Beispiel: 5=Spalte E
If Target.Value > "" Then Target.Offset(0, -1) = Name_finden(Geburtstag:=Target.Value)
End Select
Application.EnableEvents = True
End Sub

Private Function Geburtstag_finden(Name As String) As Date
Dim Z As Range 'Z wie Zelle
On Error Resume Next
'Suche nach Namen in G2:G100
Set Z = Me.Range("G2:G100").Find(what:=Name, LookAt:=xlWhole)
If Not Z Is Nothing Then Geburtstag_finden = Z.Offset(0, 1).Value
End Function

Private Function Name_finden(Geburtstag As Date) As String
Dim Z As Range 'Z wie Zelle
On Error Resume Next
'Suche nach Geburtstage in H2:H100
Set Z = Me.Range("H2:H100").Find(what:=Name, LookAt:=xlWhole)
If Not Z Is Nothing Then Name_finden = Z.Offset(0, -1).Value
End Function
(nicht getestet)

Der Code muss in der Codepane des Blattes abgelegt werden: auf dem Reiter des Blattes rechtsklicken und "Code anzeigen" auswhählen. Dort den Code copy-pasten.

VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige