Bonjour,
J'ai vraiment cherché à me document sur les loop for / each / next avant de vous solliciter mais je ne trouve pas mon erreur!
Je souhaite créer une procédure pour :
(1) parcourir une plage de cellules (ma sélection)
(2) y chercher des valeurs précises
(3) si elle les trouve ajouter un contenu dans une cellule appropriée
Exemple :
première cellule parcourue contient "AFCO", "AFET", "AGRI" => ajout d'un "M" dans les cellules correspondant aux entêtes de colonne "AFCO", "AFET", "AGRI" sur la même ligne ;
seconde cellule parcourue contient "AGRI", "AFCO" => ajout d'un "M" dans les cellules correspondant aux entêtes de colonne "AFCO", "AGRI" sur la même ligne ;
troisième cellule parcourue ne contient pas les valeurs recherchées => pas d'ajout
etc.
J'ai tenté la macro suivante :
Sub membership()
Dim cellule As Range
For Each cellule In Selection
If InStr(cellule, "AFCO") > 0 Then
Range("M" & Selection.Row).Value = "M"
End If
If InStr(cellule, "AFET") > 0 Then
Range("O" & Selection.Row).Value = "M"
End If
If InStr(cellule, "AGRI") > 0 Then
Range("P" & Selection.Row).Value = "M"
End If
Next cellule
End Sub
Je rencontre plusieurs problèmes :
(1) le contenu n'est ajouté que pour la première cellule parcourue, pas pour les suivantes! :-( Est-ce que mon loop fonctionne ? J'en ai 700 à tester, une par une ça va être long!
(2) j'aurai au total 74 valeurs à rechercher, la multiplication de 74 blocs if / end if ne sera-t-elle pas problématique ? L'utilisation de select case serait il préférable ici ?
Voilà, un grand merci d'avance pour votre aide et vos réponses!
Merci!