Clever-Excel-Forum

Normale Version: Makro zickt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
[attachment=32755]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
Hallo,

nur mal so geraten: Spalte K ist die 11. Spalte, nicht die 12. wie bei dir.
Hallo Klaus-Dieter,

daran liegt es leider nicht.

Schade, trotzdem vielen Dank.

Gruß
Andreas
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.
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
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
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
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
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
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 Smile

Irgendetwas habe ich übersehen, weiss aber noch nicht genau was.

Zur Not poste ich die Datei noch mal
Seiten: 1 2 3 4