Registriert seit: 07.05.2020
Version(en): 2016
Mappe für CEF.xlsm (Größe: 54,59 KB / Downloads: 17)
Hallo zusammen,
ich habe in meiner Datei ein Makro, dass mir die Tabelle sortiert und ausdruckt.
Es sortiert in der Spalte "I" und druckt mir das dann aus und das geht so lange, bis in Spalte "I" alles einmal durchgelaufen ist.
Sage ich dem Makro nun, er soll in Spalte "K" anstatt in "I" schauen, bekomme ich immer folgende Fehlermeldung:
"Fehlender oder ungültiger Feldname im Zielbereich."
mit:
Range("i5:i117").AdvancedFilter xlFilterCopy, , Range("iv1").Cells, True
Range("A4").AutoFilter Field:=9, Criteria1:=SB
klappt es,
mit
Range("k5:k117").AdvancedFilter xlFilterCopy, , Range("iv1").Cells, True
Range("A4").AutoFilter Field:=12, Criteria1:=SB
geht es nicht und die Fehlermeldung oben kommt.
Was habe ich falsch gemacht?
Datei mit dem "sortieren"-Makro ist im Anhang.
Kann mir jemand meinen Fehler beheben?
Vielen Dank im Voraus.
Liebe Grüße
Andreas
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
nur mal so geraten: Spalte K ist die 11. Spalte, nicht die 12. wie bei dir.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 07.05.2020
Version(en): 2016
Hallo Klaus-Dieter,
daran liegt es leider nicht.
Schade, trotzdem vielen Dank.
Gruß
Andreas
Registriert seit: 12.06.2020
Version(en): 2021
es liegt meines Erachtens daran, das du in der Spalte eine Formel hast. Wenn man die angezeigten Werte in einer neuen Spalte als Werte einfügt und diese dann mit dem Makro filtert, geht es.
Leider bin ich nicht Spezialist genug, um dir hier ne bessere Lösung zu anzubieten.
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi
Versuch es mal mit der Variante.
Code: Sub Makro1()
Dim SB
Columns("IV").Clear
Range(Range("I5"), Range("I5").End(xlDown)).Copy Range("IV1")
Range(Range("IV1"), Range("IV1").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
Range("A5").Activate
For Each SB In Range(Range("IV1"), Range("IV1").End(xlDown)).Cells
Range("A4").AutoFilter Field:=9, Criteria1:=SB.Value
'ActiveSheet.PrintOut
Application.Wait Now + TimeSerial(0, 0, 1) 'Pause zum anschauen am Bildschirm
Next
Range("A4").AutoFilter Field:=9
End Sub
Registriert seit: 07.05.2020
Version(en): 2016
Hallo,
leider klappt es nicht, sobald in der zu filternden Spalte eine Formel steht.
Wenn ich von Hand filter, steht als Auswahl zwar (in meiner Mappe in Spalte K "A,C,D,E" usw., aber mein Makro
kann das nicht als Wert interpretieren und steigt deswegen aus.
Ich denke, ich werden eine Hilfsspalte einbauen müssen und die Formelergebnisse in diese Spalte kopieren müssen und dann diese
Spalte für das Makro nehmen.
Schade, ich dachte, es gäbe eine Möglichkeit, dass zu umgehen.
Vielleicht hat ja noch jemand einen heißen Tipp?
Viele Grüße
Andreas
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Für Formelspalte.
Code: Sub Makro1()
Dim SB
Columns("IV").Clear
Range(Range("K5"), Range("K5").End(xlDown)).Copy
Range("IV1").PasteSpecial (xlPasteValues)
Range(Range("IV1"), Range("IV1").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
Range("B5").Activate
For Each SB In Range(Range("IV1"), Range("IV1").End(xlDown)).Cells
Range("A4").AutoFilter Field:=11, Criteria1:=SB.Value
'ActiveSheet.PrintOut
Application.Wait Now + TimeSerial(0, 0, 1) 'Pause zum anschauen am Bildschirm
Next
Range("A4").AutoFilter Field:=11
End Sub
Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:1 Nutzer sagt Danke an Elex für diesen Beitrag 28
• ari-2001
Registriert seit: 07.05.2020
Version(en): 2016
Hallo Elex,
ich habe noch ein kleines Problem.
Wie schreibe ich das Makro um, dass es mir vor dem Ausdruck noch unter der Tabelle befindliche Index-Formeln aktualisiert und dann erst ausdruckt?
So sortiert er zwar super, aber beim Ausdruck sind die Formel nicht aktualisiert.
Und wie bekomme ich das Makro so hin, dass er in Spalte A (Datum) runterläuft?
Ich scheiter da grade dran.
Viele Grüße
Andreas
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi
Zitat:aber beim Ausdruck sind die Formel nicht aktualisiert
Versuch es mal so.
Lasse die Pause evtl. auch so drin.
Code: Sub Makro1()
Dim SB
Columns("IV").Clear
Range(Range("K5"), Range("K5").End(xlDown)).Copy
Range("IV1").PasteSpecial (xlPasteValues)
Range(Range("IV1"), Range("IV1").End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo
Range("B5").Activate
For Each SB In Range(Range("IV1"), Range("IV1").End(xlDown)).Cells
Range("A4").AutoFilter field:=11, Criteria1:=SB.Value
Calculate
Application.Wait Now + TimeSerial(0, 0, 1) 'Pause zum anschauen am Bildschirm
ActiveSheet.PrintOut
Next
Range("A4").AutoFilter field:=11
End Sub
Zitat:Und wie bekomme ich das Makro so hin, dass er in Spalte A (Datum) runterläuft?
Wie meinst du das?
Gruß Elex
Registriert seit: 07.05.2020
Version(en): 2016
Hallo Elex,
mit dem nach Datum sortieren geht mit:
Range("IV1").PasteSpecial (xlPasteValuesAndNumberFormats)
(Format der Zellen und der Wert muss mit kopiert werden)
Range("A4").AutoFilter Field:=18, Criteria1:="=" & SB.Value, Operator:=xlAnd
(nun filtert er auch das Datum)
Jetzt suche ich nur noch die Lösung, dass er mit die private function, die ich eingebaut habe, aktualisiert
Da kämpfe ich grade dran
Irgendetwas habe ich übersehen, weiss aber noch nicht genau was.
Zur Not poste ich die Datei noch mal
|