Hallo liebe VBA´ler
ich versuche mich schon eine ganze Weile in VBA, und bin sicher kein blutiger Anfänger mehr, aber die Autofilter Funktion bringt mich an meine Grenzen.
Ich möchte zwei Werte in einer Großen Datei filtern, und wenn nach dem Filtern in einer Spalte eine "falsche" Information steht, dann diese überschreiben.
Ich habe schon ganz viele Ansätze, die mal schlecht, unzuverlässig oder gar nicht funktionieren.
Hier meine letzte Version, an der ich gerade schreibe,
Sub autofilter()
Range("CL1").Select
Selection.NumberFormat = "mm/dd/yyyy"
ActiveCell.FormulaR1C1 = "=Today()"
Dim MyVal As Date
Selection.NumberFormat = "mm/dd/yyyy"
MyVal = Application.WorksheetFunction.WorkDay(Range("CL1").Value, 0)
With ActiveSheet
.Range("A1:BX1").AutoFilter
.Range("A1:BX" & .Cells(Rows.Count, "A").End(xlUp).Row).AutoFilter _
Field:=ActiveCell.Column, Criteria1:=ActiveCell.Value
.AutoFilter Field:=8, Criteria1:=">" & MyVal
.AutoFilter Field:=21, Criteria1:="A"
End With
Set zelle = Nothing
ForActiveSheet.Range ("AK")
If zelle.Value = "rot" Then zelle = "gelb"
Next
Set zelle = Nothing
End Sub
Dieser Code funktionier jetzt überhaupt nicht, ist aber nächsten an dem, was ich machen möchte.
Ich möchte eben keine festen Zeilen im Autofilter festlegen, weil die Länge der Datei jeden Tag unterschiedlich ist.
Da finde ich das " Rows.Count, "A").End(xlUp) " schon eine gute Idee.
In der Spalte AK sollen nur die gefilterten Zellen von rot auf gelb geändert werden, nicht alle Zellen. Die Information "rot" ist natürlich noch oft vorhanden.
Ich denke, ich muss noch irgendwie " SpecialCells(xlCellTypeVisible) " miteinfügen. Auch daran arbeite ich schon eine Weile, allerdings mit mäßigem Erfolg.
Wichte Info, diese Änderung muss ich drei mal machen, für " gelb, grün und blau". Vielleicht ist das auch nocht wichtig.Der Unterschied ist in der Spalte 21, es gibt A = gelb, O = grün und A = blau.
Also:
Spalte 21 = A = Spalte AK gelb
Spalte 21 = O = Spalte AK grün
Spalte 21 = A = Spalte AK blau
Vielen Dank im Voraus.
Mike
|