IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème de lecture d'un dictionnaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut Problème de lecture d'un dictionnaire
    Bonjour,

    J'ai un problème, j'arrive pas à retrouver mes valeurs de mon dictionnaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set mydico = CreateObject("Scripting.Dictionary")
            Set f = Sheets("mafeuille")
            For Each c In Range(f.[A2], f.[A65000].End(xlUp))
                If c = var And c.Offset(, 1) = ValeurARetourner Then mydico(c.Offset(, 2).Value) = (c.Offset(, 2).Value)
            Next c
            For i = 0 To mydico.Count - 1
                MsgBox mydico.Item(i)
            Next i
    le problème c'est que j'ai rien dans mon msgbox, il s'affiche le bon nombre de fois mais avec rien à l'intérieur

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     K= mydico.keys
    For i = 0 To mydico.Count - 1
                MsgBox mydico(k(i))
     Next i

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Merci rdurupt pour ta rapidité

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Au passage c'est MsgBox mydico.Items(i).
    avec un s
    eric

  5. #5
    Invité
    Invité(e)
    Par défaut
    tu as raison, mais comme je fais toujours comme ça, alors personnellement j'ai pas fait gaffe
    Dernière modification par AlainTech ; 01/05/2016 à 02h43. Motif: Suppression de la citation inutile

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Bonjour,
    ça change quoi avec un "s" au final ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    bonjour,
    vue que je fait toujours comme dans la solution que je tes proposé, je ne savais pas!

    maintenant que j'ai testé ça change tout! j'ai un message d'erreur ,donc reste sur ce que j'ai dit au premier poste!


    Citation Envoyé par eriiic
    Bonjour,

    Au passage c'est MsgBox mydico.Items(i)
    avec un s
    eric

  8. #8
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Un poil trop tard...
    Un objet dictionary étant très proche d'une Collection (possibilité de boucler avec For Each...), voici comment je procède habituellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub testdico()
    Dim dico As Object, c As Range, Cle As Variant
        'Création Objet
        Set dico = CreateObject("Scripting.Dictionary")
        'Remplissage
        For Each c In Range("A1:A4")
            dico(c.Value) = (c.Offset(, 2).Value)
        Next c
        'Restitution
        For Each Cle In dico.Keys
            Debug.Print Cle & " <==> " & dico(Cle)
        Next Cle
    End Sub

  9. #9
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    J'ai testé avec le "s" j'ai une erreur aussi (property set/get ....)

    Dans vos 2 cas, vous utilisez les clés du dictionnaire. Je pense que c'est une bonne solution.
    Au moins, elle fonctionne.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant] problème de lecture d'image
    Par shura dans le forum OpenGL
    Réponses: 16
    Dernier message: 03/07/2004, 18h05
  2. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 13h06
  3. problème de lecture base de registre
    Par pafounet3 dans le forum MFC
    Réponses: 10
    Dernier message: 31/12/2003, 14h06
  4. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 09h21
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo