VBA excel

Sorrow -  
 Sorrow -
Bonjour,

Je débute sur le vba.

J'ai un tableau excel, dans chaque colonne il y a des caractère ou non, et je voudrais donc dire que :

tant que dans les cellules de cette colonne le nombre de caractère est inférieur a 12(ou autre) ajouter un zéro ou espace a la fin de la chaine de caractère.

exemple

colonne A

15554
1546443
1148964
18463613
46468

facture
4186468

je voudrais qu'il y ai max 12 caractère donc remplacer la suite par 0

sa donnerai :

155540000000
154644300000
114896400000
184636130000
464680000000
000000000000
facture00000
418646800000

Voila j'espère que vous comprendrais

merci d'avance,

2 réponses

Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Salut !
Les zéros doivent être derrière obligatoirement car sinon tu sélectionne ta colonne est tu fais clic-droit en sélectionnant format de la cellule,
Ensuite tu choisis Personnalisé et tu met dans Type : 000000000000

Dis-moi si ça te convient
0
Sorrow
 
Je te remercie de ta réponse rapide, mais je recherche plutôt ça :

Il faudrait faire une boucle sur chaque cellule d'une colonne (A1 jusqu'à A150) qui ajoute un 0 a la fin de la chaine de caractère de la cellule( et même si il y a rien dans la cellule), jusqu'à que le total de caractère sois 12.

exemple:
dans une cellule j'ai ça
154qsg48
après la "macro" j'ai çà :
154qsg480000

Pourrai donner çà :

Tant que la somme des caractère d'A1est inférieur a 12
ajouter 0 a la fin du dernier caractère jusqu'à 12
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Est-ce qu'avec VBA ça te conviendrait ??
0
Sorrow
 
Oui, enfaite le VBA sera bien mieux :)
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Je cherche ca et te donne la réponse ;)
0
Sorrow
 
Ok merci beaucoup de ton aide !
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Voili Voilou :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
     
    If Left(Target.Address, 2) = "$B" And Target.Address <> "$B:$B" Then 
        Target.Value = Left(Target.Value & "000000000000", 12) 
    End If 

End Sub


En considérant que ta colonne de numéro de facture est la colonne B ;)

moins le quart : RICARD, moins 10 : PASTIS
Membre fondateur du FJH
0
Sorrow
 
Merci beaucoup de ton aide, j'ai juste remarqué que si la cellule est vide il y a qu'un zéro et non 12.
J'ai essayé de comprendre le code mais j'avoue que j'ai du mal si tu peux m'éclairer un peut,
car si je voudrais changer de colonne ou le nombre de zéro, j'ai essaye mais sans grande réussite :/

Merci d'avance,
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Le format de la colonne doit être en Personnalisé et dans le type tu mets 12 fois 0 et ça devrait le faire ;)
0
Sorrow
 
Merci c'est magique :)
Si jamais je veux mettre la colonne A et changer le nombre de 0 sur le code sa donnerai ça ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Left(Target.Address, 2) = "$A" And Target.Address <> "$A:$A" Then
Target.Value = Left(Target.Value & "00000000", 8)
End If
End Sub

Merci.
0
Stringman621 Messages postés 1308 Date d'inscription   Statut Membre Dernière intervention   340
 
Exactement tu as tout compris ;)

Par contre sur cette ligne :
Target.Value = Left(Target.Value & "00000000", 8) 

Si tu veux sur 12 caractères il faut bien laisser 12 au lieu de 8
0
Sorrow
 
Ok, merci beaucoup de ton aide précieuse :) !
0