Ajouter un argument à un array ? Insérer un guillemet ? (Abscisse d'un graphique)

Charly88

XLDnaute Occasionnel
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 fichier : http://cjoint.com/?jxjpZqoznD






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é !
Code:
Chaine = Array(Sheets("BasedeDonnées").Cells(5, 1).Value, Sheets("BasedeDonnées").Cells(6, 1).Value, Sheets("BasedeDonnées").Cells(8, 1).Value)

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...


Bref si quelqu'un a des idées, un gros merci !
 
Dernière édition:

Charly88

XLDnaute Occasionnel
Re : Ajouter un argument à un array ? Insérer un guillemet ? (Abscisse d'un graphique

Remonte petit sujet !
Je suis sûr que quelqu'un, ainsi de bon matin, saura nous dévoiler une possibilité :-D


Re-re-Edit : solution débloquée pour la possibilité 1, nul besoin de guillemet, par contre = et () sont vivement recommandés :
Code:
BaseAbsci = "BaseDeDonnées!"
Chaine = BaseAbsci & Sheets("BasedeDonnées").Cells(5, 1).Address(ReferenceStyle:=xlR1C1)
Chaine = Chaine & "," & BaseAbsci & Sheets("BasedeDonnées").Cells(6, 1).Address(ReferenceStyle:=xlR1C1)
Chaine = Chaine & "," & BaseAbsci & Sheets("BasedeDonnées").Cells(8, 1).Address(ReferenceStyle:=xlR1C1)
Chaine = "=(" & Chaine & ")"
ActiveChart.SeriesCollection(1).XValues = Chaine

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 !
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
0
Affichages
148
Réponses
1
Affichages
164

Statistiques des forums

Discussions
312 199
Messages
2 086 158
Membres
103 139
dernier inscrit
Bidi