Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
296to300
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
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblätter mittels VBA einfügen

Tabellenblätter mittels VBA einfügen
19.08.2003 14:51:19
Fritz
Hallo Experten,
ich versuche eben, erste Schritte in VBA und bitte um Hilfe bei folgender Problematik:
In einer Liste im Blatt "Daten" sind in der Spalte E von E 1 abwärts Namen erfasst. Die Zahl der Namen kann jedoch varieren, maximal jedoch 8 also möglich bis in Zelle E 8. In Abhängigkeit der Anzahl der in der Spalte eingetragenen Namen möchte ich mittels einer Prozedur die entsprechende Anzahl neuer Tabellenblätter einfügen. Diese sollen mit den jeweiligen Namen bezeichnet werden.
Wer kann mir bei der Lösung behilflich sein?
Vielen Dank für eure Mühen bereits im Voraus.
Fritz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter mittels VBA einfügen
19.08.2003 15:03:23
WernerB.
Hallo Fritz,
mein Vorschlag:

Sub Fritz()
Dim lar As Long, i As Long
Application.ScreenUpdating = False
lar = Sheets("Daten").Cells(Rows.Count, 5).End(xlUp).Row
For i = 1 To lar
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets("Daten").Cells(i, 5)
Next i
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.

AW: Tabellenblätter mittels VBA einfügen
19.08.2003 15:08:41
ChrisL
jetzt hab ichs geschrieben, jetzt post ichs auch :-)
Option Explicit

Sub Blätter_einfügen()
Dim iZeile As Long, LetzteZeile As Long
On Error Resume Next
Application.ScreenUpdating = False
With Sheets("Tabelle1")
LetzteZeile = .Range("E65536").End(xlUp).Row
If LetzteZeile > 8 Then LetzteZeile = 8
For iZeile = 1 To LetzteZeile
If .Cells(iZeile, 5) <> "" Then
Worksheets.Add After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = .Cells(iZeile, 5)
End If
Next iZeile
End With
Application.ScreenUpdating = True
End Sub

Gruss
Chris

Anzeige
Danke Chris
19.08.2003 16:04:58
Fritz
Danke Chris,
aus unterschiedlichen Ansätzen bei der Programmierung kann ich als Anfänger nur lernen!
Gruß Fritz

Danke!
19.08.2003 15:18:51
Fritz
Hallo Werner,
vielen Dank für Deine Hilfe, funktioniert einwandfrei!
Ich habe jetzt noch eine Frage, bei der Du mir sicher auch weiterhelfen kannst. Wie muss die Prozedur abgeändert werden, wenn aus die Namen in der Spalte E nicht ab Zeile 1 (also E1) stehen, sondern ab Zeile 8 (Zelle E8). Wiederum flexible Zahl der Namen, bis maximal 8!
Danke schon im Voraus und viele Grüße

AW: Danke!
19.08.2003 15:23:15
WernerB.
Hallo Fritz,
schreibe statt einer 1 eine 8.
For i = 8 To lar
Gruß WernerB.

Anzeige
Danke Werner - noch eine letzte Frage!
19.08.2003 15:42:28
Fritz
Hallo Werner,
klappt alles hervorragend, ich hoffe Du wirst mir auch eine weitere - ich verspreche zumindest vorerst - Hilfe geben können.
Wie muss ich die Prozedur abändern, wenn ein bereits in der Arbeitsmappe vorhandenes Tabellenblatt mit der Bezeichnung "Blatt 1" entsprechend oft kopiert werden soll. Dabei sollen die kopierten Tabellenblätter die jeweiligen Namen der Spalte E als Blattname erhalten.
Ganz herzlichen Dank im Voraus!

AW: Danke Werner - noch eine letzte Frage!
20.08.2003 08:01:03
WernerB.
Hallo Fritz,
nicht um Dich zu verwirren, sondern damit Du noch etwas mehr Makrotechnik lernen kannst, habe ich auch noch einige modifizierte Sequenzen aus dem Code von ChrisL übernommen.

Sub Fritz()
Dim laR As Long, i As Long
Application.ScreenUpdating = False
With Sheets("Daten")
laR = .Cells(Rows.Count, 5).End(xlUp).Row
If laR > 15 Then laR = 15
For i = 8 To laR
If .Cells(i, 5) <> "" Then
Sheets("Blatt 1").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = .Cells(i, 5)
End If
Next i
End With
Application.ScreenUpdating = True
End Sub

Gruß WernerB.

Anzeige
AW: Danke Werner!
20.08.2003 11:05:06
Fritz
Nochmals vielen Dank! Ich habe einiges dazugelernt.
So nette hilfsbereite Experten wie in diesem Forum - einfach Klasse!

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige