Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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]
Antworten Top


Gehe zu:


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