problème de zero

ntan-évindi

XLDnaute Occasionnel
"le zero ce n'est pas moi (enfin j'espère!), mais quelques cellules excel sans le premier zero"

Bonjour à toutes et à tous,

Les codes des salariés sont sous la forme 4000111, sauf quelques exceptions qui sont sous la forme 0400112, donc bien sur, lors de l'export vers un fichier excel, ce dernier enlève les 0 en tête, qu'il considère comme inutile et me reporte 400112, ce qui est gênant pour les rechercheV.

Je pourrais le faire à la main, au risque d'en oublier, ajouter une colonne avec comme ci-dessous:
400726 0400726
=SI(NBCAR(B12)<7;GAUCHE(0;1)&B12;B12)
Mais plutôt que d'ajouter une colonne je cherche une idée pour un code à incorporer à une macro qui le fait déjà diverses choses.
Quelqu'un a t-il une idée à me proposer.
D'avance merci.
Cordialement
Ntang
 

soenda

XLDnaute Accro
Re : problème de zero

Bonjour le fil, ntan-évindi

Si les codes sont des nombres à 7 chiffres,
tu peux utiliser le format "0000000"

A plus :)

PS : En VBA (Selection étant la zone/colonne concernée)
Code:
Selection.NumberFormat = "0000000"
 
Dernière édition:

ntan-évindi

XLDnaute Occasionnel
Re : problème de zero

Bonjour Soenda,

Merci pour cette réponse, cependant je fais d'abord un export de ce fichier au format excel (sans d'ailleurs pouvoir choisir le type de fichier excel que je souhaite).
Ensuite je fais une copie que j'incorpore à un classeur et ce nouvel onglet fait l'objet d'une macro pour découper les informations et les dispatcher à différents endroits.
C'est pourquoi je souhaitais compléter ma macro avec un code pour imposer le format.
Cdt
Ntang
 

mth

XLDnaute Barbatruc
Re : problème de zero

bonjour ntan-évindi, soenda :)

Un petit essai avec ce code (en faisant l'hypothèse que les cellules soient en format texte, au cas où)

Code:
Sub Macro1()
With Sheets("Feuil2")
    For i = 1 To .Range("A65530").End(xlUp).Row
            .Cells(i, 1).NumberFormat = "@"
            .Cells(i, 1) = Application.Rept("0", 7 - Len(.Cells(i, 1))) & .Cells(i, 1)
    Next i
End With
End Sub

Bon après-midi,

mth
 

ntan-évindi

XLDnaute Occasionnel
Re : problème de zero

Merci mth,

Je vais essayer ton code,
comme j'ai différents tableaux successifs sur ma feuille je ne souhaite pas remonter à partir de la dernière cellule, et que je peux remplacer Range("A65530") par Range("E12:E250).
Ton code est fait pour imposer le format 7 zéros, mais pour imposer à une autre colonne le format décimal 0,00au lieu du format 0.00 ?

Merci encore.
Cordialement
Ntang
 

mth

XLDnaute Barbatruc
Re : problème de zero

re :)

Il me semble que les formats de nombres sont aussi fonction des paramètres régionaux tels que définis sur ta machine.
En te lisant je me suis dit que tu avais des colonnes de chiffres avec des séparateurs "point", alors que ton séparateur décimal était la virgule.

Dans le doute et au cas où, un essai de petit code pour changer le point en virgule, colonne E (chiffre 5) pour les lignes 12 à 250:
Code:
Sub Macro1()
With Sheets("Feuil1")
    For i = 12 To 250
            .Cells(i, 5).Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
            
    Next i
End With
End Sub

Bonne soirée,

mth
 

Cousinhub

XLDnaute Barbatruc
Re : problème de zero

Bonsoir, le fil & Forum

Hi, Mireille :):)

Sans boucle, en utilisant la fonction "Convertir" de "Données"...

Code:
Sub Macro3()
Columns(5).TextToColumns Destination:=Range("E1"), DecimalSeparator:="."
End Sub

Bonne soirée, dans la "fraîcheur" de la fin d'hiver......(31° à 20H00)....
 

Discussions similaires

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 452
dernier inscrit
hamzamounir