Vérifier format cellule [Résolu]

Signaler
Messages postés
75
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
24 mars 2021
-
Messages postés
12984
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
8 avril 2021
-
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

4 réponses

Messages postés
1462
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
5 avril 2021
149
Bonsoir,

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

Messages postés
75
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
24 mars 2021

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
Messages postés
770
Date d'inscription
dimanche 15 novembre 2015
Statut
Membre
Dernière intervention
5 avril 2021
131
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
Messages postés
75
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
24 mars 2021

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
Messages postés
75
Date d'inscription
jeudi 1 octobre 2020
Statut
Membre
Dernière intervention
24 mars 2021

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



Messages postés
12984
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
8 avril 2021
2 167
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