VBA Zellverknüpfung mit neuem Arbeitsblatt
#1
Hallo miteinander

Ich habe folgendes Problem:
In einer Pendenzenliste habe ich ein Arbeitsblatt namens "Muster", welches via Button auf einer Übersichtsseite kopiert werden kann und direkt in einem Eingabefenster umbenennt werden kann.
Wie bekomme ich es hin, damit nun Zellen vom neu erstellten Arbeitsblatt direkt verknüpft werden auf mein Übersichtsblatt?
Ich bekomme dies einfach nicht hin, da ich nicht weiß, wie ich das neue Arbeitsblatt im Code ansteuern kann, da es ja erst durch den Code einen Namen erhält.

Ebenfalls zur Kopie erstellt mein Code eine neue Zeile in der Übersichtsliste.
Der Code fürs Kopieren sieht folgendermaßen aus:


Code:
Sub Tabellenblatt_und_Zeile_einfügen()

' Reihe einfügen
   Rows("13:13").Select
   Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
   
' Kopie von Muster erstellen
 Dim wks As Worksheet
 Dim strNam As String
 strNam = InputBox("Name?", "Eingabe", "Inhalt")
 If strNam = "" Then Exit Sub
 On Error Resume Next
 Set wks = Worksheets(strNam)
 If Err.Number <> 0 Then
   Worksheets("Muster").Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = strNam
 Else
   MsgBox ("Name existiert bereist")
 End If

' Zellverknüpfung

   Sheets("Übersicht").Select
   Range("A13").Select
   ActiveCell.FormulaR1C1 = "='1001 Test'!R[-11]C[1]"
   Range("B13").Select
   ActiveCell.FormulaR1C1 = "='1001 Test'!R[-11]C[1]"
   
 
End Sub

Den bisherigen Code habe ich mir "zusammenkopiert" aus Codes, die ich in Foren fand, da meine VBA Kentnisse schlecht bis nicht vorhanden sind.

Kann mir jemand von euch helfen? Bei den Zellverknüpfungen müsste anstelle von "='1001 Test'!R[-11]C[1]" das neu erstellte Arbeitsblatt angesteuert werden.

Danke vielmals und liebe Grüsse
Top
#2
Hallo Daniel,

du musst in deinem Code den Teil

ActiveCell.FormulaR1C1 = "='1001 Test'!R[-11]C[1]"

mit deiner Variablen "strNam" ersetzen. Da der Tei zu einem String gehört (alles zwischen den beiden Anführungszeichen), must du diesen String zerteilen und wieder zusammenführen. Das geschieht duch folgende Anweisung:

ActiveCell.FormulaR1C1 = "='" & strNam & "'!R[-11]C[1]"

Nun kannst du die einzelnen Select-Anweisungen noch weglassen und die Formel direkt zuordnen, so dass die letzten Zeilen deiner Routine lauten:

Code:
Sheets("Übersicht").Select
Range("A13").FormulaR1C1 = "='" & strNam & "'!R[-11]C[1]"
Range("B13").FormulaR1C1 = "='" & strNam & "'!R[-11]C[1]"

Falls du Programmieren lernen möchtest, dann such dir Tutorials zum Einstieg, die damit beginnen, wie ein Programm aufgebaut und übersichtlich gestaltet wird.

Viel Erfolg.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top


Gehe zu:


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