Vérifier format cellule

Résolu
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

--
Akatsucki

4 réponses

  1. Bonsoir,

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

    0
    1. 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
  2. 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
    1. 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
  3. 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
    1. 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