Formule pour calculer un chiffre de contrôle de code-barres

J'essaie d'écrire une formule pour calculer le chiffre de contrôle pour les codes-barres S10 (UPU Standard) de l'Union postale universelle. Voici un exemple de code-barres:

Ces codes à barres comportent un nombre à 9 chiffres, le chiffre le plus à droite étant le chiffre de contrôle, qui est calculé comme suit:

1. Attribuez les poids 8, 6, 4, 2, 3, 5, 9, 7 aux 8 chiffres, de gauche à droite

2. Calculez S, la somme de chaque chiffre multipliée par son poids.

Par exemple, pour le nombre 21779402, S = 2 * 8 + 1 * 6 + 7 * 4 + 7 * 2 + 9 * 3 + 4 * 5 + 0 * 9 + 2 * 7 = 125

3. Calculez le chiffre de contrôle, C, à partir de C = 11 - (S mod 11) = 11 - (125 mod 11) = 11 - 4 = 7

Si C = 10, passez à C = 0

Si C = 11, passez à C = 5

Réponse: le chiffre de contrôle est 7

Avec mon numéro à 8 chiffres dans la cellule A1, j'utilise cette formule dans B1 pour trouver le chiffre de contrôle:

=11-(MOD(((MID(A1,1,1)*8)+(MID(A1,2,1)*6)+(MID(A1,3,1)*4)+(MID(A1,4,1)*2)+(MID(A1,5,1)*3)+(MID(A1,6,1)*5)+(MID(A1,7,1)*9)+(MID(A1,8,1)*7)),11))

Cependant, lorsque le premier chiffre du code-barres est zéro, j'obtiens #VALUE! Erreur. Comment puis-je résoudre ce problème.

De plus, j'essaie de traiter C = 10 et C = 11 avec une formule dans la cellule C1: IF (B1 = 10,0, B1) IF (B1 = 11,5, B1) Comment puis-je combiner ces deux formules?

Bonsoir Abdele,

Pour rester en formules:

Remplace (MID(A1,1,1)*8) par ((CODE(A1)-48) * 8) afin de ne plus avoir le message d'erreur.

Et pour le 2ième besoin pour traiter C. Faire =IF(B1>9; 0 + (B1-10) * 5; B1)

Bonne continuation.

Bonsoir X Cellus,

merci mon ami de votre réponses

j'ai essaye de Remplace (MID(A1,1,1)*8) par ((CODE(A1)-48) * 8) il ma afficher un message erreur sur google sheet,

et comment je peux intégrer =IF(B1>9; 0 + (B1-10) * 5; B1) avec la premier formule

merci d'avance;

Bonjour Abdele,

J'ai testé sur Google Sheets.

La formule =(Code("01234")-48) * 8 me donne bien 0 soit le 1ier caractère du terme.

On peut aussi faire: =Int(Left("01234";1)) * 8 . Il ressortira aussi le 0.

Et tout chiffre autre que 0 renverra un multiple de 8.

En fait, dans le calcul du C. Tu peux ôter le 0 + qui suit le 9. Puisque pour 10 et 11,( B1-10) donnera 0 ou 1.

Bonne continuation.

A nouveau,

Si tu désires l'intégration dans une seule formule. Tu peux avant tester ceci avec les valeurs de S de 120 jusqu à 132 en cellule B1.

Avec la formule suivante en C1.

If(Mod(B1;11) = 0;5; Mod(Mod(B1;11);10))

Ta première formule de calcul de S remplacera B1 dans la formule ci-dessus. Formule longue mais contenue dans une seule cellule.

Bons tests, bonne continuation.

Rechercher des sujets similaires à "formule calculer chiffre controle code barres"