1.3k Aufrufe
Gefragt in Tabellenkalkulation von tomaetle Einsteiger_in (7 Punkte)
Hallo zusammen,

ich habe ein problem, ich arbeite gerade das erste Mal mit VBA Excel und bin trotz zahlreicher Videos und Foren nicht weiter gekommen. Ich möchte gerne durch Klicken auf eine beliebige Zelle eine Userform öffnen dort etwas hineinschreiben und sie dann speichern. Durch erneutes Klicken auf die selbe Zelle soll die ausgefüllte Userbox geöffnet werden. Kann mir hier bitte jemand weiter helfen. Bisher habe ich nur die Userbox "designed" wenn man das so nennen kann. Durch Ausführen öffnet sie sich auch, aber nicht durch das klicken und speichern tut sie sowieso nichts, dazu finde ich aber auch nichts.

Liebe Grüße

hilfesuchend T.

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

Excel bietet bei einem Worksheet-Ereignis - das du hier brauchst - nur Doppelklick oder Rechtsklick an.

Füge den folgenden Code in das VBA-Projekt des betreffenden Arbeitsblatts ein:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'nicht in Zelle gehen
Cancel = True
'Userform aufrufen
UserForm1.Show
End Sub

Damit wird die Userform bei einem Doppelklick in eine beliebige Zelle gestartet.

Normalerweise speichert man die Werte, die man in die Userform eingibt beim Beenden der Userform. Du hast in deiner Userform einen Button zum Beenden. Wenn du eine Textbox in deiner Userform hast, dann kannst du den eingegebenen Inhalt der Textbox wie folgt in der aktiven Zelle speichern:

Private Sub CommandButton1_Click()

'Inhalt der Textbox in aktive Zelle schreiben
ActiveCell = TextBox1.Value

'Userform schließen
Unload Me

End Sub

Da du ja auch den Text der aktiven Zelle in die Userform haben willst, musst du den folgenden Code ergänzen:

Private Sub UserForm_Initialize()

TextBox1.Value = ActiveCell.Value

End Sub

Der Code für den Command-Button sowie für die Userform-Initialize gehören in das VBA-Projekt der Userform (einfach auf Doppelklick auf Userform).

Gruß

M.O.

0 Punkte
Beantwortet von tomaetle Einsteiger_in (7 Punkte)

 Hallo M.O.

Vielen Dank für die Antwort. das mit dem Doppelklick klappt leider nicht, was könnte ich da falsch machen?

Allgemein hier mal ein scrrenshot von meiner Userform die ich auf jede beliebige Zelle hinterlegen möchte mit individuellen Inhalten. Jede Page hat ein textfeld, was eben individuell ausgefüllt werden soll und gespeichert.

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo,

mögliche Fehlerquellen können sein, dass du den Code für den Doppelklick nicht in das VBA-Projekt des Arbeitsblatts eingefügt hast. Oder vielleicht heißt deine Userform auch anders.

Ansonsten lade mal eine Beispieldatei hoch. Eine Anleitung findes du hier: LINK

Gruß

M.O.

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

es gibt schon ein Ereignis, welches bei einfachem Klick auf eine Zelle eine Aktion auslöst - das Worksheet_SelectionChange-Ereignis. Allerdings hat es den Nachteil, dass man nicht zweimal hintereinander auf dieselbe Zelle klicken kann sondern erst eine andere Zelle anklicken muss, ehe man das Ereignis bei erneutem Klick auf die Ausgangszelle erneut auslösen kann - deshalb ist das Doppelklick-Ereignis die eindeutig bessere Wahl.

Allerdings würde ich zum Füllen des UserForms nicht das Initialize-Ereignis nehmen sondern das Activate-Ereignis, weil dieses bei jedem Aufruf des UserForms ausgeführt wird, das Initialize-Ereignis dagegen nicht - vieleicht ist das ja die Ursache, weshalb es bei dir "nicht klappt", obwohl man nur raten kann WAS nicht klappt...

Bis später, Karin

...