Différencier 1 et 10 dans une formule
Bonjour,
dans mon programme j'ai besoin d'extraire uniquement le chiffre contenu dans une cellule qui elle contient lettres et chiffres.
voici comment je procède :
Je fait une boucle pour "scanner" les cellules en question et j'applique cette formule :
Code:
1 2 3 4 5 6 7 8
| pos = InStr(Range("N" & j).Value, i)
If pos > 0 Then
contenu = Range("N" & j).Value
pos2 = Mid(contenu, pos, 1)
End If |
celà fonctionne bien pour un chiffre de 1 à 9, pos2 me renvoi le bon chiffre mais lorsque j'ai 10 dans la cellule scannée, le prgomme prends également le 1..
Auriez-vous une astuce?
Merci!
differencier 1 et 10 dans une formule
bonjour Patrick et Pmp87,
Patrick :
La cellule testée contient chiffre et lettre d'après le premier message.
Par conséquent si la cellule contient "a10bc25d" taproposition renverra "1025".
je pense que Pmp87 souhaite n'extraire que 10 et 25 (chaque série de chiffre qui se suivent).
JPierreM :
Ton code répond bien au problème tel que je l'ai compris.
j'aimerai bien, pour ma culture, que tu explique un peu ce code que je ne comprend pas.
cordialement.
differencier 1 et 10 dans une formule
bonjour,
JPierreM : merci pour tes explications que je vais approfondir en regardant les deux adresses auxquelles tu me renvoies.
Patrick : j'ai bien écrit "tel que je l'ai compris". Comme toi, je ne sais exactement ce qui est demandé ne connaissant pas la composition de la variable analysée.
Ton code convient si cette variable ne peut contenir 2 séries de chiffres séparées.
Quant à la fonction val, elle demeure pour moi un mystère :
D'après mon livre, elle devrait extraire 10 de ("a10bc20g"), or elle me renvoie 0.
Par contre, elle extrait bien 10 si je supprime le a de la chaine.
Mieux encore : Si j'écris val (b3) en supposant que la chaine soit dans la cellule b3, elle me renvoie 0 dans les deux cas.
cordialement.
differencier 1 et 10 dans une formule
bonjour JPierreM,
merci pour l'information.
il est quand même embettant de ne pouvoir se fier à un ouvrage bien utile par ailleurs. En l’occurrence "VBA pour EXCEL" de JP Mester qui écrit :
- val("123abcd456") renvoie la valeur 123
- val("abcd123ghjkl") renvoie la valeur 123
- Si A5 contient "115 pièce", la fonction val(A5) renvoie 115.
Cordialement.