Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Aktive Zelle ansprechen VBA
#1
Guten Abend zusammen,

ich habe folgendes Problem:

ich möchte gerne das sich eine Userform öffnet mit einer Listbox sobald ich eine bestimmte Zelle anklicke.
Das klappt soweit auch schon wie folgt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'abbrechen wenn mehr als eine zelle ausgewählt wurde

If Target.Count > 1 Then Exit Sub

'prüfen ob wir in der richtigen Zelle sind
If Not Intersect(Target, Range("mitarbeiter1")) Is Nothing Then ufmitarbeiter.Show

End Sub

Im nächsten Schritt soll die Zelle die ich angeklickt habe mit dem wert befüllt werden den ich in der Listbox doppelt anklicke und sich dann die Userform schließt.

auch das klappt wie folgt:

Private Sub lbmitarbeiter_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'listbox auslesen und Element in zelle schreiben
Range("mitarbeiter1").Value = lbmitarbeiter.List(lbmitarbeiter.ListIndex)

Unload Me


Das Problem welches ich nun habe ist, dass ich diese Userform in mehren Zellen nutzen will und nicht nur in der einen...alles was ich probiert habe endet damit, dass sich der wert in allen Zellen ändert bei denen sich die Userform aufrufen lässt :D 
Es soll sich aber nur der wert in der ausgewählten Zelle anpassen...

Ich hoffe mir kann hier jemand helfen, wenn benötigt würde ich morgen Abend noch eine Beispiel Datei erstellen.

Liebe Grüße 

Seeqi
Antworten Top
#2
Hallo

die Lösung hast du schon vorgegeben, du musst nur den Code ein wenig ändern:
Activecell.Value = lbmitarbeiter.List(lbmitarbeiter.ListIndex)

mfg Gast 123
Antworten Top
#3
Hallo!

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'abbrechen wenn mehr als eine zelle ausgewählt wurde
If Selection.Count > 1 Then Exit Sub
ufmitarbeiter.Show End Sub
Code:
Private Sub lbmitarbeiter_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'listbox auslesen und Element in zelle schreiben
ActiveCell.Value = lbmitarbeiter.List(lbmitarbeiter.ListIndex)

Unload Me


Die Zeile
Code:
If Not Intersect(Target, Range("mitarbeiter1")) Is Nothing Then ufmitarbeiter.Show
funktioniert dann natürlich nicht mehr.

Wenn du das Ganze auf einen Bereich eingrenzen willst, dann so
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("A1:A10")
If Not Intersect(Target, Bereich) Is Nothing Then
        If Selection.Count = 1 Then ufmitarbeiter.Show
End If
End Sub
Schöne Grüße
Berni
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste