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

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
604
Réponses
90
Affichages
5 K