ich frage mich gerade ob es eine moeglichkeit gibt eine beliebige zelle (mit text oder anderem inhalt) mit einer userform zu verknüpfen. habe es gerade über einen hyperlink versucht, war aber nicht erfolgreich.
hintergrund:
ich habe eine kundentabelle, in die ich infos ueber eine userform eintrage. für späterere änderungen haette ich gerne, dass man auf den kundennamen klickt und die userform dann mit den schon vorhandenen daten aufruft.
eine moeglichkeit waere neben jede kundenzeile einen button zu setzen, das erscheint mir aber recht kompliziert.
ich frage mich gerade ob es eine moeglichkeit gibt eine
beliebige zelle (mit text oder anderem inhalt) mit einer
userform zu verknüpfen. habe es gerade über einen hyperlink
versucht, war aber nicht erfolgreich.
ich habe eine kundentabelle, in die ich infos ueber eine
userform eintrage. für späterere änderungen haette ich gerne,
dass man auf den kundennamen klickt und die userform dann mit
den schon vorhandenen daten aufruft.
Hi smanky,
ein Ansatz, ohne die Zelle doppelklicken zu müssen:
Option Explicit
Sub tt()
MsgBox Application.Caller
UserForm1.Show
End Sub
Du legst per Makro über jede Zelle ein Rechteck aus der Zeichnenleiste.
Die Werte für Top,Left usw holst du dir aus den Top,Left usw Werten der Zelle. Das rechteck wird ohne farbe und Linien formatiert und jedem das gleiche Makro tt zugewiesen.
Anhand des Namens des Callers kannst du indirekt ermiteln welcher Kunde angeklickt wurde, dann die Userform entsprechend füllen und .Show.
Gruß
Reinhard
Falls es Dir nichts ausmacht, auf den Namen zu doppelklicken, dann ist dies hier wahrscheinlich eine elegante Lösung:
Private Sub Worksheet\_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Form As New UserForm1
Form.TextBox1.Text = Target.Text
Form.Show
Set Form = Nothing
Cancel = True
End Sub
Einfach in das Code-Fenster des Tabellenblattes mit den Namen reinkopieren und anpassen
Option Explicit
Sub Rechtecke()
Dim zei As Long, r As Object
With ActiveSheet
For zei = 1 To Range("A65536").End(xlUp).Row
Set r = Range("A" & zei)
.Shapes.AddShape(msoShapeRectangle, r.Left, r.Top, r.Width, r.Height).Name = "Zeile" & zei
.Shapes("Zeile" & zei).Select
Selection.OnAction = "tt"
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Line.Visible = msoFalse
Next zei
End With
Range("A1").Select
End Sub
Sub tt()
UserForm1.TextBox1 = Cells(Mid(Application.Caller, 6), 1)
UserForm1.Show
End Sub
vielen dank fuer eure hilfe. ich komme wahrscheinlich erst in den naechsten tagen dazu mich wieder damit zu befassen… melde mich dann nochmal wie’s lief.