VBA, Appliquer "fonction" à chaque colonne

Bonjour à tous ,

je suis débutant en vba et nouveau sur ce forum.

Je vous expose mon probleme :

Dans la colonne A de mon fichier excel j'ai des codes de marchandises (le premier est en A2 le dernier en A21)

Si ces codes n'ont pas le format souhaité (composés de 4 caractères) la cellule devra apparaître en jaune

Exemple si le n° de code est "42" alors le fond de la cellule devra apparaître en jaune

si le n° de code est "1545" alors pas besoin de colorer la cellule

Voici mon "code":

Sub questionfournisseur()

Dim code As Integer

Sheets("Fournisseurs").Activate 'selection de la feuille fournisseur

Range("A2").Select

code = Len(ActiveCell.Value)

If code <> 4 Then

Selection.Interior.Color = RGB(155, 155, 155) 'je n'ai pas mit le jaune encore c'est juste pour les essais..

End If

End Sub

Mon problème réside dans le fait d'appliquer ce code dans toutes les colonnes de A qui comportent un code et de s'étendre si dans la colonne A on venait à rajouter une ligne.. j'ai essayé de faire des boucles mais sans succès... Car la mon code fonctionne mais uniquement pour la cellule A2 il faudrait qu'une fois que la cellule A2 ait été testé qu'il passe à la suivante etc jusqu’à la dernière cellule comportant un code..

Merci de votre aide j’espère que j'ai été suffisamment précis ..

Bonjour et bienvenu(e)

A tester

Sub questionfournisseur()
Dim Ligne As Long

  With Sheets("Fournisseurs")
    For Ligne = 2 To .Range("A" & Rows.Count).End(xlUp).Row
      If Len(.Range("A" & Ligne)) <> 4 Then
        .Range("A" & Ligne).Interior.Color = RGB(155, 155, 155)
      Else
        .Range("A" & Ligne).Interior.ColorIndex = xlNone
      End If
    Next Ligne
  End With
End Sub

Bonjour merci pour votre réponse alors le code fonctionne parfaitement ! mais dans l'idéal (je ne sais pas si c'est possible) j'aimerai que si on rajoute un code dans dans la colonne A qui n'a pas le bon format que la cellule se colore "automatiquement" sans relancer la macro..

Merci encore

Bonjour

Dans ce cas là le plus simple c'est de passer par une Mise En Forme Conditionnelle

Sélectionne A2:A21

Dans MEFC "Utiliser une formule ...."

Formule : =ET(A2<>"";NBCAR(A2)<>4)

Choisis le format et valide

Ok merci beaucoup !

Rechercher des sujets similaires à "vba appliquer fonction chaque colonne"