Ajouter des données dans un tableau = Range("A1", "A99"].val
Résolu
wire less
Messages postés
233
Date d'inscription
Statut
Membre
Dernière intervention
-
wire less Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
wire less Messages postés 233 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Ajouter des données dans un tableau = Range("A1", "A99"].val
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
3 réponses
Bonjour,
C'est la galère, les tableaux... Pour modifier sa taille, il faut utiliser l'instruction ReDim :
A+
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+
Bonjour,
ou bien pour éviter la boucle :
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
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
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 :
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
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