Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestion d'une collection

J-Charles

XLDnaute Occasionnel
Bonjour à tous,

Sur une plage de cellules "Plage1", si une cellule est vide, j'alimente la collection "CollectMle" par la valeur de la cellule située à gauche sur la même ligne. Dans un autre onglet de ma feuille de calcul, en balayant une plage de cellules "Plage2", j'aimerais pouvoir déclencher une commande à chaque fois que la valeur d'une cellule de Plage2 est contenu dans la collection "CollectMle".
En fait j'aimerais vérifier si une valeur appartient à une collection.

Merci d'avance pour votre aide
 

J-Charles

XLDnaute Occasionnel
Re : Gestion d'une collection

Voici un fichier avec un exemple de ce que j'aimerais obtenir
Merci d'avance
 

Pièces jointes

  • Classeur1.xlsm
    17.8 KB · Affichages: 51
  • Classeur1.xlsm
    17.8 KB · Affichages: 54
  • Classeur1.xlsm
    17.8 KB · Affichages: 50

pyfux

XLDnaute Occasionnel
Re : Gestion d'une collection

Bonjour,

Attention, faire le .End sur la colonne B et non la A!

Code:
   'Vérifie dans la plage de cellule B1 à B14 (Plage2) si une des valeurs appartient à la collection
   Sheets("Feuil2").Activate
   DerLigne2 = Range("B" & Rows.Count).End(xlUp).Row
   Set Plage2 = Range("B1:B" & DerLigne2)
   For Each Cellule In Plage2
        'if ??????   then cellule.offset(0,1)="Vide"
        If ItemExistInCollection(CollectMle, Cellule.Value) Then
            Cellule.Offset(0, 1).Value = "vide"
        End If
   Next Cellule

Petite fonction:
Code:
Private Function ItemExistInCollection(poCol As Collection, psKey As String)
On Error GoTo ErrorHandler
ItemExistInCollection = IIf(poCol.Item(psKey) = "", False, True)
Exit Function
ErrorHandler:
ItemExistInCollection = faux
End Function

L'accès à l'item de la collection nommé psKey peut échouer si il n'existe pas. VBA provoque alors dans ce cas une erreur qu'il faut intercepter.
Petite "astuce": dans le cas ou l'élément de la collection est chaine vide, considère qu'il n'existe pas.

J'attend les remarques des puristes VBA...
 

J-Charles

XLDnaute Occasionnel
Re : Gestion d'une collection

Je te remercie Pyfux c'est tout à fait ce que je recherchais. Par contre je n'ai pas compris ta remarque à propos de .end.
Je te remercie c'est sympa de ta part.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…