XL 2016 Colorer une ligne sur deux + Numérotation automatique

jorge1201

XLDnaute Occasionnel
Bonjour le forum,

J'ai un code qui permet d'une part de colorier une ligne sur deux de la plage B5:J et d'autre part d'ajouter une numérotation automatique en B5:B à condition que C5:C soit <> de "".

Cependant, je rencontre quelques problèmes avec ce code:
1) Après chaque saisie en C5:C, le curseur se positionne automatiquement en B5. Or j'aimerais qu'après la saisie, le curseur se positionne dans la cellule de la colonne D (exemple: si je modifie la cellule C8, le curseur devrait se positionner dans la cellule D8).

2) La numérotation automatique commence en B6 au lieu de B5.

Auriez-vous de suggestions pour modifier le code ou, éventuellement, proposer un nouveau code?
Merci d'avance. Jorge
 

Pièces jointes

  • CouleurLignes_NumeroAuto_V1.xlsm
    17.2 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jorge.
En essayant de ne pas toucher à votre code:
1- Ajout de [B5] = 1 pour l'initialisation
2- Ajout de Target.Select à la fin pour le positionnement du curseur en sortant
En espérant que ça colle.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        On Error Resume Next
        
        ' Init N° à 1
        [B5] = 1
        
            'Ajoute numérotation automatique en colonne B
            If Target.Value <> "" Then
                Target.Offset(0, -1).Value = Target.Offset(-1, -1).Value + 1
            End If
        
        'Colorie en gris claire une ligne sur deux de la plage B5:J
        Cells.FormatConditions.Delete
        Range("B5:J" & Range("B1048576").End(xlUp).Row).Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=LIGNE($B5)/2=ENT(LIGNE($B5)/2)"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
            With Selection.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = -0.14996795556505
            End With
        Selection.FormatConditions(1).StopIfTrue = False
        
         Target.Select       ' Repositionnement du curseur en Target
    End If
      
End Sub
 

Discussions similaires

Réponses
6
Affichages
256