ajouter des "0" devant des chiffres

kastor

XLDnaute Junior
Bonjour,

J'ai des codes entre 1 et 9999. Mon problème est que je voudrais uniformiser mes codes en code à 4 chiffres.

Ex :

9999 > 9999
1 > 0001
105 > 0105

quelle macro puis-je utiliser pour ajouter les "0" manquant ?

Merci d'avance.
 

ROGER2327

XLDnaute Barbatruc
Re : ajouter des "0" devant des chiffres

Bonjour à tous.


c'est pas faux. merci pierrot !
trop de macros tuent les macros !
P'têt' ben qu'oui, p'têt' ben qu'non.
La solution du formatage 0000 ne modifie que l'affichage de valeur, pas la valeur elle-même. Ce peut être quelquefois gênant. Par exemple : si on met 0 en A1 formaté 0000, on voit effectivement 0000.
Si B1 contient
Code:
="Code "&A1
on voit Code 0.
On aimerait peut-être voir Code 0000.
En ce cas, la "macro" n'est pas superflue. Cela, par exemple :​
VB:
Sub ZéroDevant()
Dim l&, n&, Cel As Range
    l = Val(InputBox("Longueur du code ?", , 4))
    If l > 1 Then
        For Each Cel In Selection.Cells
            With Cel
                If Not IsEmpty(.Value) Then
                    If IsNumeric(.Value) Then
                        If Len(CStr(.Value)) < l Then
                            .Value = "'" & Right$(String(l, "0") & CStr(.Value), l)
                            n = n + 1
                        ElseIf Len(CStr(.Value)) = l Then
                            .Value = "'" & CStr(.Value)
                        End If
                    End If
                End If
            End With
        Next
    End If
    MsgBox IIf(n, n, "Aucun") & " code" & IIf(n > 1, "s", "") & " modifié" & IIf(n > 1, "s", "") & "."
End Sub
Sélectionner les cellules à traiter et exécuter la procédure (Ctrl m dans le classeur joint).



ROGER2327
#6758


Mardi 10 Phalle 140 (Sainte Nitouche, orante - fête Suprême Quarte)
3 Fructidor An CCXXI, 4,0224h - lycoperdon
2013-W34-2T09:39:13Z
 

Pièces jointes

  • XLD_209788_ZéroDevant.xlsm
    16.9 KB · Affichages: 49

kastor

XLDnaute Junior
Re : ajouter des "0" devant des chiffres

Bon, me voilà confronté à un nouveau problème....

comment faire pour conserver les 4 caractères en les fusionnant ?


voici le code que j'utilise

Range("AH12").Value= "=RC[-21]&R[-1]C[-21]"

avec pour

"=RC[-21] (la valeur 0001)
et
R[-1]C[-21]" (la valeur 0002)

mais avec ce code, j'obtiens 12 au lieu d'avoir 00010002.

ça doit être tout simple, mais je sèche....
 
Dernière édition:

Discussions similaires

Réponses
18
Affichages
621

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé