|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Bonjour,
Je ne m'y connais pas bien en macro EXCEL, mais j'aimerais faire l'action suivante : 1.Enlever les caractères indésirables (espaces, tirets) 2.Déplacer les 4 premiers caractères à droite 3.Convertir les lettres en chiffres via une table de conversion (A=10, B=11, C=12 etc) 4.Diviser le nombre ainsi obtenu par 97. Si le reste est égal à 1 l'IBAN est correct : Modulo de 97 égal à 1 Donc avoir une feuille excel avec un champ où l'on rentre l'IBAN et dire s'il est correct ou pas. Merci pour toute réponse. |
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Bon je suis finalement parvenu à effectuer tout, mais je bloque sur la division par 97.
J'ai un dépassement de capacité, quand je fais : Code :
|
||
|
|
00
|
|
|
#3 |
![]() ![]() |
Bonjour
Attention, seule ta variable r est déclaré en double, les autres sans aucunes indication sont déclarées en variant. C'est à dire qu'Excel décide du meilleur type en fonction de ce que tu mets dedans. Je te conseille de déclarer toutes tes variables correctement dans un premier temps pour voir ce que cela donne. Starec |
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Ok j'ai fait les déclarations complètes, je ne savais pas qu'on ne pouvait pas faire comme en C en VB6...
Par contre, ça me donne toujours le même problème de dépassement de capacité : Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Apparemment, le problème vient donc du dividende "a1" qui est trop grand.
En principe, on doit avoir comme résultat "r=1". J'ai essayé de procéder autrement : Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Finalement en rajoutant des fonctions dédiées au calcul du modulo, cela fonctionne, il ne faut donc pas utiliser la fonction "Mod" de VB6.
|
|
|
00
|
|
|
#7 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : juin 2002 Messages : 3 882 ![]() |
J'ai essayé un truc du genre en m'inspirant du principe de la division ...
Code :
Code :
__________________
Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème ![]() Développez une application de gestion des comptes bancaires dans Access de A à Z ![]() |
||||
|
|
00
|
|
|
#8 |
![]() ![]() |
Tu m'étonneras toujours, tu as recrée le modulo. Par contre pour notre culture as-tu une explication du dépassement de capacité ? Tu à droit à Starec |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : mars 2002 Messages : 560 ![]() |
Bravo !
Merci en tout cas ! |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : juin 2002 Messages : 3 882 ![]() |
Merci
hé bien en fait, le dépassement de capacité c'est parce que Mod travaille sur le type Long. Citation:
__________________
Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème ![]() Développez une application de gestion des comptes bancaires dans Access de A à Z ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com