Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro bringt Fehlermeldung

Makro bringt Fehlermeldung
24.01.2007 14:20:51
Frank
Hallo Leute,
da mir vorgestern von Ingolf (nochmals Danke)sehr kompetent und schnell geholfen wurde wende ich mich mit dem nächsten Problem an Euch. Ich hab folgendes Makro aus dem Forum geladen:

Private Sub Worksheet_Calculate()
'KopfzellenDerGefiltertenSpalteFärbenWennAktiv
Dim flt As Filter
Dim iCol As Integer
For Each flt In ActiveSheet.AutoFilter.Filters
iCol = iCol + 1
If flt.On Then
Cells(2, iCol).Interior.ColorIndex = 15
Else
Cells(2, iCol).Interior.ColorIndex = _
xlColorIndexNone
End If
Next flt
End Sub

Dieses läuft einwandfrei und die Zelle in der der Filter gesetzt ist wird gefärbt.
Nun das Problem, wenn ich in einem anderen Tabellenblatt Änderungen an bestimmten Einträgen vornehme (Faktoren mit denen ich in der zu filternden Datei Berechnungen ausführe:Tabelle "Rabatte Zuschläge")kommt folgende Fehlermeldung:"Laufzeitfehler 91 Objektvariable oder With-Blockvariable nicht festgelegt"
Für mich als Stümper ein unlösbares Problem aber von Euch hat sicher jemand eine Lösung.
Dank im Voraus
Frank
https://www.herber.de/bbs/user/39875.xls

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bringt Fehlermeldung
24.01.2007 16:36:53
fcs
Hallo Frank,
das Problem ist, dass das Blatt "Aufmaß" zum Zeitpunkt der Ausführung des Makros nicht das aktive Blatt ist. Dadurch findet das Makro die entsprechenden Filter nicht.
Eine der beiden nahcfolgenden Anpassungen sollte das Problem beseitigen.
Gruß
Franz

Private Sub Worksheet_Calculate()
'KopfzellenDerGefiltertenSpalteFärbenWennAktiv
Dim flt As Filter
Dim iCol As Integer
Dim wks As Worksheet
Set wks = Me ' oder Set wks = Worksheets("Aufmaß")
With wks
For Each flt In .AutoFilter.Filters
iCol = iCol + 1
If flt.On Then
.Cells(2, iCol).Interior.ColorIndex = 15
Else
.Cells(2, iCol).Interior.ColorIndex = _
xlColorIndexNone
End If
Next flt
End With
End Sub
Private Sub Worksheet_Calculate()
'KopfzellenDerGefiltertenSpalteFärbenWennAktiv
Dim flt As Filter
Dim iCol As Integer
If ActiveSheet.Name = "Aufmaß" Then
For Each flt In ActiveSheet.AutoFilter.Filters
iCol = iCol + 1
If flt.On Then
Cells(2, iCol).Interior.ColorIndex = 15
Else
Cells(2, iCol).Interior.ColorIndex = _
xlColorIndexNone
End If
Next flt
End If
End Sub

Anzeige
Danke an Franz
25.01.2007 07:16:06
Frank
Hallo Franz,
funktioniert hervorragend vielen Dank !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige