Vérifier format cellule

Résolu
Akatsucki Messages postés 90 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je cherche un code vba pour vérifier plusieur colonne ... je m’explique Je récupère un tableau dans un autre fichier sauf que le format n’est pas toujours bon

Exemple je récupère une valeur : 88 hors je voudrais qu’elle soit au format 0088 donc je tape à la main ‘0088 car le format n’est pas le bon

Comment je peux vérifier cela par vba ? Et remplacer 88 par 0088 si c’est juste

PS: je n’est pas d’exemple à fournir pour vous guidez mieux
A voir également:

4 réponses

Yoyo01000 Messages postés 1639 Date d'inscription   Statut Membre Dernière intervention   167
 
Bonsoir,

il suffit de sélectionner la colonne et d'appliquer un format de cellule personnalisé :
00##

0
Akatsucki Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
 
Oui je sais comment le faire mais c’est pas que pour moi il y aura d’autre utilisateurs qui ce serviront de ce fichier et je pense qu’ils ne penseront pas à mettre le format à chaque fois ...

Donc j’aimerais avoir un moyen de vérifier automatiquement chaque cellule du tableau

Si j’ai 88 et que je clique sur format cellule je pense pas que ça va changer automatiquement le format à 0088 ou bien si ?

Ça peut être 888 aussi alors qu’il me faut 0888 ou bien 8888 donc le format est correct mais il le faut un moyen de vérifier cela
0
The_boss_68 Messages postés 952 Date d'inscription   Statut Membre Dernière intervention   182
 
Bonsoir,

P'être un truc comme ça dans une colonne supplémentaire

=SI(NBCAR(A1)=1;"000"&A1;SI(NBCAR(A1)=2;"00"&A1;SI(NBCAR(A1)=3;"0"&A1;SI(NBCAR(A1)=4;""&A1;0))))


Slts
0
Akatsucki Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Oui cela fonctionne certainement bien mais je ne veux pas rajouter de formule ou colonne

J’aimerais plutôt par vba du genre

For each cellule range("A1:A10")
If cellule.value = ....
End if
next

Enfin c’est un exemple cela

Cordialement
0
Akatsucki Messages postés 90 Date d'inscription   Statut Membre Dernière intervention  
 
J’ai fais un début de code mais je pense pas qu’il fonctionne correctement qui peut voir ou sont les fautes ?? Merci

Dim cel as range 
For each cel in Feuil12.range("M17:M43")
If len(cel) = 1 then
Cel.value = "000" & cel

If len(cel) = 2 then
Cel.value = "00" & cel

If len(cel) = 3 then
Cel.value = "0" & cel

If len(cel) = 4 then
Cel.value = "" & cel

Else
Cel.value ="0"

End if
End if
End if
End if

Next



0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 743
 
Bonsoir

Il y a plus simple, il suffit d'appliquer le format indiqué par Yoyo à tout changement dans la plage que tu auras définie

A mettre dans le worksheet de ta feuille12
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M17:M43")) Is Nothing Then Target.NumberFormat = "00##"
End Sub


ou si tu préfères une macro à lancer à part

Sub format_cellules()
For Each cel In Sheets("Feuil1").Range("M17:M43")
cel.NumberFormat = "00##"
Next
End Sub


Cdlmnt

Via
0