Ajouter des données dans un tableau = Range("A1", "A99"].val

Résolu
Bonjour,

Je dois ajouter une valeur dans un tableau :

Dim Tableau As Variant
Tableau = Range("A1", "A99"].value


J'ai essayé les méthodes suivantes, mais aucune ne fonctionne :
Tableau.AddItem "Toto"
Tableau.Add("Toto")
Tableau = Tableau & "Toto"


Bref, je suis paumé ...
Quelqu'un aurait un tuyau ???

Merci

3 réponses

  1. Bonjour,

    C'est la galère, les tableaux... Pour modifier sa taille, il faut utiliser l'instruction ReDim :
    Dim Tableau As Variant
    Tableau = Range("A1", "A99").Value
    ReDim Tableau(99)
    For i = 0 To 98
        Tableau(i) = Cells(i + 1, 1).Value
    Next i
    Tableau(99) = "Toto"


    A+
    0
    1. Désolé je me suis planté...

      À plus,
      ThauTheme
      0
      1. Contributeur
        Bonjour,

        ou bien pour éviter la boucle :
        Sub test()
            Dim Tableau As Variant
            Tableau = Application.Transpose(Range("A1", "A99").Value)
            ReDim Preserve Tableau(1 To UBound(Tableau) + 1)
            Tableau(UBound(Tableau)) = "Toto"
            '[C1:C100] = Application.Transpose(Tableau)
        End Sub

        On ne peut changer que la dernière dimension d'un tableau d'où le Transpose()
        eric

        En essayant continuellement, on finit par réussir.
        Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
        En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
        0
        1. Modérateur
          Salut Eric,

          Une petite précision en complément de ta réponse.
          Transpose fonctionnera parfaitement jusqu'à ... sa limite qui est 65536 (fonction de feuille excel inchangée en 2007).
          Donc :
          Tableau = Application.Transpose(Range("A1", "A65537").Value)

          renverra une erreur 1004.
          Pour les tableaux d'un nombre de "lignes" supérieur, il conviendra d'utiliser une fonction personnalisée, et donc, de boucler sur le tableau.
          Amicalement,
          Pijaku
          0
        2. Contributeur
          Salut pijaku,

          Tout à fait oui :-)
          Ca va mieux en le disant, omission de ma part.
          Boucler ou découper en blocs de 65536 lignes maxi.
          eric
          0
        3. @pijakuMerci les gars !
          Dsl ... j'avais oublié de boucler le sujet.
          0