Ajouter un argument à un array ? Renseigner l'abscisse d'un graphique par du texte ?
Bonjour à tous ! En deux mots : j'ai un array défini ainsi : Chaine = Array(Cellule1, Cellule2)
Comment lui ajouter une cellule3 ? J'ai essayé avec union, avec des virgules, des &... choux blanc !
Le blabla pour le contexte et solutions alternatives :
Dans un [thread=103910]précédent épisode[/thread], vous m'aviez donné la clef pour sélectionner différentes cellules et donc renseigner les coordonnées de mes séries. Cellules contigües on non, pas de problème avec Union(chaine,cellule à rajouter) entre autres.
Manque de bol, Excel est un peu tordu sur les abscisses et dès que les cellules sont non-contigües, c'est le drame, le désastre, bref il dit niet.
En regardant l'enregistreur il semble qu'il envoie les données sous forme texte :
ActiveChart.SeriesCollection(1).XValues = "=(BaseDeDonnées!R5C1,BaseDeDonnées!R6C1,BaseDeDonnées!R8C1)"
Possibilité 1 : J'ai eu beau tourner dans tous les sens, je me suis retrouvé coincé par les guillemets, en effet comment les insérer dans une chaine (de format string je présume, je la crée sans la définir) alors qu'ils font partie de sa synthaxe ?
Possibilité 2 Du coup, j'ai tenté de renseigner l'abscisse via l'autre voie : l'array ; et c'est passé !
Seulement voilà, maintenant que j'ai au moins un moyen de renseigner cette maudite abscisse, comment la rendre flexible, c'est-à-dire la définir à ma guise avant ?
La 3è possibilité (système D) serait de sélectionner les cellules sur la feuille puis de définir ces cellules comme array, problème : je ne sais absolument pas comment faire...
Néanmoins si quelqu'un avait une idée pour la 2è possibilité, c'est-à-dire définir un array puis y rajouter des cellules à volonté, il aura toute ma gratitude !
Re : Ajouter un argument à un array ? Insérer un guillemet ? (Abscisse d'un graphique
Bonjour Charly88,
un Variant contenant un Array se redimensionne comme n'importe quel tableau VBA dynamique avec les instructions Redim ou Redim Preserve
Consulte l'aide VBA sur les tableaux, de mémoire elle est bien faite
un exemple :
Code:
Sub RedimensionneArray()
Dim S As Variant
S = Array("a", "b", "c")
ReDim Preserve S(UBound(S) + 1)
S(UBound(S)) = "d"
For i = 0 To UBound(S)
ActiveSheet.Range("A" & i + 1).Value = S(i)
Next i
End Sub