Microsoft 365 formatage d'une suite de chiffres

  • Initiateur de la discussion Initiateur de la discussion Chapichapo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

Dernière édition:
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));""))
 
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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
75
Réponses
13
Affichages
210
Réponses
4
Affichages
102
Réponses
14
Affichages
180
Réponses
14
Affichages
483
Réponses
13
Affichages
405
Retour