ich suche eine VBA Lösung für Excel 2007 um ein vorgefertigtes Tabellenblatt (nennen wir es BASIS) auf Grund von Eingaben (können mehrere sein, bis zu 20) im Tabellenblatt „Allgemeine Daten“ automatisch angelegt wird, mit dem Layout des BASIS Tabellenblatts. Bei 20 Eingaben sollen somit automatisch die Tabellenblätter mit dem Eingabenamen im Tabellenreiter unten erstellt werden.
ich suche eine VBA Lösung für Excel 2007 um ein vorgefertigtes
Tabellenblatt (nennen wir es BASIS) auf Grund von Eingaben
(können mehrere sein, bis zu 20) im Tabellenblatt „Allgemeine
Daten“ automatisch angelegt wird, mit dem Layout des BASIS
Tabellenblatts. Bei 20 Eingaben sollen somit automatisch die
Tabellenblätter mit dem Eingabenamen im Tabellenreiter unten
erstellt werden.
Hallo Rossi,
mit A2:A21 legst du fest welche Zellen „überwacht“ werden.
in das Modul vom Blatt „Allgemeine Daten“
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range(" **A2:A21**"))
If Target Is Nothing Then Exit Sub
Call Erstelle(Target)
End Sub
in ein Standardmodul, Modul1 o.ä
Option Explicit
Sub Erstelle(ByRef Target As Range)
Dim Zelle As Range
On Error GoTo hell
For Each Zelle In Target
If Zelle.Value "" Then
If Not Vorhanden(Zelle.Value) = True Then
Worksheets("Basis").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Zelle.Value
End If
End If
Next Zelle
Worksheets("Allgemeine Daten").Activate
hell:
If Err.Number 0 Then
MsgBox Err.Number & vbCrLf & Err.Description
Resume Next
End If
End Sub
Function Vorhanden(strWert As String) As Boolean
Dim wks As Worksheet
For Each wks In Worksheets
If wks.Name = strWert Then
Vorhanden = True
Exit For
End If
Next wks
End Function
Vielen Dank für deine Unterstützung. War leider krank und konnte erst Heute Deine VBA in Einsatz bringen. Hat alles super funktioniert. Wie das so ist, tauchen im Einsatz weitere Dinge auf, die man zu Anfangs nicht bedacht hat. Vielleicht kannst Du mir da nochmal helfen.
Im Tabellenblatt werden die Tabellennamen die bei Bestätigen der Eingabe automatisch erstellt werden, in eine Tabelle geschrieben, um diese immer um die benötigeten Zeilen zu erweitern.
Kann man die Überwachung der Zellen auch automatisch um diese Zeile erweitern ? Momentan ist der Bereich fixiert von A2:A21.
Des weiteren sollte die VBA den Tabellennamen der kopierten Basistabelle automatisch ändern, wenn man diese in dem überwachten Bereich auch ändert, ohne das ein neues Tabellenblatt angelegt wird.
In diesem Zusammenhang sollte dann auch beim löschen des Namens im überwachten Bereich das zugehörige Tabellenblatt gelöscht werden.
Im neu angelegten Tabellenblatt soll in Zelle A2 den Namen anzeigen, der die Kopierung in dem überwachten Bereich ausgelöst hat.
Sind diese Punkte möglich in die VBA zu integrieren ? Leider bin ich „noch“ Laie auf dem Gebiet der VBA. Arbeite zur Zeit ein Buch für Einsteiger durch um selbst bei der VBA den Durchblick zu erhalten.
Wäre echt super wenn Du mir nochmal zur Seite stehen würdest.