Vérifier format cellule

Résolu
Akatsucki Messages postés 94 Statut Membre -  
via55 Messages postés 14391 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

--
Akatsucki

4 réponses

  1. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
     
    Bonsoir,

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

    0
    1. Akatsucki Messages postés 94 Statut Membre
       
      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. The_boss_68 Messages postés 959 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
    1. Akatsucki Messages postés 94 Statut Membre
       
      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. Akatsucki Messages postés 94 Statut Membre
     
    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
  4. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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