Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres avez vous plus simple que ça (challenge)

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
m’étant remis sur mes fonction perso (lettres/nombres )et vise et versa
je modifie un peu les écriture
je me demande si quelqu'un connait quelque chose de plus simple que ça

le but et d'obtenir une chaîne composé de sous chaîne de 3 chiffres

VB:
Sub test()
testing "1"
testing "22"
testing "8739"
testing 5378745
End Sub

Function testing(chaine As String)
chaine = Trim(Replace(Format("000" & chaine, Application.Rept("000 ", Len(chaine))), "000 ", ""))
Debug.Print chaine
End Function
résultat pour les exemple ci dessus
001
022
008 739
005 378 745
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
CHOISIR en français sous XL:
C'est intéressant quand on doit choisir des valeurs arbitraires en fonction d'un index.
Ou très sympa l'exemple que donne MS et que je ne connaissais pas :
VB:
=SOMME(CHOISIR(2;A1:A10;B1:B10;C1:C10))
est évaluée comme : =SOMME(B1:B10)
Ca ouvre des perspectives.
 

Dudu2

XLDnaute Barbatruc
C'est quoi ce Chr(160) ? J'ai pas besoin de ça pour la faire fonctionner la fonction ?
C'est le blanc insécable ? Il faut le mettre où chez vous ?
Franchement ça me dépasse ! Bon j'ai pas tout suivi non plus.
VB:
Function testing(chaine As String) As String
    testing = String(2 - (Len(chaine) - 1) Mod 3, "0") & Format(chaine, "#,##0")
    Debug.Print testing
End Function
 
Dernière édition:

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonsoir le fil, le forum

Une autre façon, très rapide aussi.

Bien cordialement, @+
VB:
Function testing$(ByVal Chaine$)
Chaine = Right("00" & Format(Chaine, "#,##0"), (-Int(Len(Chaine) / -3) * 4) - 1)
Debug.Print Chaine
End Function
 

patricktoulon

XLDnaute Barbatruc
re
voilà est ce que l'on est bon là

merci des retours
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…