VBA Conserver/ajouter des 0 significatifs

  • Initiateur de la discussion Initiateur de la discussion DB88
  • 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 !

DB88

XLDnaute Nouveau
Bonjour à tous,

Je sèche depuis plusieurs mois sur un petit problème, peut être l'un d'entre vous aura LA solution!

Je réalise une macro qui exporte les données d'un fichier excel dans un nouveau classeur.
Le fichier excel est remplie par un utilisateur et le classeur créé a pour but d'être intégré dans une base de donnée.

Dans ces données, il y a des nombres qui doivent être composé de 14 chiffres. Le problème est que certains utilisateurs ou excel (selon le format des cellules) oublient les "0" significatifs au début des nombres.
Et ces nombres de14 chiffres doivent être au format TEXTE dans le fichier créé.

La seule solution qui fonctionne est de forcer les cellules du fichier source au format texte et vérifier si chacune d'elle comporte bien 14 chiffres, ce qui peut être long et source d'erreur quand on a plusieur centaine de ligne à traiter puis de lancer la macro (et ça ne fonctionne pas à tous les coup).

Je n'ai pas LA solution qui permettrait de tester le nombre de carateres dans la cellule et rajouter suffisament de 0 dans le fichier cible. D'autant plus que des "espace" sont souvent présent à la suite des chiffres quand il manque des "0".

Le problème est simple mais impossible de trouver une solution....


Pour info, j'ai essayé de forcer à un format personnalité les cellules du fichier source en format personnalisé "#00000000000000" mais ça ne concerve pas les 0 apres exportation et me donne des formules du type 3,4435455345E+12,
J'ai essayé de travailler en chaine de caractère mais je n'ai pas trouvé comment coller des 0 au début de la chaine,
J'ai essayé de forcer le format des cellules du fichier créé en "#00000000000000" puis de le remettre en texte,
J'ai fouillé dans un maximum de forum sur internet...

Sans jamais rien trouver! Je tente ma chance sur ce forum qui déjà beaucoup aidé.

Merci à vous! (je pourrai survivre sans solution 😉
 
Re : VBA Conserver/ajouter des 0 significatifs

Bonjour DB88 et bienvenu 🙂

Deux pistes dans le fichier joint. Une par macro, l'autre par formule. Si on avait un fichier exemple, on pourrait être plus précis et efficace.
 

Pièces jointes

Re : VBA Conserver/ajouter des 0 significatifs

Bonsoir mapomme, Gareth, DB88
Bonsoir à tous,

Une autre façon de faire :
En m'appuyant sur le fichier de mapomme.
VB:
Sub Reformat1()
Dim xCell As Range, Plage As Range, x As String, z As String, y As Byte
Set Plage = Range("D1:D" & Cells(Rows.Count, "d").End(xlUp).Row)
Plage.NumberFormat = "@"
For Each xCell In Plage
  If Len(xCell.Value) < 14 Then
    x = xCell.Value
    y = 14 - Len(xCell.Value)
    z = Application.WorksheetFunction.Rept("0", y)
    xCell.Value = z & x
  End If
Next xCell
End Sub

Klin89
 
Dernière édition:
- 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
7
Affichages
249
Réponses
5
Affichages
116
Réponses
8
Affichages
391
Retour