Bonjour,
j'ai plusieurs colonnes où l'on doit insérer un code EAN, donc obligatoirement 13 chiffres. Afin d'éviter les erreurs de saisies et empêcher excel de supprimer le 0 au début j'ai appliqué ceci sur la feuille :
Option Explicit
Private Const NbMaxCar = 13
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 2) And (Len(Target.Value) < NbMaxCar) Or (Target.Column = 7) And (Len(Target.Value) < NbMaxCar) Then
Target.Select
MsgBox "le code EAN doit avoir 13 chiffres. Un ou plusieurs 0 ont été ajoutés. Vérifiez le code !"
Target.NumberFormat = "0000000000000"
End If
End Sub
Cela fonctionne bien. J'ai des codes internes comme 0000000138109 et il suffit de taper 138109 pour que les 0 apparaissent.
Mais si je colle plusieurs EAN provenant d'un autre document ou si je supprime plusieurs cellules j'ai un message d'erreur d'exécution '13': incompatibilité de type
J'ai tenté plus simple :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'************ Positionne le Button sur la colonne active
Target.Select
With Target
If Target.Column = 1 Or Target.Column = 2 Then
Selection.NumberFormat = "0000000000000"
End If
End With
End Sub
mais cela ne marche pas quand je colle plusieurs EAN d'un coup.
Avez-vous une piste ?
Merci