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 :

Essai sur tableaux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut Essai sur tableaux
    Bonjour le forum!

    je fait un essai sur un post avec patricktoulon et sur les tableaux, j'avoue ne pas avoir tout compris alors je lance le post pour essayer de comprendre, pour beaucoup cela va être simple mais pas pour moi!

    Je n'ais pas de projet particulier, mais c'est juste un exercice personnel!

    pour débuter, j'ai 2 feuilles et je voudrais récupérer les informations sans doublons de ces deux feuilles sans doublons et je souhaiterais les lires 1 à 1 par un msgbox! donc voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Sub test()
     
    Dim MonDico As Object, Cellule As Range
    Dim e As Integer
    Dim tablo ' as ?
    Dim elem ' as ?
    Dim i As Integer
     
    e = 0
    Set MonDico = CreateObject("Scripting.Dictionary")
     
     With Sheets("feuil1")
            tablo = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
            For Each elem In tablo
                MonDico.Item(elem) = ""
                e = e + 1
            Next elem
        End With
     
      With Sheets("feuil2")
            tablo = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
            For Each elem In tablo
                MonDico.Item(elem) = ""
                e = e + 1
            Next elem
        End With
     
       For i = 0 To e
       MsgBox ????(i)
       Next i
    End Sub
    merci,

    jijie

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    tiens pour comprendre l'utilisation du Dictionary :

    Supprimer les lignes en double dans un fichier texte

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    J’ai repris ton exemple avec les données réparties dans la colonne A des feuil1 et feuil2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Explicit
    Sub test()
    Dim MonDico As Object
    Dim e As Integer, F As Integer, n As Integer
    Dim tablo, Feuille, k
     
        Set MonDico = CreateObject("Scripting.Dictionary")
        Feuille = Array("feuil1", "feuil2")
     
        For F = 0 To UBound(Feuille)
            With Sheets(Feuille(F))
                tablo = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
                For e = 1 To UBound(tablo)
                    If Not MonDico.Exists(tablo(e, 1)) Then MonDico.Add tablo(e, 1), tablo(e, 1)
                Next e
            End With
        Next F
     
        k = MonDico.keys
        For n = 0 To MonDico.Count - 1
            MsgBox "Elément n° " & n + 1 & " : " & k(n)
        Next n
     
    End Sub
    Cordialement

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour
    tu utilise "mondico pour la feuille 1 et 2 c'est pas bon a moins que tu veux mettre tout dans le meme dico
    ensuite pour ta derniere boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To e
       MsgBox mondico.item(i)
       Next i
    Au plaisir

    j'oubliais

    dans ton exercice tu utilise un tableau plus un dico .les deux n'ont pas la meme fonction

    avec un tableau tu peut lui affecter une plage de cellules tel quelle
    un dico fonctionne un peu comme un tableau mais n'acepte pas les doublons

    un tableau peut avoir plus de deux colonnes mais un dico n'en a que deux (cle/item)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Bonjour à vous trois!

    Donc patrick: ta réponse me donne aucun résultat ( ça n'enlève en rien tes compétences) par contre si je fait la c'est bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    d = MonDico.Keys
       For i = 0 To MonDico.Count - 1
       MsgBox d(i)
       Next i
    et oui je voulais faire un dico sur les deux feuilles!! Ne me demande pas pourquoi, car je voulais juste me compliquer la vie !

    Pour le reste il faut avouer que je commence à comprendre que le cheminement est comme par exemple une listbox!? je pense?

    Donc un peu d'explication:

    Ici on demande que si la donnée n'est pas dans mon dico then :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not MonDico.Exists(tablo(e, 1))
    Mais pourquoi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Then MonDico.Add tablo(e, 1), tablo(e, 1)
    Bon je continue à chercher pour comprendre !! et gFZT82 tn code fonctionne à merveille !

    dans ton exercice tu utilise un tableau plus un dico .les deux n'ont pas la meme fonction

    avec un tableau tu peut lui affecter une plage de cellules tel quelle
    un dico fonctionne un peu comme un tableau mais n'acepte pas les doublons

    un tableau peut avoir plus de deux colonnes mais un dico n'en a que deux (cle/item)
    ah!!!!?

    ça ne m'arrange pas ça!

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Tiens tu m'as donné une idée pour une réponse voilà :

    http://www.developpez.net/forums/d13...l/#post7296407

Discussions similaires

  1. pointeur sur Tableaux de structures
    Par Linu6 dans le forum C
    Réponses: 10
    Dernier message: 31/12/2007, 14h29
  2. Graph sur tableaux variables
    Par kenobyalex dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/10/2007, 12h01
  3. Recherche tutoriaux sur tableaux en vbs
    Par PROGDEV2paris dans le forum VBScript
    Réponses: 2
    Dernier message: 25/07/2007, 13h12
  4. AIDE sur Tableaux multidimensionnels
    Par orj30754 dans le forum C
    Réponses: 4
    Dernier message: 07/11/2006, 12h31
  5. [Tableaux] tri sur tableaux
    Par pounie dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2006, 21h19

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