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 :

Vider une collection, incompréhension


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 : 52
    Localisation : France, Nord (Nord Pas de Calais)

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

    Je fais des petits tests pour vider une collection.
    Avec For/Next ET Step -1 aucun souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i&, T#, C As Collection, N&
        N = 10000
        Set C = New Collection
        For i = 1 To N
            C.Add i, CStr(i)
        Next i
        T = Timer
        For i = N To 1 Step -1
            C.Remove i
        Next i
        Debug.Print "Vidé avec For - Next " & Timer - T
    Pas de souci, si ce n'est la lenteur induite.
    Autre solution qui ne pose pas de souci : Nothing :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim i&, T#, C As Collection, elem, N&
        N = 10000
        Set C = New Collection
        T = Timer
        For i = 1 To N
            C.Add i, CStr(i)
        Next i
        Debug.Print "Remplit en : " & Timer - T:
        T = Timer
        Set C = Nothing
        Debug.Print "Vidé avec Nothing " & Timer - T
    Là ou je ne comprend pas, c'est la logique de la boucle For Each...
    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
    Dim i&, T#, C As Collection, elem, N&, Tb()
        N = 100
        Set C = New Collection
        For i = 1 To N
            C.Add i, CStr(i)
        Next i
        i = 0
        On Error GoTo Suite
        T = Timer
        For Each elem In C
            i = i + 1
            ReDim Preserve Tb(1 To i)
            Tb(i) = elem
            C.Remove elem
        Next
        Debug.Print "Vidé avec For Each " & Timer - T
    Suite:
        Debug.Print "Planté à l'indice : " & i & " -- Nb d'éléments restants : " & C.Count
        Debug.Print Join(Tb, " - ")
    Le résultat, dans la fenêtre d'exécution est :
    Planté à l'indice : 40 -- Nb d'éléments restants : 61
    1 - 2 - 4 - 5 - 7 - 9 - 10 - 12 - 13 - 15 - 17 - 18 - 20 - 22 - 23 - 25 - 26 - 28 - 30 - 31 - 33 - 34 - 36 - 38 - 39 - 41 - 43 - 44 - 46 - 47 - 49 - 51 - 52 - 54 - 56 - 57 - 59 - 60 - 62 - 64
    Je crois comprendre cette ligne : Planté à l'indice : 40 -- Nb d'éléments restants : 61 si le nombre d'éléments est 100, il y a une cohérence.
    Mais par contre :
    Je prends 1 --> je le supprime ==>> il passe à 2 ok, normal
    Je prends 2 --> je le supprime ==>> il passe à 4 ????
    Je prends 4 --> je le supprime ==>> il passe à 5 ok, normal
    Je prends 5 --> je le supprime ==>> il passe à 7 ????
    Je prends 7 --> je le supprime ==>> il passe à 9 ????
    Je prends 9 --> je le supprime ==>> il passe à 10 ok, normal
    etc...
    Voici donc mes deux questions :
    1. Qu'elle logique suit donc cette boucle For Each?
    2. La collection est-elle bien vidée avec Nothing (ne reste t'il vraiment rien en mémoire) ? [Parce que le temps d'exécution entre la boucle et Nothing est juste hallucinant!]

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il me semble qu'un For Each avec une suppression va réagir comme de vouloir supprimer des lignes en bouclant du début au lieu de la fin ?

    essaye de suivre le contenu de ta collection en pas à pas à chaque passage du Remove, tu risques d'y voir des "sauts d'indices" qui n'en sont pas réellement, et un plantage survenant au moment où tu interrogeras un Elem dépassant la limite de ta collection.

    Appliquer Nothing à un objet, c'est effectivement le vider totalement de la mémoire, un petit visu des variables locales sur la ligne où tu Nothing la collection te le montrera quand tu exécuteras la ligne en question

  3. #3
    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 : 52
    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 Joe,

    Merci de ta réponse.
    Suivre en pas à pas, c'est ce que j'ai fait.
    J'ai en effet observé des "sauts d'indice".
    Effectivement, le Remove plante quand l'indice à supprimer n'existe plus.
    Tout cela, je l'avais bien compris.

    Ce que je ne comprends pas c'est la logique de ces "sauts d'indice".
    1 - 2 - 4 - 5 - 7 - 9 - 10 - 12 - 13 - 15 - 17 - 18 - 20 - 22 - 23 - 25 - 26 - 28 - 30 - 31 - 33 - 34 - 36 - 38 - 39 - 41 - 43 - 44 - 46 - 47 - 49 - 51 - 52 - 54 - 56 - 57 - 59 - 60 - 62 - 64
    La logique de suppression qui saute une ligne sur deux, je comprends (boucler de la fin au début pour éviter cela), mais dans la boucle For Each, je ne comprends pas la logique...
    1 - 2 [saut] 4 - 5 [saut] 7 [saut] 9 - 10 [saut] 12 - 13 [saut] 15 [saut] 17 - 18 [saut] 20 [saut] 22 - 23 [saut] 25 - 26 [saut] 28 [saut] 30 - 31 [saut] 33 - 34 [saut] 36 [saut]
    38 - 39 [saut] 41 [saut] 43 - 44 [saut] 46 - 47 [saut] 49 [saut] 51 - 52 [saut] 54 [saut] 56 - 57 [saut] 59 - 60 [saut] 62 [saut] 64

    EDITH : pour :
    petit visu des variables locales sur la ligne où tu Nothing la collection

  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 re
    re
    @franck

    d'apres toi que fait tu dans ta ligne
    c.remove elem dans une boucle for each?????

    pour t'en rendre compte il te suffit de faire un debug.print i & "--" & elem dans ta boucle

    c'est exactement pareil qu'avec un dico

    c.remove index pas sa valeur hors elem est sa valeur et donc ton goto suite fait sauter ton debug et passe a la suivante

    n'oublie pas aussi que l'index du premier est zer0

    for each elem ---->>>>elem donne la valeur
    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
    Invité
    Invité(e)
    Par défaut
    Un remove dans une collection c'est comme un EntierRow.delete!

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour à tous
    Une collection se vide en supprimant son premier élément autant de fois que le nombre d'éléments.
    En supprimant l'index 1, l'ancien index 2 devenant l'index 1, pardi , etc ...
    Démo --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim macol As New Collection
    For k = 1 To 10
      macol.Add k, k & "a"
    Next
    MsgBox macol.Count
    For k = 1 To macol.Count
      macol.Remove (1)
    Next
    MsgBox macol.Count

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    (début du post dans le RER)

    Hello,

    Malheureusement pas devant mon Excel ,
    pijaku tu as toujours le chic pour trouver la petite bête, mais c'est cool

    (Après RER manque de temps mais me revoilà)

    Coucou tout le monde ,

    tu m'as enlevé les mots du post Jacques , pour moi tes explications sont suffisantes et je pensais la même chose…

    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
    Sub MaCollForEach()
    Dim Coll As New Collection
        For i = 1 To 40
            Coll.Add i, CStr(i) ' ici l'item est égale à l'indice de la clé pour montrer le décalage à la suppression
        Next
    On Error Resume Next
        For Each C In Coll
            k = k + 1
            MsgBox "Indices Réels = " & k & "    -    " & "Resultat Coll = " & C & "=> " & vbCrLf & "Resultat du décalage => Valeur Coll moins le supposé indice k : " & C - k
            Debug.Print "Indices Réels = " & k & "    -    " & "Resultat Coll = " & C & "=> " & vbCrLf & "Resultat du décalage => Valeur Coll moins le supposé indice k : " & C - k
            Coll.Remove (C)
            If Err Then Exit For
        Next
    On Error GoTo 0
     
            MsgBox "Nb d'indices dans la collection : " & Coll.Count
            Debug.Print "Nb d'indices dans la collection : " & Coll.Count
    End Sub
    Edit : peut être que j'aurais du utiliser autre chose que Indices Réels mais c'est pour le principe afin de montrer ce décalage
    => petite modif : j'espère être plus clair
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    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 re
    oui jacques elle est la son erreur
    non seulement il perd 1 item mais en plus dans sa macro il incrémente i de +1

    comme elem de for each ne correspond plus a partir du moment ou il en a supprimé un, c'est walouh: le goto suite est déclenché a chaque tour

    en gros la collection se reconstruit totalement a chaque suppression, tandis que la boucle tourne toujours sur la collection de base
    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

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    dans ton exemple tu ajoute n ligne à ta collection si c'est l'équivalent du Clear que tu veux !voila!
    Code Clear : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     N = 10000
    Set C = New Collection
        For i = 1 To N
            C.Add i, CStr(i)
        Next i
        T = Timer
    Set C = New Collection

  10. #10
    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 re
    regarde ce que donne le debug a chaque tour valide
    ton code tel qu'el avec un debug
    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
    Sub test3()
    Dim i&, T#, C As Collection, elem, N&, Tb()
        N = 100
        Set C = New Collection
        For i = 1 To N
            C.Add i, CStr(i)
        Next i
        i = 0
        On Error GoTo Suite
        T = Timer
        For Each elem In C
            i = i + 1
            Debug.Print i & "---" & elem
            ReDim Preserve Tb(1 To i)
            Tb(i) = elem
            C.Remove elem
        Next
        Debug.Print "Vidé avec For Each " & Timer - T
    Suite:
        Debug.Print "Planté à l'indice : " & i & " -- Nb d'éléments restants : " & C.Count
        Debug.Print Join(Tb, " - ")
    End Sub
    c'est pas plus compliqué que cela
    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

  11. #11
    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 : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Mea Culpa, je me suis mal fait comprendre.

    Bonjour à tous,

    Merci de m'avoir retrouvé ici...

    Je sais "delete" une collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CollDelete(C As Collection)
        Set C = Nothing
    End Sub
    Je sais également "clear" une collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CollDelete(C As Collection)
        Set C = New Collection
    End Sub
    Je sais supprimer un à un le contenu d'une collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub VideColl(C As Collection)
    Dim i&
        For i = C.Count To 1 Step -1
            C.Remove i
        Next i
    End Sub
    Ce que je ne comprends pas (et je sais que c'est totalement farfelu ET inutile), c'est la logique des "sauts" dans le For Each avec Remove...

  12. #12
    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 re
    c'est logique
    le remove est en fin condition donc a chaque retour de goto un sur deux est pris sauf que comme je te l'ai montré avec le debug l'index "I" ne correspond pas a la valeur de elem et donc c(i) ne correspond pas a elem
    voila tout

    en gros tu ne peux pas faire c.remove elem comme un dico car tu incrémente ton " I" avec une condition donc des que c'est décalé(a partir du 2)

    tu passe par goto suite forcement tout le temps
    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

  13. #13
    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 re
    re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x=round(rnd*100)
    For Each elem In C
            i = i + 1
            Debug.Print i & "---" & elem
            ReDim Preserve Tb(1 To i)
            Tb(i) = elem
           if i=x then  C.Remove elem
        Next
    essaie cela dans ton code et regarde a partir de ou ca saute maintenant
    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

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Microsoft a développé un seul objet collection et bon nombre d'objets en héritent,comme range les liste en général etc...

    Quand on ne parvient pas à expliquer l'aspect technique on cherche un autre méthode! L'aspect visuel me semblait intéressante.

    Dans ma collection si je fais add 1,"1" je donne un clé égal a la position ordinale, add 1 suffisait!

    Add 1,"k1" la on désindexe la clé et la positon dans la collection!

  15. #15
    Invité
    Invité(e)
    Par défaut
    tu peux identifier un collection par sa position ordinal comme une cellule excel cells(1,1) ou par son nom range("A1")

    si tu supprime par la position ordinale l’item 2 devient le 1!

    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
    Private Sub test()Set C = New Collection
        For i = 1 To 10
            C.Add "Liste " & i, "Liste " & i
        Next i
        i = 0
        t = Timer
        i = 1
        For Each elem In C
           C.Remove "Liste " & i
           i = i + 1
        Next
        Debug.Print "Vidé avec For Each " & Timer - t & " -- " & C.Count
     
     
    End Sub

  16. #16
    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 : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    si tu supprime par la position ordinale l’item 2 devient le 1!
    Ok.
    Cela explique pourquoi l'on passe de 1 à 2 puis de 2 à 4.
    Mais cela n'explique toujours pas le passage de 13 à 15, de 15 à 17 et de 17 à 18...
    C'est cette "irrégularité régulière" que je trouve particulière.

  17. #17
    Invité
    Invité(e)
    Par défaut
    il faut faire le rapprochement avec excel le ForEach fait une incrémentation ordinale donc tu saute des items! for i =count to 1 step -1!

    ce qui explique ton besoin du On Error.

    regard avec un dictionaire (Set MonDico = CreateObject("Scripting.Dictionary"))

    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
    Sub test()
    Dim i&, T#, C As Collection, elem, N&, Tb()
    Dim MonDico As Object
    Set MonDico = CreateObject("Scripting.Dictionary")
        N = 100
        Set C = New Collection
        For i = 1 To N
            C.Add i, CStr(i)
            MonDico(i) = i
        Next i
        i = 0
       ' On Error GoTo Suite
        T = Timer
        tb2 = MonDico.items
        Set MonDico = Nothing
        For Each elem In C
            i = i + 1
            ReDim Preserve Tb(1 To i)
            Tb(i) = elem
            C.Remove elem
        Next
        Debug.Print "Vidé avec For Each " & Timer - T
    Suite:
        Debug.Print "Planté à l'indice : " & i & " -- Nb d'éléments restants : " & C.Count
        Debug.Print Join(Tb, " - ")
    End Sub

  18. #18
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Moi aussi ça me turlupine ce saut irrégulier "régulier" comme tu l'appelles

    Le Step répond à un pattern en trois temps comme tu l'as bien montré, il n'est pas uniforme, on ne va pas de deux en deux à chaque tour de boucle

    Mais je n'ai aucune idée de la raison

  19. #19
    Invité
    Invité(e)
    Par défaut
    Pour ma part je préfère dire clé ordinale qu' il est possible de rediriger vers une clé logique!


    Mais le for each ne donne ni "l'indexe" ni la "clé" mais la valeur!

  20. #20
    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 re
    Mais le for each ne donne ni "l'indexe" ni la "clé" mais la valeur!
    AMEN!!!!
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Vider une collection, alternative à Remove ?
    Par Jean-Philippe André dans le forum Général VBA
    Réponses: 2
    Dernier message: 14/01/2008, 09h54
  2. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  3. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

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