Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Laufzeitfehler 91 nach Tabellen Kopie

Laufzeitfehler 91 nach Tabellen Kopie
10.04.2018 16:09:18
Jens
Folgendes Makro, löscht vorhandene Autofilter und sortiert danach die Spalten nach Nachnamen:
Sub nachname()
' nachname Makro
ActiveSheet.Range("$A$3:$AJ$99").AutoFilter Field:=1
ActiveWorkbook.Worksheets("Tabelle1 ").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1 ").AutoFilter.Sort.SortFields.Add Key:= _
Range("A3:A99"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1 ").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.AutoFilter
End Sub
Wenn ich nun die Tabelle kopiere, erhalte ich leider einen Laufzeitfehler 91:
Objektvariable oder With-Blockvariable nicht festgelegt.
Der Debugger verweist zunächst auf folgende Zeile:
ActiveWorkbook.Worksheets("Tabelle1 ").AutoFilter.Sort.SortFields.Clear
Was kann ich tun, das auch nach mehrfachen kopieren, ich brauche die Tabellen für Jan - Dez das Makro funktioniert?
Vielen Dank liebe Leute!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 91 nach Tabellen Kopie
10.04.2018 16:41:20
fcs
Hallo Jens,
da bei jedem Blatt der Blattname anders ist muss man das Makro etwas allgemeiner fassen.
Mit folgenden Anpassungen wird immer das aktive Blatt sortiert und die letzte benutzte Zeile dynamisch angepasst.
Gruß
Franz
Sub nachname()
' nachname Makro
Dim wks As Worksheet, Zeile_L As Long
Set wks = ActiveSheet
With wks
'    Zeile_L = .UsedRange.Row + .UsedRange.Rows.Count - 1 'letzte benutzte Zeile im Blatt
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row 'Letzte Zeile mit Inhalt in Spalte A
If Zeile_L > 4 Then
If .AutoFilterMode = True Then .AutoFilterMode = False
.Range("$A$3:$AJ$" & Zeile_L).AutoFilter Field:=1
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:= _
.Range("A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
.AutoFilterMode = False
End If
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige