Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Neues Tab über VBA erstellen

Neues Tab über VBA erstellen
10.10.2017 09:02:08
Andi
HAllo,
wie kann ich ein VBA erstellen bzw. wie wäre der Code, der folgendes macht:
Erstelle solange ein neues Tab, wie Zeileneinträge im Tab Übersicht in spalte B vorhanden sind und benenne das Tab so wie in der jeweiligen Zeile vorhanden (bspw. Jan, Feb, Mar)
Beispiel Tab "Jan" ist schon vorhanden.
In dem ersten Tab Soll das Feld B7 (Dropdown) immer eine Auswahl nach unten rutschen (so dass im Tab Feb auch im Fed B7 Feb steht)
Besten Dank und herzliche Grüsse

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Rückfragen
10.10.2017 10:21:25
Robert
Hallo Andi,
da habe ich einige Rückfragen:
1. Es sollen wohl nicht nur die Tabellenblätter erstellt werden, sondern auch die Daten des jeweiligen Monats in das neue Tabellenblatt kopiert werden. Sollen diese Daten dann, wie in dem schon vorhandenen Blatt Jan immer in die Zeilen 6 und 7 kopiert werden?
2. Was meinst Du mit "In dem ersten Tab Soll das Feld B7 (Dropdown) immer eine Auswahl nach unten rutschen"? Ich sehe im ersten Tabellenblatt (Übersicht) kein Dropdown-Feld und wieso soll in diesem Blatt die Zelle B7 nach unten rutschen? Was ist mit dem Rest der Tabelle (Bereich B5:E8) im Blatt Übersicht?
3. Was soll geschehen, wenn das Tabellenblatt, wie in Deiner Datei das Batt Jan, schon existiert? Soll dann nichts geschehen oder soll der Inhalt gelöscht und mit den Daten aus der Tabelle Übersicht neu befüllt werden?
Gruß
Robert
Anzeige
AW: Neues Tab über VBA erstellen
10.10.2017 10:28:49
UweD
Hallo
hier mal ein Code

Sub Blätter()
On Error GoTo Fehler
Dim TB As Worksheet, SP As Integer, i As Integer
Dim LR As Integer, EZ As Integer, NName As String
'*** bescheunigt das Makro
Application.ScreenUpdating = False
'*** Stammdaten Anfang
Set TB = Sheets("Übersicht") 'aus bestimmtem Blatt
SP = 2 'Spalte B
EZ = 5 'Kopfzeile
'*** Stammdaten Ende
LR = TB.Cells(TB.Rows.Count, SP).End(xlUp).Row
For i = EZ + 1 To LR
NName = TB.Cells(i, SP) 'Monatsname
If Not TBVorhanden(NName) Then
'wenn nicht vorhanden dann anlegen..
Sheets.Add(after:=Sheets(Sheets.Count)).Name = NName
With Sheets(NName)
' Zeilen kopieren
TB.Rows(EZ).Copy .Rows(EZ) 'Kopfzeile
TB.Rows(i).Copy .Rows(EZ + 1)
'Datenüberprüfung setzen
With .Cells(EZ, SP)
With .Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & TB.Name & "!" & _
Cells(EZ + 1, SP).Resize(LR - EZ).Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End With
End With
End If
Next
'*** Fehlerbehandlung
Err.Clear
On Error GoTo Fehler
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Function TBVorhanden(ByVal vName As String) As Boolean
Dim sheetSuche As Worksheet
TBVorhanden = False
For Each sheetSuche In Worksheets
If UCase(sheetSuche.Name) = UCase(vName) Then
TBVorhanden = True
Exit Function
End If
Next sheetSuche
End Function

Was evtl. noch angepasst werden muss:
Im Übersichtsblatt steht die Kopfzeile in Reihe 5 und die Daten stehn darunter
Im Monatsblatt dann ab Zeile 6
ich hab jetzt alles auf Zeile 5 gelassen
LG UweD
Anzeige
AW: update
10.10.2017 10:34:14
UweD
da fehlt noch ein +1

'Datenüberprüfung setzen
With .Cells(EZ + 1, SP)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige