Excel vba: zelle mit userform verknüpfen

hallo,

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.

fuer ideen aller art bin ich dankbar.

gruss,

~s

der vollstaendigheit halber: win xp, office 2003

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

Hallo smanky.

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

Viele Grüße
Carsten

Hi smanky,
in ein Modul:

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

Gruß
Reinhard

hallo carsten und reinhard,

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.

gruss,

~stephan