Hallo zusammen,
hoffe mir kann jemand helfen. Ich sollte ein Makro schreiben, das folgende Funktionen unterstützt.
Tabellenblatt einfügen
Code:
Sub BlattEinfuegen()
Set NewSheet = Sheets.Add(before:=Sheets(„Template“))
Sheets(„Template“).Select
Cells.Select
Selection.Copy
NewSheet.Select
Range(„A1“).Select
ActiveSheet.Paste
ActiveSheet.Name = Sheets.Count - 2
Range(„A1“).Select
End Sub
Zur Information es sind 2 vordefinierte Tabellenblätter eingefügt (Übersicht u. Template). Die Styles, Formeln und alles weitere für das Einfügen eines Blattes kommen aus dem Tabellenblatt „Template“. „Template“ steht an letzter Stelle und „Übersicht“ an erster Stelle. Die neuen Blätter werden zwischen den vordefinierten Tabellenblättern eingefügt.
Tabellenblatt löschen
Code:
Sub BlattLoeschen()
Sheets(Sheets(„Template“).Index - 1).Delete
End Sub
Zur Information Tabellenblatt löschen -> Tabellenblatt das sich vor „Template“ befindet wird gelöscht.
Blatt einfügen und löschen funktioniert, gibt keine Probleme und läuft einwandfrei.
Jedoch zu meinem Problem:
Ich will nun zur Laufzeit der Funktion Blatt einfügen die Bezüge zu dem neu erstelltem Blatt herstellen, d.h. wenn ein Blatt eingefügt wird, wird ein Bezug von „1“ auf „Übersicht“ erstellt. Jedoch habe ich keine Ahnung, wie das funktionieren soll.
Weiters soll natürlich der Bezug, wenn ein Blatt gelöscht wird, auch wieder gelöscht werden.
Hoffe jemand kann mir weiterhelfen, denn ich hab echt keine Ahnung, wie das gehen soll.
Gruß,
Sebastian
Zur Information es sind 2 vordefinierte Tabellenblätter
eingefügt (Übersicht u. Template). Die Styles, Formeln und
alles weitere für das Einfügen eines Blattes kommen aus dem
Tabellenblatt „Template“. „Template“ steht an letzter Stelle
und „Übersicht“ an erster Stelle. Die neuen Blätter werden
zwischen den vordefinierten Tabellenblättern eingefügt.
Zur Information Tabellenblatt löschen -> Tabellenblatt das
sich vor „Template“ befindet wird gelöscht.
Ich will nun zur Laufzeit der Funktion Blatt einfügen die
Bezüge zu dem neu erstelltem Blatt herstellen, d.h. wenn ein
Blatt eingefügt wird, wird ein Bezug von „1“ auf „Übersicht“
erstellt. Jedoch habe ich keine Ahnung, wie das funktionieren
soll.
Weiters soll natürlich der Bezug, wenn ein Blatt gelöscht
wird, auch wieder gelöscht werden.
Hi Sebatian,
Sub BlattEinfuegen()
Worksheets.Add(before:=Sheets(„Template“)).Name = Sheets.Count - 1
Sheets(„Template“).Cells.Copy Destination:=Range(„A1“)
Sheets(„Übersicht“).Range(„A1“).FormulaLocal = „=“ & Sheets.Count - 2 & „!D5“
Range(„A1“).Select
End Sub
Sub BlattLoeschen()
Application.DisplayAlerts = False
Sheets(Sheets(„Template“).Index - 1).Delete
Sheets(„Übersicht“).Range(„A1“) = „“
Application.DisplayAlerts = True
End Sub
Gruß
Reinhard
Hallo Reinhard,
vielen Dank für dein Bemühen. Du hast mich ein Stück weiter gebracht und ich bin echt froh.
Jedoch fehlt mir noch etwas:
Habe den Code jetzt umgeändert, dass ich 3 Zellenbezüge übernehme, wie auch dann später lösche.
Code:
Sub BlattEinfuegen()
Worksheets.Add(before:=Sheets(„Template“)).Name = Sheets.Count - 1
Sheets(„Template“).Cells.Copy Destination:=Range(„A1“)
Sheets(„Übersicht“).Range(„B14“).FormulaLocal = „=“ & Sheets.Count - 2 & „!E69“
Sheets(„Übersicht“).Range(„C14“).FormulaLocal = „=“ & Sheets.Count - 2 & „!F69“
Sheets(„Übersicht“).Range(„D14“).FormulaLocal = „=“ & Sheets.Count - 2 & „!B2“
Sheets(„Übersicht“).Select
End Sub
Sub BlattLoeschen()
Application.DisplayAlerts = False
Sheets(Sheets(„Template“).Index - 1).Delete
Sheets(„Übersicht“).Range(„B14“) = „“
Sheets(„Übersicht“).Range(„C14“) = „“
Sheets(„Übersicht“).Range(„D14“) = „“
Application.DisplayAlerts = True
End Sub
Jedoch möchte ich nun, dass die „Range(„B14“)“ bei Einfuegen / Loeschen sich erhöht und zwar B15, B16, … Kann ich bei „Range(zaehler1)“ einen Zähler miteinbinden?
Vielen Dank…
Gruß,
Sebastian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Jedoch möchte ich nun, dass die „Range(„B14“)“ bei Einfuegen /
Loeschen sich erhöht und zwar B15, B16, … Kann ich bei
„Range(zaehler1)“ einen Zähler miteinbinden?
Hi Sebastian,
Option Explicit
Sub BlattEinfuegen()
Dim Zei As Long
Worksheets.Add(before:=Sheets("Template")).Name = Sheets.Count - 1
Sheets("Template").Cells.Copy Destination:=Range("A1")
With Sheets("Übersicht")
Zei = .Range("B65536").End(xlUp).Row + 1
If Zei Gruß
Reinhard
Hallo Reinhard,
du bist super, und hast auf anhieb verstanden, was ich brauche, vielen vielen vielen dank!
Bin nun fertig und alles klappt einwandfrei…
Danke nochmals!
Gruß,
Sebastian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]