VBA : scripting.dictionary
Résolu/Fermé
A voir également:
- VBA : scripting.dictionary
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Vba range avec variable ✓ - Forum VB / VBA
- Vba autofill ✓ - Forum Excel
4 réponses
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
10 mai 2011 à 12:20
10 mai 2011 à 12:20
Bonjour,
L'objet dictionary ne tolère pas de doublon dans ses clés, sinon erreur 457
si on a besoin des doublons, cet objet ne convient pas
sinon il faut tester
L'objet dictionary ne tolère pas de doublon dans ses clés, sinon erreur 457
si on a besoin des doublons, cet objet ne convient pas
sinon il faut tester
if not.dico.exists(laclé) then dico.add laclé, unevaleurdépendantedelaclé end if
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
644
Modifié par pilas31 le 9/05/2011 à 17:19
Modifié par pilas31 le 9/05/2011 à 17:19
Bonjour,
Je ne crois pas (sauf erreur) qu'il soit possible d'initialiser d'un seul coup le dictionnaire. La méthode Add n'accepte que des couples (clé, valeur).
Je suggère de modifier le code comme cela :
A+
Cordialement,
Je ne crois pas (sauf erreur) qu'il soit possible d'initialiser d'un seul coup le dictionnaire. La méthode Add n'accepte que des couples (clé, valeur).
Je suggère de modifier le code comme cela :
Set dict1 = CreateObject("Scripting.Dictionary") Set dict2 = CreateObject("Scripting.Dictionary") Derlig = Range("A65536").End(xlUp).Row For lig = 1 To Derlig dict1.Add Cells(lig, 1), Cells(lig, 2) dict2.Add Cells(lig, 1), Cells(lig, 3) Next lig
A+
Cordialement,
Merci pour ta réponse mais ça ne me résout pas mon problème. J'ai toujours la même erreur.
Est ce qu'il est possible sinon, de créer 2 macros pour la même feuille?!
Est ce qu'il est possible sinon, de créer 2 macros pour la même feuille?!
Bonjour Michel,
merci pour ta réponse mais je ne peux pas utiliser cette solution dans mon cas.
En fait, en refaisant mon algorythme, je pense pas être partie dans la bonne direction.
Mon algo est le suivant:
DEBUT
Chercher dans [Classeur2]Feuil1!ColA les lignes où on trouve la valeur F2
SI B2 n'est pas dans ces lignes en [Classeur2]Feuil1!ColB ALORS
Print "Valeur B incompatible"
SINON
SI C2 n'est pas dans ces lignes(avec F2 et B2)en [Classeur2]Feuil1!ColC ALORS
Print "Valeur C incompatible"
FINSI
FINSI
FIN
Tout ça pour vérifier si les valeurs tapées en B2 et C2 du Classeur1 correspondent bien à un triplé (unique) dans le classeur2!A,B,C. En sachant qu'on a déjà la valeur en F2.
Voila, si quelqu'un se sent l'âme à m'aider
merci pour ta réponse mais je ne peux pas utiliser cette solution dans mon cas.
En fait, en refaisant mon algorythme, je pense pas être partie dans la bonne direction.
Mon algo est le suivant:
DEBUT
Chercher dans [Classeur2]Feuil1!ColA les lignes où on trouve la valeur F2
SI B2 n'est pas dans ces lignes en [Classeur2]Feuil1!ColB ALORS
Print "Valeur B incompatible"
SINON
SI C2 n'est pas dans ces lignes(avec F2 et B2)en [Classeur2]Feuil1!ColC ALORS
Print "Valeur C incompatible"
FINSI
FINSI
FIN
Tout ça pour vérifier si les valeurs tapées en B2 et C2 du Classeur1 correspondent bien à un triplé (unique) dans le classeur2!A,B,C. En sachant qu'on a déjà la valeur en F2.
Voila, si quelqu'un se sent l'âme à m'aider