Anzeige
Archiv - Navigation
1904to1908
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

Runtime 91 Error .... warum?

Runtime 91 Error .... warum?
04.11.2022 10:55:40
Thomas
Hallo, ich habe folgendes Problem. Ich verwende folgenden Code um aus verschiedenen Tabellen über einen Advanced Filter eine neue Tabelle zu erstellen. Auf meinem Testsheet, welches ich dank der Hilfe eines "Ralfs" hier hinbekommen habe hat auch alles wunderbar geklappt. Nun habe ich es in mein tatsächliches File übertragen und bekommen ständig einen Runtime "91" Error. Es wird mir im Debug der markierte Bereich mit dem Fehler "oLst.AutoFilter.FilterMode= Object variable or With block variable not set". Wie gesagt, ich habe einzig die Sheetnamen angepasst, sonst nichts. Danke schonmal für eure Hilfe

Private Sub Worksheet_Activate()
Dim oLst As ListObject
Dim lrow As Long
Sheets("Output").Cells.Clear
lrow = 1
With Sheets("Input")
For Each oLst In .ListObjects
oLst.Range.AutoFilter
lrow = Sheets("Output").Cells(Sheets("Output").Rows.Count, 1).End(xlUp).Row
lrow = IIf(lrow = 1, 0, lrow) 'ist notwendig für die CopytoRange
If oLst.AutoFilter.FilterMode = True Then Sheets("Input").ShowAllData
oLst.Range.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Search").Range("A1").CurrentRegion, _
CopytoRange:=Sheets("Output").Range("A" & lrow + 1), _
Unique:=False
If lrow > 0 Then Sheets("Output").Rows(lrow + 1).Delete 'ab der 2ten Tab Spaltenzeitle löschen
Next
End With
With Sheets("Output")
.Range("A1").CurrentRegion.Offset(, 6).ClearContents 'Achtung offset 6, geht bis Spalte F
.ListObjects.Add(xlSrcRange, .Range("A1").CurrentRegion, , xlYes).Name = "Test_Table"
End With

End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Runtime 91 Error .... warum?
04.11.2022 10:59:55
Thomas
Sorry falschen Code!!! Aber der oben funktioniert der hier nicht

Private Sub Worksheet_Activate()
Dim oLst As ListObject
Dim lrow As Long
Sheets("Opportunity One Pager").Cells.Clear
lrow = 1
With Sheets("abc Dashboard Charts")
For Each oLst In .ListObjects
oLst.Range.AutoFilter
lrow = Sheets("Opportunity One Pager").Cells(Sheets("Opportunity One Pager").Rows.Count, 1).End(xlUp).Row
lrow = IIf(lrow = 1, 0, lrow)
If oLst.AutoFilter.FilterMode = True Then Sheets("abc Dashboard Charts").ShowAllData
oLst.Range.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Update_Info").Range("A1").CurrentRegion, _
CopytoRange:=Sheets("Opportunity One Pager").Range("A" & lrow + 1), _
Unique:=False
If lrow > 0 Then Sheets("Opportunity One Pager").Rows(lrow + 1).Delete
Next
End With
With Sheets("Opportunity One Pager")
.Range("A1").CurrentRegion.Offset(, 6).ClearContents
.ListObjects.Add(xlSrcRange, .Range("A1").CurrentRegion, , xlYes).Name = "Overview_Opp"
End With
End Sub
Anzeige
AW: Runtime 91 Error .... warum?
04.11.2022 12:54:11
Nepumuk
Hallo Thomas,
teste mal:

If oLst.AutoFilter.FilterMode Then oLst.AutoFilter.ShowAllData
Gruß
Nepumuk
AW: Runtime 91 Error .... warum?
04.11.2022 16:27:01
Thomas
Geht nicht, immernoch das gleiche
eines Ralf's ?
05.11.2022 13:00:07
ralf_b
Schauan hat in deinem Post in clever-excel-forum schon was interessantes geschrieben.
Nachdem du aber hier eines Ralf's so schön hervorstellst, muß du schon genauer werden. Es gibt in den Foren mehrere Ralfs.
Versuchs mal damit. Wenns nicht funktioniert indeiner Originaldatei, dann solltest du eine bessere Beispieldatei bauen.
und hör auf unter verschiedenen Namen zu posten. Chris?!

With Sheets("Input")
For Each oLst In .ListObjects
If oLst.AutoFilter Is Nothing Then
oLst.Range.AutoFilter
End If
If oLst.AutoFilter.FilterMode = True Then oLst.AutoFilter.ShowAllData
lrow = Sheets("Output").Cells(Sheets("Output").Rows.Count, 1).End(xlUp).Row  ' letzte Zeile für Einfügen in Output.
lrow = IIf(lrow = 1, 0, lrow)  'ist notwendig für  die CopytoRange
oLst.Range.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Search").Range("A1").CurrentRegion, _
CopytoRange:=Sheets("Output").Range("A" & lrow + 1), _
Unique:=False
'nach dem advanced filter wird der Autofilter abgeschaltet
'deshalb hier wieder aufrufen
oLst.Range.AutoFilter
If lrow > 0 Then Sheets("Output").Rows(lrow + 1).Delete  'ab der 2ten Tab Spaltenzeitle löschen
Next
End With

Anzeige

220 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige