Extraction d'un chiffre d'un TextBox en format spécial en VBA

Fermé
anakin_74 - 21 nov. 2014 à 15:24
anakin_74 Messages postés 40 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022 - 25 nov. 2014 à 08:35
Voici mon problème :

J'ai réalisé un UserForm avec un TextBox dans lequel je mets 1 chiffre de 1 à 9999.

Je voudrai, quand j'éxécute ce UserForm, que la valeur de la case ce transfert dans une case d'une feuille Excel (cette partie je sais le faire!), mais avec format spécial(ça je ne sais pas faire!).
Je ne veux pas que ce format soit simplement en apparence mais en dur dans la cellule, car cette cellule me permet de créer à chemin d'accès à des dossiers.
Pour l'instant ma macro actuelle fonctionne pour tous les chiffres au dessus de 1000 (parce que les dossiers sont nommés avec 4 chiffres EX: 0274). Vu que j'ai plus 4000 dossiers je ne veux pas me palucher le renommage des dossiers 1 à 1!!!!!

Exemple format voulu:
1 deviendrai 0001
10 deviendrai 0010
100 deviendrai 0100
1000 resterai 1000

Merci d'avance pour l'aide
A voir également:

2 réponses

ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié par ccm81 le 21/11/2014 à 15:42
Bonjour

Utilises une petite fonction pour formater ton résultat sur nc chiffres avant de l'envoyer dans la feuille, par exemple celle ci

Function FormateNombre(s As String, nc As Long) As String
If Len(s) >= nc Then
FormateNombre = s
Else
FormateNombre = String(nc - Len(s), "0") & s
End If
End Function

Cdlmnt
0
anakin_74 Messages postés 40 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022
24 nov. 2014 à 14:31
Merci pour ta réponse.

Je comprends bien le principe de ta fonction.

Mais comment intégrer ce résultat dans ma procédure?

Je sais que ci-dessous ça ne fonctionne pas (j'ai créé un petit exemple)

J'ai mis TA fonction dans le même module que MA procédure

Sub TestFormat()

s = Range("A1").Value ' case d'origine du résultat
nc = 4 ' nombre de chiffre souhaité

Range("B1").Value = FormateNombre 'case avec transformation

End Sub

Acceptes mes excuses pour mon ignorance, mais je suis autodidacte.
si tu pouvais corriger mon exemple. Encore merci
0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
24 nov. 2014 à 16:23
Un petit fichier exemple
https://www.cjoint.com/?3KyqDjNi8gX

Cdlmnt
0
anakin_74 Messages postés 40 Date d'inscription mercredi 9 octobre 2013 Statut Membre Dernière intervention 17 novembre 2022
25 nov. 2014 à 08:35
Merci pour ton aide c'est exactement mon besoin. De plus je comprends le fonctionnement
0