dindin
XLDnaute Occasionnel
Bonjour le forum,
j'ai 2 colonnes B et C
La A contient que des numéros (max 5 chiffres)
dans la colonne C j'ai une liste déroulante qui contient "Annulé" et "Reporté"
mon souhait est le suivant :
si l'utilisateur choisi dans la colonne C : "Annulé", on ajoute dans la colonne B : "A_" & chiffre existant de la colonne B ça donne "A_1923" par exemple
si l'utilisateur choisi dans la colonne C : "Reporté", on ajoute dans la colonne B : "R_" & chiffre existant de la colonne B ça donne "R_1922" par exemple
si l'utilisateur laisse la cellule de la colonne C vide, on garde que les chiffres existants de la colonne B ça donne "1923" par exemple
j'essaye ce code qui bug un peu car si on change de choix il continue a rajouter les A ou R:
Mon souhait:
Merci d'avance pour votre aide
j'ai 2 colonnes B et C
La A contient que des numéros (max 5 chiffres)
dans la colonne C j'ai une liste déroulante qui contient "Annulé" et "Reporté"
mon souhait est le suivant :
si l'utilisateur choisi dans la colonne C : "Annulé", on ajoute dans la colonne B : "A_" & chiffre existant de la colonne B ça donne "A_1923" par exemple
si l'utilisateur choisi dans la colonne C : "Reporté", on ajoute dans la colonne B : "R_" & chiffre existant de la colonne B ça donne "R_1922" par exemple
si l'utilisateur laisse la cellule de la colonne C vide, on garde que les chiffres existants de la colonne B ça donne "1923" par exemple
j'essaye ce code qui bug un peu car si on change de choix il continue a rajouter les A ou R:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
'si la cellule contient le mot annulé
If Target.Column = 3 And ActiveCell.Value = "Annulé" Then
Cells(Target.Row, 2).Value = "A" & Cells(Target.Row, 2).Value
ElseIf Target.Column = 3 And ActiveCell.Value = "Reporté" Then
Cells(Target.Row, 2).Value = "R" & Cells(Target.Row, 2).Value
ElseIf Target.Column = 3 And ActiveCell.Value = "" Then
Set obj = CreateObject("vbscript.regexp")
obj.Global = True
obj.Pattern = "[a-z,A-Z]+"
chaine = Cells(Target.Row, 2).Value
chaine = obj.Replace(chaine, "")
Cells(Target.Row, 2).Value = chaine
End If
End Sub
Mon souhait:
Merci d'avance pour votre aide