VBA séparer les valeurs nombre du texte

Résolu/Fermé
Tobar4 Messages postés 261 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 7 avril 2014 - 25 juin 2012 à 11:45
Tobar4 Messages postés 261 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 7 avril 2014 - 25 juin 2012 à 13:30
Bonjour,

Mon service dispose de code pannes du type :
VB17A10
VA1B7
VC12A201
...

Le nombre de chiffre peut donc varier (de 1 à 5 caractère) en fonction du problème rencontré, tandis que les lettres sont toujours 2 au début puis 1 au milieu.
Je cherche à séparer dans 4 cellules distinctes les chiffres des caractères donc :
VB 117 A 10
VA 1 B 7
VC 12 A 201

Quelqu'un connait-il une méthode VBA ou une formule, sachant que les formules gauche et droite ne peuvent fonctionner étant donné le nombre de chiffre qui varie.

Pour ma première colonne, une formule =GAUCHE(A2;2) suffit, mais pour les 3 autres ???

Merci par avance


1 réponse

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
25 juin 2012 à 12:43
Bonjour,

Une proposition par formule.

en B2 :
=MAX((CODE(STXT(STXT(A2;3;30);LIGNE(INDIRECT("1:" & NBCAR(A2)-2));1))>=65)*LIGNE(INDIRECT("1:" & NBCAR(A2)-2))+2)
Formule matricielle à valider avec shift+ctrl+entrée.

en C2 :
=GAUCHE(A2;2)

en D2 :
=STXT(A2;3;B2-3)

en E2 :
=STXT(A2;B2;1)

en F2 :
=STXT(A2;B2+1;30)

https://www.cjoint.com/?BFzmLYaI6UZ

Sinon ça peut être fait par fonction personnalisée matricielle en vba.
eric
1
Tobar4 Messages postés 261 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 7 avril 2014 94
25 juin 2012 à 13:30
Merci beaucoup !!
Si je pouvais je t'aurais mis +10 ca marche nickel et je n'ai pas eu à utiliser VB c'est génial !
T.
0