Laufzeitfehler 91 ohne Deklarationen
#1
Hallo liebes Clever Forum,

bei dem unteren Code sollen zwei Sheets in eine neue Tabelle eingefügt werden. Der Code lief immer einwandfrei bis ich den Ordner der Sheets aus Versehen umbenannt, und wieder zurück benannt habe.
Ich sehe hier keinen Pfad, den ich überprüfen könnte, auch habe ich den Code nicht selber geschrieben. Er ist genauso, ohne Deklarationen, als Makro hinterlegt :(

Bei der Ausführung tritt "Laufzeitfehler 91: Objektblockvariable oder With-Blockvariable nicht festgelegt" auf.

Ich danke für jede Mithilfe!
Code:
Range("A1").Select
   Selection.AutoFilter
   ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Add(Range( _
       "B1:B146"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
       = RGB(255, 255, 0)
   With ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
Top
#2
Hallo,

welche Zeile wird bei der Fehlermeldung markiert?
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • SiriKlaus
Top
#3
(19.02.2018, 09:40)SiriKlaus schrieb: bei dem unteren Code sollen zwei Sheets in eine neue Tabelle eingefügt werden.
Moin!
Sicherlich nicht!
Dein Code setzt einen Autofilter und sortiert innerhalb dessen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • SiriKlaus
Top
#4
Danke für die Hinweise! Mir ist ein Fehler unterlaufen, der Laufzeitfehler lautet 9 "Index außerhalb gültigen Bereichs" in folgender Zeile:

ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Clear

Code:
Sub data()
'
    Range("A1").Select
   Selection.AutoFilter
    ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Add(Range( _
       "B1:B146"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _
       = RGB(255, 255, 0)
   With ActiveWorkbook.Worksheets("Combined").AutoFilter.Sort
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
Top
#5
Hi,

dann gibt es vermutlich das Arbeitsblatt "Combined" nicht mehr im aktiven Workbook.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • SiriKlaus
Top
#6
Du hast kein Blatt mit dem Namen Combined
Meist wird sowas durch ein Leerzeichen am Ende verursacht.
Mein Hinweis in der letzten Nachricht bleibt natürlich bestehen.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • SiriKlaus
Top
#7
Und weil mein Namensvetter Rabe auch darauf hinwies:
ActiveWorkbook sollte man nur dann einsetzen, wenn man bewusst ein unbekanntes Workbook ansprechen will.
ThisWorkbook hingegen ist eindeutig und bezieht sich auf die Datei mit dem Makro.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • SiriKlaus
Top
#8
Vielen Dank für den allgemeinen Hinweis RPP63 jetzt fiel mir das lesen auch leichter! In einer vorherigen Makro wird ein Sheet namens "Combined" erstellt, ich sehe es auch während ich die aktuelle Makro laufen lasse... ich habe auch nochmal die Namen nach Leerzeichen gescannt und keine gefunden.

Die Fehlermeldung 9 ist dank ThisWorkbook statt ActiveWorkbook weg.

Dafür taucht nun in derselben Zeile "Laufzeitfehler 91: Objektblockvariable oder With-Blockvariable nicht festgelegt" auf.
Top
#9
Hallo,

[Vermutung an]
vielleicht kein Autofilter im Tabellenblatt gesetzt?
[Vermutung aus]

Code:
If ThisWorkbook.Worksheets("Combined").AutoFilterMode Then ThisWorkbook.Worksheets("Combined").AutoFilter.Sort.SortFields.Clear
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • SiriKlaus
Top
#10
Hallo Steffl,

das stimmt ich hab deine Zeile eingegeben, er findet keine AutoFilterMode und überspringt die Angabe nach "Then".

Kannst du mir ein Angabe für ein "Else" vorschlagen? Wie kann so ein Fehler auftreten, obwohl nur der Ordnername umbenannt und wieder zurückbenannt wurde?
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste