Passer de 1,2,3,4,5,6,ou 7 caracteres à 8 en vba

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous,

Je suis en train de sècher sur un truc certainement tout bête comme d'hab. Voila, j'ai plusieurs colonnes dans mon fichier d'environ 47000 lignes dont je souhaite en vba "transformer" tous les nombres qui vont de 1 à 8 caractères en nombres à 8 caractères. Le format personnalisé "00000000" affiche le résultat recherché mais la valeur reste toujours à ce qu'elle était et non pas à "xxxxxxxx". J'espère e^tre assez clair pour que quelqu'un puisse m'orienter. Merci d'avance à tous.

Scoobidoo
 

Softmama

XLDnaute Accro
Re : Passer de 1,2,3,4,5,6,ou 7 caracteres à 8 en vba

Bonjour,

J'avoue ne pas trop comprendre ton problème : le format personnalisé 00000000 t'affiche tous tes nombres avec 8 chiffres, en plaçant des 0 devant. Pour moi, la valeur de 00000027 est la même que la valeur de 27. Je ne comprends pas ce qui te dérange du coup ? Essaie de préciser cet aspect... ou alors, c'est moi qui déraille ?
 

Scoobidoo

XLDnaute Occasionnel
Re : Passer de 1,2,3,4,5,6,ou 7 caracteres à 8 en vba

Bonjour Softmama,

Non sois rassuré tu ne déraille pas ! Effectivement la valeur "00000027" et la même que la valeur de "27" mais dans mon cas, ce fichier sert ensuite à un traitement qui nécessite que l'on ait 8 caratères. Ce qui veut dire que si l'affichage est bien "00000027", la "valeur" qui s'affiche dans la barre de formule est elle de "27" et c'est là mon problème. Il faut que dans la barre de formule aussi elle soit de "00000027". Peut être que cela n'est pas possible mais vu les problèmes qui sont résolus sur le forum je me dit qu'il y aura certainement quelqu'un qui pourra m'aider.
 

sylvain.piron

XLDnaute Nouveau
Re : Passer de 1,2,3,4,5,6,ou 7 caracteres à 8 en vba

Bonjour,
En Excel:

="" & DROITE("00000000" & A1; 8)
puis copier coller en valeur de la colonne.

En VBA sur la sélection:

Sub T()
Dim c as variant

For each C in Selection.cells
C.value = "'" & right("00000000" & C.value, 8)
next C
End Sub

Cordialement
Sylvain
 
Dernière édition:

flyonets44

XLDnaute Occasionnel
Re : Passer de 1,2,3,4,5,6,ou 7 caracteres à 8 en vba

Bonjour une petite macro qui fait le boulot, à adapter bien sur
Public Sub numcs()
' RECODIFICATION DE NOMBRE SUIVANT LE NOMBRE DE CHIFFRES
'de 6 à 10 'FLA 2010.06.12
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim Tablo, Derli&, Coef As Double, Ri&, Ci&
Dim K&, Rng As Range, Ici As Object
Set Ici = Range("F2") ' à adatper
Ri = Ici.Row
Ci = Ici.Column
Derli = Range("A65536").End(xlUp).Row
Cells(2, 1).Select
Columns(Ici.Column).Clear
Tablo = ActiveSheet.Cells(2, 1).Resize(Derli, 1).Value
For K = LBound(Tablo, 1) To UBound(Tablo, 1)
Coef = Len(Tablo(K, 1))
'de 6 chiffres à 10 chiffres
Select Case Coef
Case Is = 6
Coef = 100
Case Is = 7
Coef = 10
Case Is = 8
Coef = 1
Case Is = 9
Coef = 0.1
Case Is = 10
Coef = 0.01
End Select
Tablo(K, 1) = Coef * Tablo(K, 1)
Next
'MsgBox (UBound(Tablo))
'Retour du tableau dans la feuille des comptes renumérotés'
Range(Ici, Cells(Derli, Ci)) = Tablo
'autre solution
Set Ici = Range("F2").Resize(K - Ri, 1)
'Ici.Select
Ici = Tablo: Set Ici = Nothing
Erase Tablo
Application.Calculation = xlCalculationAutomatic
End Sub
Cordialement
Flyonets
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813