3.3k Aufrufe
Gefragt in Tabellenkalkulation von hoax Einsteiger_in (91 Punkte)
Hallo Forum,

unter Excel 2003 filtere ich eine Liste über ein Makro, welches ich aufgezeichnet habe:

Sub Suchen()
Range("A8:U4000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("A4:U5"), Unique:=False
End Sub


den Filter setze ich zurück mit folgendem Makro:

Sub Refresh__neu()
Range("A5:U5").Select
Selection.ClearContents
With Selection.Interior
.ColorIndex = 37
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A6").Select
Application.Run "Werkzeuglager.xls!Suchen"
End Sub


unter Excel 2003 hat das auch einwandfrei funktioniert, aber unter Excel 2010 64 bit funktioniert es nicht mehr. Das Zurücksetzen des Filters dauert ca 6 minuten. Ein erneutes Aufzeichnen unter 03 64 bit, erbringt keinerlei Verbesserung.
Das Zurücksetzen des Filters geht nicht über Löschen, da ein Blattschutz aktiviert ist ( Show all Details). Hat jemand eine Idee?!

7 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-))

eine möglichkeit fuer beide varianten

gruss nighty

zuvor ermittle den entstandenen fehlercode

z.b.
schreibe in dein makro eine zeile fuer das einlesen von der systemfehler variablen Err

Cells(1,1)=Err

diese ermittelte fehlernummer wird gegen FehlerBehandlung im code ausgetauscht

Option Explicit
Sub Beispiel()
On Error GoTo FehlerBehandlung
'code fuer excel2003
End
FehlerBehandlung:
If Err = DeineFehlerNummer Then
'Code fuer Excel2010
Else
Err.Raise DeineFehlerNummer
End If
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-)

hier nochmal,fettschrift wollte nicht :-))

gruss nighty

Option Explicit

Sub Beispiel()
On Error GoTo FehlerBehandlung
'code fuer excel2003
End
FehlerBehandlung:
If Err = 13 Then
'Code fuer Excel2010
Else
Err.Raise 13
End If
End Sub
0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
Vielen Dank für die Antwort
Als Fehlercode generiert er 0,
kann es sein, daß Excel 2010, einfach im Cache etwas hängt?
zumal es ja keine Fehlermeldung gibt, sondern nur sehr lange dauert?!
0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
Wenn ich den Filter lösche, gehts wieder im Sekundenbereich, aber ich bekomm es nicht hin ein makro zu basteln, versucht habe ich es folgendermaßen:

Sub Refresh__neu()
Range("A5:U5").Select
Selection.ClearContents
With Selection.Interior
.ColorIndex = 37
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("A6").Select

If .FilterMode Then .ShowAllData
End If


End Sub


läuft aber nicht... außerdem bräuchte ich ein Makro, um den Blattschutz aufzuheben, also kurzzeitig, um den Filter zurückzusetzen

!Help!
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

1)syntax den verschiedenen varianten anpassen
2)eindeutige merkmale prüfen auf version
3)verzweigung ueber if then else oder case

da ich kein excel 2010 habe ,bin ich draussen

du hast wenig oder keine vb kenntnisse und jonglierst mit mehreren versionen,so optimal ist das nicht

gruss nighty
0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
absolut keine Ahnung trifft es... aber Danke, ich versuch es weiter
0 Punkte
Beantwortet von hoax Einsteiger_in (91 Punkte)
Hallo,

habs jetzt

mit:

If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If


fuktioniert es


Danke
...