Namen der Tabllenblätter durchsuchen
10.05.2017 08:05:50
FishermensFriend
ich habe schon einige Foren durchsucht, bin bisher aber nicht fündig geworden.
Würde mich freuen wenn ihr mir helfen könnt :)
In meiner Datei gibt es ca. 20 Tabellenblätter mit Listen, die alle gleich aufgebaut sind. Mit einem Makro werden die Tabellen jetzt konsolidiert, das klappt auch wunderbar. Die konsolidierten Listen beginnen alle mit "WNV" oder "54.". Die Konsolidierung soll vor die Listen geschrieben werden, also vor das erste Tabellenblatt, das mit "WNV" bzw. "54." beginnt. Da hin und wieder neue WNV-Tabellen hinzukommen, muss das ganze regelmäßig aktualisiert werden.
Folgendermaßen habe ich es ausprobiert, funktioniert aber nicht:
Sub Konsolidierung()
Dim Ws As Worksheet
Dim Existens As Boolean
Dim Bereich As Range
Dim strLC As String
Dim g, i As Integer
'Wenn bereits eine Konsolidierung existiert, Inhalte löschen um aktuelle Version zu erstellen
For g = 1 To Worksheets.Count
If Worksheets(g).Name = "Konsolidierung" Then
Worksheets("Konsolidierung").Cells.Clear
Set Ws = Worksheets("Konsolidierung")
Existenz = True
End If
Next
'Neues Tabellenblatt erstellen, wenn es noch nicht existiert
If Not Existenz Then
Set Ws = Worksheets.Add
Ws.Name = "Konsolidierung"
End If
'Vor die Vorschriften (deren Bezeichnung mit "WNV" oder "54." beginnt)schieben
Ws.Move before:=InStrB(Worksheets, "WNV", "54.")
Ws.Visible = False
For i = 2 To Worksheets.Count
With Worksheets(i).UsedRange
strLC = .Cells(.Rows.Count, .Columns.Count).Address
Set Bereich = .Range("A2:" & strLC)
Bereich.Copy Destination:= _
Ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
Next i
End Sub
Außerdem würde ich gerne die Tabllenblätter (deren Bezeichnung mit "WNV" oder "54." beginnt) mit Klick auf einen Button verstecken lassen. Kann man das ebenfalls mit InStr() lösen?