VBA Zeile einfügen
#21
Hallöchen,

Bezüge in bedingten Formatierungen können sich z.B. durch solche Aktionen ändern:

With Cells(Selection.Row, 1).Resize(1, 13)
.Copy
.Offset(1).Insert Shift:=xlDown
End With

Da musst Du schauen, wie Du gegensteuern kannst.

- bedingte Formatierung löschen und neu setzen
- bedingte Formatierung irgendwo hinterlegen und auf den dann größeren Bereich übertragen
- intelligente Tabelle nutzen nebst den entsprechenden Befehlen zur Erweiterung
- ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#22
@schauan

ai jai jai... muss man ja echt auf Feinheiten achten :(

Ich schau mir das im neuen Jahr an... mir qualmt schon die Birne ;)

Ich wünsche Euch allen einen guten Rutsch.
Gruß

ItsME
Antworten Top
#23
Hallo Itsme,

vielleicht hilft Dir mein Lösungsansatz. Ich habe den Zellen nen Name ("Seriennr") verpasst. Mit "Makro1" werden die Zellen markiert, inklusive den neuen Zellen, und dann wird die bedingte Formatierung geschrieben.
Dann hab ich in Dein Makro ein "call Makro1" eingefügt und hat funktioniert.

Grüße

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Application.Goto Reference:="Seriennr"
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
Antworten Top
#24
Hi Sintergott,

so?

Zitat:Sub AddRows()
Call Makro1
        ActiveSheet.Unprotect Password:="Test"
        Application.ScreenUpdating = False
    Selection.EntireRow.Insert Shift:=xlDown
    ' ACHTUNG: Das With darf nicht 1 drüber, da sich durch das Insert die Selection ändert
    With Selection.EntireRow
        .Offset(-1, 0).Resize(1).Copy
        .PasteSpecial Paste:=xlPasteFormulas
    End With
    Application.ScreenUpdating = True
    If [d2].Value = "Free" Then Exit Sub
    ActiveSheet.Protect Password:="Test"
End Sub
Sub Makro1()
'
' Makro1 Makro
'

'
    Application.Goto Reference:="Seriennr"
    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
Bleibt so dann bei der rot markierten Zeile hängen :(


VBA ist nicht so meins... kann nur probieren 20 Confused
Gruß

ItsME
Antworten Top
#25
Ich hab das auch nur mit dem Makro-Rekorder erstellt 19
Antworten Top


Gehe zu:


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