Hi,
1. würde ich dir empfehlen, ganz zu oberst die folgende Codezeile zu ergänzen:
Option Explicit
Dann wird dir nämlich angezeigt, dass in der Zeile
Sheets(varibale).UsedRange.AutoFilter
der Ausdruck in der Klammer falsch geschrieben ist. Und falls du im VBA-Editor unter Extras -> Optionen -> "Variablendeklaration erforderlich" noch nicht aktiviert hast, würde ich das auf jeden Fall machen - dann wird in jedem (neu erstellten) Modul automatisch zu oberst die Codezeile "Option Excplicit" ergänzt, was dir bei der Kontrolle der Variablen-Schreibweise unheimlich behilflich ist.
2. kannst du in deinem Code auch ganz einfach in einer Schleife prüfen, ob das betreffende Tabellenblatt vorhanden ist:
Sub kopieren()
Dim variable As String
Dim wksTab As Worksheet
Dim blnVorhanden As Boolean
variable = [A1]
For Each wksTab In Worksheets
If wksTab.Name = variable Then
blnVorhanden = True
Exit For
End If
Next wksTab
If blnVorhanden Then
With Sheets(variable).UsedRange
.AutoFilter Field:=7, Criterial:="gleich"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets(variable).UsedRange.AutoFilter
Else
MsgBox "Tabelle " & variable & " nicht vorhanden"
End If
End Sub
Bis später, Karin