Hallo Sonja,
ich nehme an, dass du den Hyperlink zu dem Tabellenblatt des Produkts jeweils in Spalte A in der Zeile einfügen möchtest, in die Daten des Produktes eingetragen werden.
…D.h. ich habe z.B. Textbox1, TB2 und TB3 im UF in denen ich
die Variablen eintragen kann, aus denen der Name des neuen
Tabellenblattes entsteht und aus denen ich somit auch die
Adresse für den Hyperlink zusammen setzten möchte.
Der Code zum Einfügen des Hyperlinks muss etwa wie folgt aussehen:
Private Sub CommandButton1\_Click()
'Tabelle anlegen, Werte in Liste eintragen, Hyperlink anlegen
Dim Zeile\_N As Long, strTabName As String
Dim wksListe As Worksheet, wksNeu As Worksheet
Set wksListe = ActiveWorkbook.Worksheets("Liste") 'Tabelle mit Produktliste
With Me
strTabName = .TextBox1 & " " & .TB2 & " " & .TB3
End With
'Neues Blatt für Produkt anlegen
With ActiveWorkbook 'Arbeitsmappe in der sich die Produktliste befindet
.Worksheets.Add After:=.Sheets(.Sheets.Count)
Set wksNeu = .Sheets(.Sheets.Count)
End With
'Neues Blatt umbenennen und Daten eintragen
With wksNeu
.Name = strTabName
'nachfolgend Eingaben im neuen Blatt nur zum Testen
.Cells(2, 1).Value = "Produkt"
.Cells(2, 2).Value = "Volumen"
.Cells(2, 3).Value = "Material"
.Cells(3, 1).Value = Me.TextBox1
.Cells(3, 2).Value = Me.TB2
.Cells(3, 3).Value = Me.TB3
End With 'wksNeu
'Daten in Produktliste eintragen
With wksListe
'nächste freie Zeile in Spalte A
Zeile\_N = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(Zeile\_N, 1).Value = Me.TextBox1
.Cells(Zeile\_N, 2).Value = Me.TB2
.Cells(Zeile\_N, 3).Value = Me.TB3
'Hyperlink in Spalte A einfügen
.Hyperlinks.Add Anchor:=.Cells(Zeile\_N, 1), Address:="", \_
SubAddress:="'" & strTabName & "'!A1", \_
ScreenTip:="anzeigen Tabelle """ & strTabName & """"
End With 'wksKiste
Set wksListe = Nothing: Set wksNeu = Nothing
End Sub
Statt per Hyperlink könntest du die die Produkt-Tabellenblätter auch per Doppelklick in die Zellen mit dem Produktnamen anzeigen.
'Code unter dem Tabellenblatt mit der Produktliste
Private Sub Worksheet\_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strName As String
On Error GoTo Fehler
If Target.Column = 1 And Target.Row \> 4 And Target.Value "" Then
'aktivieren des Tabellenblattes zum Produkt
Cancel = True
With Cells(Target.Row, 1)
strName = .Text & " " & .Offset(0, 1).Text & " " & .Offset(0, 2).Text
End With
ActiveWorkbook.Sheets(strName).Activate
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Tabellenblatt """ & strName & """ ist nicht vorhanden!", \_
vbInformation + vbOKOnly, \_
"Tabellenblatt zu Produkt """ & strName & """ anzeigen"
End Select
End With
End Sub
Liebe Grüße
Franz