04.07.2019, 10:36
Hallo zusammen,
Ich bin neu hier im Forum und konnte mit der Suchfunktion leider nichts passendes finden. Aber auch möglich, dass ich bei den ganzen Artikeln etwas verpasst habe.
Mein Problem sieht wie folgt aus.
Ich habe eine Tabelle mit mehreren Werten, in dem Fall Preisen. Dann sollen von den Spalten einige gelöscht und anschließend Formeln auf die übrig gebliebenen Zeilen angewandt werden.
Nun ist es aber so, dass ich für den ersten Teil der Spalte eine andere Formel anwende als für den 2ten Teil.
Das Makro sieht nun vor, dass die erste Formel auf Range (M15:M1607) und die zweite Formel auf Range (M1620:M2933) angewendet wird.
Das Problem hierbei ist, dass immer wieder Zeilen aus diesen Bereichen gelöscht bzw. hinzugefügt werden. Somit stimmt die Range dann nicht mehr.
Kann man die Range nicht an einem Feld festmachen dass einen bestimmten Text beinhaltet? Oder sonstiges?
Sodass die Range sich so verschiebt, dass die neuen/fehlenden Felder immer mitgenommen werden.
Vielen Dank für eure Hilfe.
Hier noch der dazugehörige Makro (ist aufgenommen worden, deshalb nicht so "sauber")
Achmed
Sub EuroM()
'
' EuroM Makro
'
'
Columns("M:W").Select
Selection.Delete Shift:=xlToLeft
Range("M15").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12)*R9C12"
Range("M16").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("M15").Select
Selection.AutoFill Destination:=Range("M15:M1607"), Type:=xlFillDefault
Range("M15:M1607").Select
Range("M1620").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12)"
Range("M1620").Select
Selection.AutoFill Destination:=Range("M1620:M2933"), Type:=xlFillDefault
Range("M1620:M2933").Select
Columns("M:M").Select
Selection.Copy
Columns("N:N").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("L:L").Select
Application.CutCopyMode = False
Selection.Copy
Columns("M:M").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("N:N").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Columns("M:N").Select
Selection.AutoFilter
ActiveSheet.Range("$M$1:$N$2932").AutoFilter Field:=1, Criteria1:="=0", _
Operator:=xlOr, Criteria2:="=0,00 €"
Selection.ClearContents
ActiveWindow.ScrollRow = 2
Range("L4:L6").Select
Selection.AutoFill Destination:=Range("L4:N6"), Type:=xlFillDefault
Range("L4:N6").Select
End Sub
Ich bin neu hier im Forum und konnte mit der Suchfunktion leider nichts passendes finden. Aber auch möglich, dass ich bei den ganzen Artikeln etwas verpasst habe.
Mein Problem sieht wie folgt aus.
Ich habe eine Tabelle mit mehreren Werten, in dem Fall Preisen. Dann sollen von den Spalten einige gelöscht und anschließend Formeln auf die übrig gebliebenen Zeilen angewandt werden.
Nun ist es aber so, dass ich für den ersten Teil der Spalte eine andere Formel anwende als für den 2ten Teil.
Das Makro sieht nun vor, dass die erste Formel auf Range (M15:M1607) und die zweite Formel auf Range (M1620:M2933) angewendet wird.
Das Problem hierbei ist, dass immer wieder Zeilen aus diesen Bereichen gelöscht bzw. hinzugefügt werden. Somit stimmt die Range dann nicht mehr.
Kann man die Range nicht an einem Feld festmachen dass einen bestimmten Text beinhaltet? Oder sonstiges?
Sodass die Range sich so verschiebt, dass die neuen/fehlenden Felder immer mitgenommen werden.
Vielen Dank für eure Hilfe.
Hier noch der dazugehörige Makro (ist aufgenommen worden, deshalb nicht so "sauber")
Achmed
Sub EuroM()
'
' EuroM Makro
'
'
Columns("M:W").Select
Selection.Delete Shift:=xlToLeft
Range("M15").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12)*R9C12"
Range("M16").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("M15").Select
Selection.AutoFill Destination:=Range("M15:M1607"), Type:=xlFillDefault
Range("M15:M1607").Select
Range("M1620").Select
ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12)"
Range("M1620").Select
Selection.AutoFill Destination:=Range("M1620:M2933"), Type:=xlFillDefault
Range("M1620:M2933").Select
Columns("M:M").Select
Selection.Copy
Columns("N:N").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("L:L").Select
Application.CutCopyMode = False
Selection.Copy
Columns("M:M").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("N:N").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Columns("M:N").Select
Selection.AutoFilter
ActiveSheet.Range("$M$1:$N$2932").AutoFilter Field:=1, Criteria1:="=0", _
Operator:=xlOr, Criteria2:="=0,00 €"
Selection.ClearContents
ActiveWindow.ScrollRow = 2
Range("L4:L6").Select
Selection.AutoFill Destination:=Range("L4:N6"), Type:=xlFillDefault
Range("L4:N6").Select
End Sub