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

jorge1201

XLDnaute Junior
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
 

Fichiers joints

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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas