Hi Max,
du schreibst "Spalte A soll Überschrift sein" und "Beschriftung der Tabelle soll aus Spalte C sein" - Überschrift und Beschriftung ist dasselbe. Meinst du vielleicht dass der Name der Tabelle aus Spalte C genommen werden soll? Wenn dem so ist, dann sind folgende Bedingungen einzuhalten:
1. der Name darf nicht mit einer Ziffer beginnen
2. der Name darf keine Leerzeichen oder andere nicht zulässige Zeichen enthalten
3. derselbe Name darf nicht bereits für einen anderen Bereich vergeben sein
Ist wenigstens EINE der Bedingungen 1-3 nicht erfüllt, bricht der Code mit einem Laufzeitfehler ab.
4. der Name muss in mindestens einer Zelle der Spalte C für jede der Tabellen-Überschriften aus Spalte A stehen, damit der Name gefunden werden kann, der der betreffenden Tabelle zugewiesen werden soll. Sollte einer Tabelle kein Name in Spalte C zugewiesen sein, dann wird diese Tabelle nicht umbenannt sondern sie behält den Namen, der ihr vorher zugewiesen wurde. Ein Laufzeitfehler tritt in diesem Fall nicht ein.
Dim strStart As String
For lngZaehler = 0 To UBound(arrWerte())
Set rngBereich = Columns(1).Find(arrWerte(lngZaehler), lookat:=xlWhole)
If Not rngBereich Is Nothing Then
strStart = rngBereich.Address
Do
If rngBereich.Offset(0, 2) <> "" Then
ActiveSheet.ListObjects(arrWerte(lngZaehler)).Name = rngBereich.Offset(0, 2).Value
Exit Do
Else
Set rngBereich = Columns(1).FindNext(rngBereich)
End If
Loop While rngBereich.Address <> strStart
End If
Next lngZaehler
Bis später, Karin