Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1488to1492
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

Makro zur Blatt Erstellung

Makro zur Blatt Erstellung
02.05.2016 14:18:11
Bela
Hallo,
Ich versuche mittels Makro eine Excel Liste zu durchsuchen und dann mit bestimmten Werten neue Blätter zu erstellen. Dabei soll eine Spalte durchgegangen werden und für jeden nicht vorher schon vorhandenen Eintrag ein Blatt erstellt werden. Das erstellte Blatt soll als Namen den Spalteneintrag haben.
Das Erstellen funktioniert zwar aber abgesehen von den Blättern die erstellt werden sollen, erstellt mir das Makro noch weitere Blätter die einfach Tabelle1-x heißen.
Sub Makro1()
Dim wsNew As Worksheet
Dim arrayInhalt(10) As Variant
' Speichert CarNo
Erase arrayInhalt
For i = 0 To 9
If IsError(Application.Match(Cells(i + 3, 7), arrayInhalt, 0)) Then
arrayInhalt(i) = Cells(i + 3, 7).Value
Else
End If
Next i
'erstellt neues Blatt
For i = 0 To UBound(arrayInhalt)
Set wsNew = Worksheets.Add
If arrayInhalt(i)  Leer Then
With wsNew
.Name = arrayInhalt(i)
.Move after:=Sheets(Sheets.Count)
End With
Set wsNew = Nothing
End If
Next i
End Sub
Kann mir jemand sagen weshalb diese zusätzlichen Blätter erstellt werden?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zur Blatt Erstellung
02.05.2016 14:22:58
selli
hallo bela,
Kann mir jemand sagen weshalb diese zusätzlichen Blätter erstellt werden?
weil die abfrage des arraywerts nach "Leer" nicht funktioniert, weil "Leer" nicht definiert ist.
soll heissen: jeder wert im array ist Leer, somit werden auch genau 10 blätter eingefügt.
gruß
selli

AW: Makro zur Blatt Erstellung
02.05.2016 14:45:10
Rudi
Hallo,
Sub Makro1()
Dim wsNew As Worksheet
Dim arrayInhalt(10) As Variant
Dim i As Integer, n As Integer
For i = 0 To 9
If IsError(Application.Match(Cells(i + 3, 7), arrayInhalt, 0)) Then
arrayInhalt(n) = Cells(i + 3, 7).Value
n = n + 1
End If
Next i
For i = 0 To n - 1
Set wsNew = Worksheets.Add
With wsNew
.Name = arrayInhalt(i)
.Move after:=Sheets(Sheets.Count)
End With
Set wsNew = Nothing
Next i
End Sub

Gruß
Rudi

Anzeige
AW: Makro zur Blatt Erstellung
02.05.2016 14:55:14
ChrisL
Hi
Hier noch eine Lösung (mit ReDim Preserve). Ob in diesem Fall ein Array Sinn macht, ist eine andere Frage.
Sub Makro1()
Dim wsNew As Worksheet, WS As Worksheet
Dim i As Integer
ReDim arrayInhalt(0) As Variant
Set WS = ActiveSheet
With WS
For i = 0 To 9
If IsError(Application.Match(.Cells(i + 3, 7), arrayInhalt, 0)) Then
ReDim Preserve arrayInhalt(UBound(arrayInhalt) + 1)
arrayInhalt(UBound(arrayInhalt)) = .Cells(i + 3, 7).Value
End If
Next i
For i = 1 To UBound(arrayInhalt)
Set wsNew = Worksheets.Add
With wsNew
.Name = arrayInhalt(i)
.Move after:=Sheets(Sheets.Count)
End With
Set wsNew = Nothing
Next i
End With
End Sub

cu
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige