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 :

tableau dynamique : galère de ReDim !


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Par défaut tableau dynamique : galère de ReDim !
    Salut à tous,

    Depuis quelques temps j'ai un problème assez em****ant avec les tableaux dynamiques et notamment avec le fameux ReDim.

    Voilà la version courte du code :
    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
     
    Dim Tab()
    nbl = 0
    For i = 2 To max
        nbl = nbl + 1
        ReDim Preserve Tab(nbl, 2)
        Tab(nbl, 1) = ActiveSheet.Cells(i, 1).Value
        Tab(nbl, 2) = ActiveSheet.Cells(i, 3).Value
     
        If ... Then
            nbl = nbl + 1
            ReDim Preserve Tab(nbl, 6)
            Tab(nbl, 1) = ActiveSheet.Cells(i, 1).Value
            Tab(nbl, 2) = ActiveSheet.Cells(i, 4).Value
        End If
     
        If ... Then
            nbl = nbl + 1
            ReDim Preserve Tab(nbl, 6)
            Tab(nbl, 1) = ActiveSheet.Cells(i, 1).Value
            Tab(nbl, 2) = ActiveSheet.Cells(i, 5).Value
        End If
    Next i
    Le truc c'est que lors du premier passage (qui ne passe pas dans les 2 if), ca va, mais dès qu'il reviens sur ReDim, ça m'affiche un magnifique "Subscript out of range".

    Si quelqu'un voit le d'où provient le problème, je suis preneur.
    Merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En effet, tu ne peux pas redimentionner la première dimension mais seulement la seconde.
    Tu pourrais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Tableau(1 to 3, 0)
        nbl = nbl + 1
        ReDim Preserve Tableau(2, nbl)
    mais pas l'inverse
    A+

    Edit
    Il existe une solution intéressante pour ton pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Tableau1()
    Dim Tableau2()
    'Gnagna...
    i = i + 1
    Redim Preserve Tableau1(i)
    j = j + 1
    Redim Preserve Tableau2(j)
    'Gnagna
    'Gnagna...
    Tableau2(j) = "Une donnée"
    Tableau1(i) = Tableau2
     
    'Pour retrouver ta donnée :
    msgbox Tableau1(i)(1) '=> "Une donnée"
    J'aime bien, alors je te le confie, fais-en bon usage
    A+

    PS - Y'avait comme une petite erreur, je l'ai corrigée

  3. #3
    Membre confirmé Avatar de zoidy
    Inscrit en
    Avril 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 184
    Par défaut
    En effet, tu ne peux pas redimentionner la première dimension mais seulement la seconde.
    Ah oui, ça c'est un peu le détail qui tue ^^

    Intéressant ton bout de code, je vais tester ça de suite.

    Merci à toi

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 19h31
  2. récupérer la memoire et tableau dynamique
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 06/01/2003, 09h02
  3. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 15h19
  4. [Kylix] tableau dynamique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 31/10/2002, 09h57
  5. Réponses: 4
    Dernier message: 13/05/2002, 17h43

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