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

Utilisation dictionary

  • Initiateur de la discussion Initiateur de la discussion niwiz
  • 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 !

niwiz

XLDnaute Nouveau
bonjour je suis actuellement bloqué avec ce probleme :

j'initialise mon dico
Code:
dim MonDicoSession as dictonary
Set MonDicoSession = New Dictionary
For i = 1 To nb
          MonDicoSession(PlgSetSynthèse(i, 1)) = PlgSetSynthèse(i, 1).Value
         End If
        Next i

ensuite je souhaiterais boucler sur une plage et verifier si la valeur correspond a un item du Dictionary, pour finalement le copier dans une variable array :
Code:
        Plg = .Range("A5:I" & .Range("A65536").End(xlUp).Row)    
        ReDim Tbl(1 To 9, 1 To 1)
    
        For i = 1 To UBound(Plg, 1)
        vall = MonDicoSession.Exists(PlgSet(i, 1).Value)
            [B][U]If vall Then[/U][/B]
            
                        C = UBound(Tbl, 2)
                            For x = 1 To 9 
                            Tbl(x, C) = Plg(i, x)
                            Next x

                        ReDim Preserve Tbl(1 To 9, 1 To UBound(Tbl, 2) + 1)
                       If Nbx = 0 Then Exit For
                        
            End If
        Next i

mon probleme se situe au niveau de la condition (if vall then) qui est sensé reconnaitre certaines valeur de la plage comme item présent dans le dictionary !

Merci d'avance. J’espère avoir été clair ^^.
 
Dernière édition:
Re : Utilisation dictionary

Bonjour,

difficile à dire comme ca juste avec un bout de code jeté sur un post... on ne vois d'ailleur pas toutes les déclarations des variables, voir peut être de ce coté...

bonne journée
@+
 
Re : Utilisation dictionary

bonjour

dim MonDicoSession as dictonary
Set MonDicoSession = New Dictionary
For i = 1 To nb
MonDicoSession(PlgSetSynthèse(i, 1)) = PlgSetSynthèse(i, 1).Value
End If >>>> ???? où est le if .... qui lui correspond
Next i


edit : Salut Pierrot
 
Re : Utilisation dictionary

Oui je sais bien et j'en suis désolé. J'ai simplement repris un bout du code et élagué un peut le tout. Mon but et simplement de savoir s'il y avait un moyen pour que mon MonDicoSession.Exists fonctionne. je peut essayé de fournir un fichier excel si c'est vraiment nécessaire.
 
Re : Utilisation dictionary

Bonjour à tous,
Essai de voir avec ce bout de code à modifier selon ton besoin.
Bruno
Code:
Dim tablo()
Set dico = CreateObject("Scripting.Dictionary")
For Each c In Range([a2], [a65000].End(xlUp))
  dico.Item(c.Value) = dico.Item(c.Value) 'remplissage dico
Next c


'recherche dans la plage
For Each c In Range([C2], [C65000].End(xlUp))
If dico.Exists(c.Value) And c.Value <> "" Then
i = i + 1
ReDim tablo(i)
tablo(i) = c.Value
End If
Next
 
Re : Utilisation dictionary

j'ai essayé d'appliquer ce que vous avez dit, mais sa n'a pas l'air de fonctionner. J'ai un ptit fichier excel pour aidé .

donc le but c'est d'associer Session et DC qui on été identifier dans l'onglet Synthése.

merci encore pour les propositions.
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
8
Affichages
233
Réponses
2
Affichages
124
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
Réponses
5
Affichages
241
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
3
Affichages
665
Réponses
4
Affichages
179
Réponses
2
Affichages
202
Réponses
10
Affichages
281
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…