Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA neue Tabs erstellen benennen

VBA neue Tabs erstellen benennen
05.05.2023 14:15:55
Björn

Hallo halli,

Ich möchte aus einer Liste neue Tabs erzeugen und benennen. Es scheitert gerade an dem Auslesen des Namens ab dem zweiten Listeneintrag.


Sub LKZ_Vorlage()
Dim wsVorlage_LKZ As Worksheet
Dim wsTop30 As Worksheet
Dim Lieferer As String
Dim i As Integer
Dim n As Long

Set wsVorlage_LKZ = Sheets("LKZ-Vorlage")
Set wsTop30 = Sheets("Tabelle1")

ActiveSheet.Range("C8:C11").Select
n = ActiveCell.Row

For i = 1 To n
Lieferer = wsTop30.Cells(n, 3).Text
wsVorlage_LKZ.Copy after:=wsVorlage_LKZ

ActiveSheet.Name = Lieferer
n = n + 1

Next i


End Sub


https://www.herber.de/bbs/user/159063.xlsm

Vielen Dank

Björn

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA neue Tabs erstellen benennen
05.05.2023 14:34:09
Heli
Hi,

in Deinem Code widersprichst Du Dir leider mehrfach - Der Bereich mit den Bezeichnungen ist C8:C11 - mit Deinem Zähler n startest Du dann aber bei 1 usw.

Teste mal diesen Code:
Sub LKZ_Vorlage()
Dim wsVorlage_LKZ As Worksheet
Dim wsTop30 As Worksheet
Dim Lieferer As String
Dim i As Integer

Set wsVorlage_LKZ = Sheets("LKZ-Vorlage")
Set wsTop30 = Sheets("Tabelle1")

For i = 8 To 11
    Lieferer = wsTop30.Cells(n, 3).Text
    wsVorlage_LKZ.Copy after:=wsVorlage_LKZ

    ActiveSheet.Name = Lieferer
Next i

End Sub
Wenn das flexibel sein soll musst Du die erste Zeile in eine Variable schreiben und danach dann auf die korrekte Zeile referenzieren sowas wie

n = ActiveCell.row (sofern Du in der gerade aktiven Zelle starten willst)

Und dann For i = n to 11 (oder eben auch noch das Ende ermitteln und in eine Variable schreiben)

VG, Heli


Anzeige
AW: VBA neue Tabs erstellen benennen
05.05.2023 14:38:15
onur
For i = 8 To 11
Lieferer = wsTop30.Cells(n, 3).Text
mact 4x das Selbe !
Wozu wir das i gebraucht, wenn du in der Schleife n benutzt ?


AW: VBA neue Tabs erstellen benennen
05.05.2023 14:42:38
Heli
Oh man, wird Zeit für's Wochenende...

Ja die Schleifen des Fragestellers passen irgendwie nicht, hab nicht genau genug geschaut...

Ohne den Sinn zu hinterfragen könnte man das Quick & Dirty so machen
Sub LKZ_Vorlage()
Dim wsVorlage_LKZ As Worksheet
Dim wsTop30 As Worksheet
Dim Lieferer As String
Dim i As Integer

Set wsVorlage_LKZ = Sheets("LKZ-Vorlage")
Set wsTop30 = Sheets("Tabelle1")

For i = 8 To 11
    Lieferer = wsTop30.Cells(i, 3).Text
    wsVorlage_LKZ.Copy after:=wsVorlage_LKZ

    ActiveSheet.Name = Lieferer
Next i

End Sub
Ungetestet!

VG, Heli


Anzeige
AW: VBA neue Tabs erstellen benennen
05.05.2023 14:44:42
onur
"den Sinn zu hinterfragen" ist ein ganz anderes Thema.... :))


AW: VBA neue Tabs erstellen benennen
05.05.2023 15:29:39
Björn
Vielen Dank für eure Hilfe. Das ganze ist natürlich nur proof of Concept, die richtige Liste hat knapp hundert Einträge und die Tabs werden dann befüllt.


Anzeige
AW: VBA neue Tabs erstellen benennen
05.05.2023 14:35:37
onur
Was ist das für eine seltsame Schleife?
For i = 1 To n
und
n = n + 1
????


AW: VBA neue Tabs erstellen benennen
05.05.2023 14:40:06
Yal
Hallo Björn,

versuche folgendes

Sub LKZ_Vorlage()
Dim Z As Range

    For Each Z In Sheets("Tabelle1").Range("C8:C11")
        Worksheets("LKZ-Vorlage").Copy After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = Z.Value
    Next
End Sub
VG
Yal


Anzeige
AW: VBA neue Tabs erstellen benennen
05.05.2023 14:40:37
Pappawinni
Du erhöhst mit jedem Durchlauf der Schleife n,
Das wird doch Endlos

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige