VBA excel

Fermé
Sorrow - Modifié par Sorrow le 19/01/2012 à 16:45
 Sorrow - 20 janv. 2012 à 09:44
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,

A voir également:

2 réponses

Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
19 janv. 2012 à 16:26
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
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 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
19 janv. 2012 à 16:41
Est-ce qu'avec VBA ça te conviendrait ??
0
Oui, enfaite le VBA sera bien mieux :)
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
19 janv. 2012 à 16:45
Je cherche ca et te donne la réponse ;)
0
Ok merci beaucoup de ton aide !
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
Modifié par Stringman621 le 19/01/2012 à 16:54
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
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 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
20 janv. 2012 à 09:16
Le format de la colonne doit être en Personnalisé et dans le type tu mets 12 fois 0 et ça devrait le faire ;)
0
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 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 338
Modifié par Stringman621 le 20/01/2012 à 09:42
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
Ok, merci beaucoup de ton aide précieuse :) !
0