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 VBA [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 193
    Par défaut Tableau Dynamique VBA
    Bonjour,

    j'aimerais savoir si en VBA on peut par exemple dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim tableau() As String
    For i = 0 To (liste.ListCount - 1)
                tableau(i) = Me.liste.List(i)
    Next i
    car je ne sais pas combien de donnée il y aura, car cela dépendra du nombre de données dans la liste "liste"

    Ou alors, j'ai besoins de créer dynamiquement la taille de mon tableau, c'est à dire incrémenter sa taille à chaque fois que ça boucle.
    j'ai regardé des tutos mais je n'ai pas réussie, un message me disais "Taille déjà alloué" par exemple.

    merci de votre aide,

  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
    Voir Redim :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim tableau() As String
    Redim Tableau (liste.ListCount - 1)

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 107
    Par défaut
    Si tu veux rajouter une ligne à ton tableau tu dois utiliser "redim preserve" pour qu'il garde les valeurs présentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Preserve Tableau(1 To UBound(Tableau, 1) + 1)
    Si tu utilise uniquement Redim ici, ton tableau sera bien agrandi d'une ligne, mais il aura perdu toutes ses données.


    Un petit exemple
    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
    33
    34
    35
    36
    37
    38
    39
    Option Explicit
     
    Dim monTableau() As Variant
     
    Sub Test()
     
        Dim i As Long, j As Long
        Dim tabChar() As Variant
        ReDim monTableau(1 To 1)
        monTableau(1) = "debut"
        tabChar = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j")
     
      'Donne une valeur aléatoire
        Randomize
        For i = 1 To Int((100 * Rnd) + 1)
            For j = 0 To UBound(tabChar, 1)
                Call AjouterValeur(i, tabChar(j))
            Next j
     
        Next i
     
        MsgBox "Nombre de ligne : " & UBound(monTableau)
     
    End Sub
     
     
    Private Sub AjouterValeur(ByRef lng As Long, ByVal s As String)
     
        Dim a As String
        Dim i As Long
     
        For i = 1 To lng
            a = a + s
        Next i
     
     'A chaque passage, la taille du tableau est augmenté d'une unité tout en conservant les données présentes.
        ReDim Preserve monTableau(1 To UBound(monTableau, 1) + 1)
        monTableau(UBound(monTableau)) = a
    End Sub

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 193
    Par défaut
    Merci, de vos réponse
    je vais tester ça

    Edit : ça, marche impeccable

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

Discussions similaires

  1. Dépassement de capacité Tableau dynamique VBA
    Par hehee dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/06/2013, 18h21
  2. [VBA Excel] Un tableau dynamique dans un type utilisateur?
    Par cyber_N dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/07/2006, 19h51
  3. [VBA-E] tableau dynamique
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/06/2006, 17h57
  4. [VBA-E]actualisation d'un tableau dynamique par macro
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/04/2006, 16h37
  5. [VBA-E]Afficher tout dans un tableau dynamique croisé
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/03/2006, 13h09

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