Ich habe mir eine Excelvorlage gebaut die ein Tabellenblatt per VBA-Code Kopiert.
Feldhängerliste (Tabelle1) beinhaltet die ganzen Werte von bestimmten Geräten. (z.Bsp: Name, Nummer, Kaufdatum etc.)
1 (Tabelle2) ist eine "Detailansicht" des Gerätes in der die Werte wie Name, Nummer, Kaufdatum etc. in bestimmten Feldern angezeigt werden. Die Herkunft der Daten ist die "Feldhängerliste (Tabelle1).
Per Tastenkombination von Strg+Crtl+N wird ein VBA-Skript aktiviert (siehe unten), welches 1 (Tabelle2) kopiert und per Inputbox abfragt, wie die neue Tabelle benannt werden soll. Der Wert ist als NewName definiert.
Die neue Tabelle wird 3 genannt. Das Skript speichert den Namen der neuen Tabelle, addiert 10 dazu um dann aus der Feldhängerliste (Tabelle1) die Daten aus der 13ten (3+10) Zeile zu kopieren.
Soweit so gut, das funktioniert auch problemlos.
Hier das Problem:
In der neuen Tabelle (in dem Fall 3) wird in den definierten Feldern zwar die Werte aus der Datenliste angezeigt aber nicht der Pfad. D.h: Wenn ich etwas in der Datenliste ändere, wird es nicht automatisch auch in Tabelle 3 angepasst.
Es sollte eigentlich im entsprechenden Feld der Tabelle 3 stehen: =Feldhängerliste!B" & NewName + 10, denn dann wären die Werte immer auf dem aktuellen Stand.
Es stehen aber lediglich die Werte in der Feld wie z.B. "Gerät1"
Wo liegt der Fehler bzw. wie kann ich ihn beheben?
Vielen Dank für eure Hilfe!!
Skript:
Sub Kopieren_Eingabewerte()
' Kopieren_Eingabewerte Makro
' Kopie des aktuellen Tabellenblattes. Name des Blattes muss eine Ziffer sein.
' Tastenkombination: Strg+Umschalt+N
Dim i As Byte
Dim NewName As Byte ' _
Tabellenblattname (Zahl!)
Sheets("1").Select
Sheets("1").Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
NewName = InputBox("Tabellenblattnamen eingeben")
ActiveSheet.Name = NewName
i = NewName + 1
With Range("A11:B11") 'Datenherkunft
.Formula = "=Federhängerliste!B" & NewName + 10
.Value = .Value
End With
With Range("C11:D11")
.Formula = "=Federhängerliste!E" & NewName + 10
.Value = .Value
End With
With Range("E11:G11")
.Formula = "=Federhängerliste!D" & NewName + 10
.Value = .Value
End With
With Range("H11")
.Formula = "=Federhängerliste!E" & NewName + 10
.Value = .Value
End With
With Range("J11")
.Formula = "=Federhängerliste!I" & NewName + 10
.Value = .Value
End With
With Range("K11:L11")
.Formula = "=Federhängerliste!L" & NewName + 10
.Value = .Value
End With
With Range("K46:L46")
.Formula = "=Federhängerliste!L" & NewName + 10
.Value = .Value
End With
With Range("J46")
.Formula = "=Federhängerliste!K" & NewName + 10
.Value = .Value
End With
With Range("C50:L52")
.Formula = "=Federhängerliste!M" & NewName + 10
.Value = .Value
End With
End Sub