VBA séparer les valeurs nombre du texte
Résolu
Tobar4
Messages postés
261
Date d'inscription
Statut
Membre
Dernière intervention
-
Tobar4 Messages postés 261 Date d'inscription Statut Membre Dernière intervention -
Tobar4 Messages postés 261 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- VBA séparer les valeurs nombre du texte
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Nombre de jours entre deux dates excel - Guide
- Séparer pdf - Guide
- Texte barré whatsapp - Guide
1 réponse
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
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
Si je pouvais je t'aurais mis +10 ca marche nickel et je n'ai pas eu à utiliser VB c'est génial !
T.