VBA : appartenance à un tableau

  • Initiateur de la discussion Initiateur de la discussion Burg
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Burg

Guest
Bonjour à tous !

voici mon petit problème : j'aimerais tester chaque cellule d'une colonne saisie par les collègues afin de savoir si sa valeur appartient soit à un tableau déclaré dans une Sub (MonTableau= Array("A","B","C",...)), soit à une autre feuille cachée qui contiendrait les valeurs références. Il y a-t-il une formule magique qui permettrait d'y parvenir sans recourir à une boucle façon "for i= 1 to.. if activecell = feuillecachée!A1 then=...."

Merci. 🙂
 
Re : VBA : appartenance à un tableau

Bonsoir,
bonsoir skoobi 🙂

Tu peux également obliger la saisie via Données/Validation
Ainsi, ils seront obligés de saisir les bonnes valeurs
PS : pour une liste sur un autre onglet, il faut nommer la liste, et non utiliser son adresse..
 
Re : VBA : appartenance à un tableau

Je pensais effectivement nommer la zone de saisie ("choix_collegues") et la zone comprenant les données références ("liste_choix") et ensuite exécuter ces quelques lignes :

Dim cell As Range
For Each cell In Range("choix_collegues")
If cell = Range("liste_choix") Then MsgBox "bip" <--- Incompatibilité de type.
Next


Oui mais voilà, ça plante à <---. Mon "=" sur cette ligne doit se comprendre comme "appartient à" Range(liste_choix), et non "=". Une idée ?

Pas mal, bhbh, le coup du "Données/Validation", bien que ça ne résolve pas mon problème. Mais si la liste est sur une autre feuille, ça fonctionne pas, même en nommant la liste. Limitation d'Excel 2000 ?
 
Re : VBA : appartenance à un tableau

C'est excellent. Merci Boisgontier. Appliqué à mon cas, ça donne :

For i = 0 To 1000
If ActiveCell <> "" Then
compteur = compteur + 1
'comptage communes 'PMB-------------------------------------------------------
p = Application.Match(ActiveCell, Tableau69ComPMB, 0)
If IsError(p) Then
'MsgBox "communes MS"
Else
'MsgBox p '<-- renvoie la position dans Tableau69comPMB
Selection.Font.ColorIndex = 5 'bleu
nb_cl_pmb = nb_cl_pmb + 1
End If
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
Else: GoTo sortiefonction:
'fin comptage communes 'PMB-----------------------------------------------------
End If
Next i
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
925
Réponses
2
Affichages
892
Réponses
1
Affichages
663
E
Réponses
6
Affichages
1 K
erictran
E
O
Réponses
4
Affichages
1 K
Olocsob
O
P
Réponses
2
Affichages
970
Retour