Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro zickt
#1

.xlsm   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
Antworten Top
#2
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
Antworten Top
#3
Hallo Klaus-Dieter,

daran liegt es leider nicht.

Schade, trotzdem vielen Dank.

Gruß
Andreas
Antworten Top
#4
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.
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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:
  • ari-2001
Antworten Top
#8
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
Antworten Top
#9
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
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste