Microsoft 365 formatage d'une suite de chiffres

Chapichapo

XLDnaute Junior
bonjour le forum

j'essaie de formater une suite de chiffres mais je n'y arrive pas.

quelqu'un peut-il regarder le fichier joint ?

merci de votre aide

1718978256356.png
 

Pièces jointes

  • ClasseurAA.xlsx
    20.9 KB · Affichages: 6

Chapichapo

XLDnaute Junior
bonjour
merci de votre réponse
en fait ce sont les chiffres que je dactylographie en fonction du problème et je dois les convertir en format de la cellule E5. En fait j'ai pas vu l'erreur cela doit être 00 aussi
Cordialement
 

Pièces jointes

  • ClasseurAA.xlsx
    21.3 KB · Affichages: 10

Chapichapo

XLDnaute Junior
Bonjour le forum
je reviens vers vous car j'ai un nombre sous le format :
00092201103
qui devrait se transformer avec la formule en AA: 000922-011.03
Or, les 0 s'effacent devant mais ils doivent rester.

Quelqu'un peut-il m'aider à adapter la formule pour que les 0 restent : je n'avais pas pensé à ce cas de figure.

Merci bcp de votre aide

PS je remets le fichier pour plus de facilité
 

Pièces jointes

  • ClasseurAA (1).xlsx
    21.3 KB · Affichages: 6
Dernière édition:

vgendron

XLDnaute Barbatruc
Bonjour

dans ton fichier.. il est ou l'exemple que tu donnes?
sinon... pas bien compris, et pas cherché à comprendre la formule

VB:
=SI(B5="pp";"AA  : "&TEXTE(GAUCHE(C5;6);"000000000")&"-"&STXT(C5;7;3)&"."&DROITE(C5;2);SI(B5="PM";SI(NBCAR(C5)=9;"BCE : 0"&GAUCHE(C5;3)&"."&STXT(C5;4;3)&"."&DROITE(C5;3);"AVT : "&GAUCHE(C5;4)&"."&STXT(C5;5;3)&"."&DROITE(C5;3));""))
 

jurassic pork

XLDnaute Occasionnel
Hello,
sinon c'est faisable avec une fonction personnalisée qui utilise les expressions régulières :
VB:
Function FrmRegex(str1, str2) As String
Dim regex As Object
Dim output
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "(\d{6})(\d{2})(\d{3})"
output = regex.Replace(str1, "$1-$2.$3")
regex.Pattern = ".*(\d{7})$"
output = "AA : " + output + " BB : " + regex.Replace(str2, "$1")
Debug.Print output
FrmRegex = output
End Function

Sub TestFrmRegex()
  Debug.Print FrmRegex("40625017527", "1032946594-9356500")
End Sub

AA : 406250-17.527 BB : 9356500

Je ne sais pas si on peut faire cela en formule avec les Regex de Excel 365 (que je n'ai pas)

Ami calmant, J.P
 

Chapichapo

XLDnaute Junior
Hello,
sinon c'est faisable avec une fonction personnalisée qui utilise les expressions régulières :
VB:
Function FrmRegex(str1, str2) As String
Dim regex As Object
Dim output
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "(\d{6})(\d{2})(\d{3})"
output = regex.Replace(str1, "$1-$2.$3")
regex.Pattern = ".*(\d{7})$"
output = "AA : " + output + " BB : " + regex.Replace(str2, "$1")
Debug.Print output
FrmRegex = output
End Function

Sub TestFrmRegex()
  Debug.Print FrmRegex("40625017527", "1032946594-9356500")
End Sub



Je ne sais pas si on peut faire cela en formule avec les Regex de Excel 365 (que je n'ai pas)

Ami calmant, J.P
Un tout grand merci Jp mais là cela dépasse mes petites compétences. Je n'y comprends rien....
Mon souci si le nombre ne commence pas par 000 la formule de Vgendron fonctionne excellemment bien . Le problème se pose quand cela commence par 000, ces 000 s'effacent
Bien cordialement et merci
 

jurassic pork

XLDnaute Occasionnel
Normalement si il doit y avoir toujours onze chiffres dans le premier nombre ce code fonctionne (des zéros sont rajoutés au début si il n'y a pas 11 chiffres) :
VB:
Function FrmRegex(str1, str2) As String
Dim regex As Object
Dim output
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "(\d{6})(\d{2})(\d{3})"
output = regex.Replace(Format(str1, "00000000000"), "$1-$2.$3")
regex.Pattern = ".*(\d{7})$"
output = "AA : " + output + " BB : " + regex.Replace(str2, "$1")
FrmRegex = output
End Function

Sub TestFrmRegex()
  Debug.Print FrmRegex("625017527", "1032946594-9356500")
End Sub

FrmRegex.png
 

Pièces jointes

  • ClasseurAA_JP.xlsm
    27.9 KB · Affichages: 1

Discussions similaires

Réponses
3
Affichages
358

Statistiques des forums

Discussions
314 628
Messages
2 111 336
Membres
111 104
dernier inscrit
JEMADA