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

AdvancedFilter

AdvancedFilter
Mogli
Hallo Excelianer
nach Umstieg von Excel 2003 auf 2007 funzt dieser Befehl nicht mehr:
.
.
.
Sheets("Auszug").Activate
Sheets("Daten").Range("A2:AN100").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Liste").Range("E8:F9"), CopyToRange:=Range("A6:M6") _
, Unique:=False
.
.
d.h. ich will von einem Sheet auf ein anderes Sheet gefilterte Daten kopieren.
Das Perfide an der Sache ist, der Makro läuft ohne Fehlermeldung durch, nur, er filtert und kopiert nicht.
In Excel2003 ist das alles kein Problem!
Kann mir jemand sagen, was sich hier in 2007 geändert hat?
Mogli sagt DANKE und wünscht noch einen schönen Tag

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: AdvancedFilter
06.08.2010 15:11:27
Mogli
Hallo Excelianer
ich hab noch weiter getestet und festgestellt: manuell ausgeführt (über Menü) funzt der Spezialfilter, das Ganze auch mit dem Rekorder aufgezeichnet. Keine Änderung gegenüber meinem Code. Aber der aufgezeichnete Code läuft auch nicht!
Hat BG hier einen BUG drin?
Wie könnte man das Problem anderweitig lösen?
Liebe Grüße Mogli
Beispieldatei wäre gut oT.
06.08.2010 16:34:40
Tino
AW: DatumFormat ändern!
06.08.2010 19:49:32
Tipp
Hi Mogli
ich nehme an, Du willst nach Datum filtern! VBA2003 macht da nicht mit! Formatiere Deine Datum's vor dem Filtern als Standard, nach dem Filtern wieder zurück ins alte Datumsformat. Alternativ kannst Du auch das amerikanische Datumsformat verwenden, da gehts dann auch!
Liebe Grüße
sagt der Tipp
Anzeige
geht bestimmt auch anders ;-) oT.
06.08.2010 22:10:43
Tino
@Tino und wie? ....
09.08.2010 09:39:38
Tipp
Guten Morgen Tino
bitte nicht blind aus der Hüfte schiessen, ich bin von Dir bessere, sogar sehr gute Antworten gewöhnt!
Nenne bitte Ross und Reiter und mach keine abfällige Antworten, jeder versucht hier nur dem Anderen zu helfen.
Grüße Tipp
AW: @Tino und wie? ....
09.08.2010 10:13:16
Tino
Hallo,
wenn er mal ein Beispiel hochladen würde, könnte man mal schauen.
So wie sein Code aussieht, geht dies über drei Tabellen
(Sheets("Daten"); Sheets("Liste"); Sheets("Auszug")),
werde ich nicht nachbauen, weil es am Ende doch nicht richtig ist.
Hier dafür ein anderes kleines Beispiel.
https://www.herber.de/bbs/user/70981.xls
Gruß Tino
Anzeige
AW: @Tino und wie? ....
09.08.2010 10:42:23
Tipp
Hallo Tino
hab Dein Makro unter die Lupe genommen. Mit der rngFormel weist Du das Datum ja auch als Zahl(Wert) aus und das ist genau der knausus knacktus in Excel 2007. Im Prinzip nichts anderes als was ich auch geschrieben habe. Was ich aber heraus gefunden habe: die "Datümer" in der zu filternden Liste braucht man nicht als Standard umzuformatieren. Nur, wie bereits gesagt, die Criteria-Range muß als Standard oder amerikanische Datumsschreibweise formatiert sein, dann klappt alles.
Schönen Tag noch
sagt der Tipp
daher auch mein Einwand...
09.08.2010 11:08:37
Tino
Hallo Tipp ?,
weil Du eben die Datumsspalte umformatieren wolltest und das finde ich sollte man vermeiden.
Gruß Tino
Anzeige
AW: Einwand angenommen
09.08.2010 11:11:51
Tipp
Hallo Tino
dann ist ja wieder alles in Butter
Schönen Tag noch
Tipp
zweite Variante
09.08.2010 10:40:46
Tino
Hallo,
auf das vorhergehende Beispiel noch eine zweite Variante.
Sub Filtern_()
Dim vonDate, bisDate
Dim rngFilter As Range, rngData As Range
With Tabelle1
    
    vonDate = InputBox("Filtern von Datum", , .Range("A7"))
    bisDate = InputBox("Filtern bis Datum", , .Range("A20"))

    If IsDate(vonDate) And IsDate(bisDate) Then
        Set rngData = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
        
        With Tabelle2
            Set rngFilter = .Range("C1:D2")
            rngFilter.Rows(1).Value = rngData.Cells(1, 1)
            rngFilter.Cells(2, 1) = "'>=" & CLng(DateValue(vonDate))
            rngFilter.Cells(2, 2) = "'<=" & CLng(DateValue(bisDate))
            
            .Range("A2:A" & .Rows.Count).Clear
            .Range("A1").Value = rngData.Cells(1, 1).Value
            .Range("A1").Font.Bold = True
            rngData.AdvancedFilter xlFilterCopy, rngFilter, .Range("A1")
        End With
    End If
End With
End Sub
Gruß Tino
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige