OVH Cloud OVH Cloud

Moi pas tout comprendre !

8 réponses
Avatar
garnote
Bonsoir, Bonsoir,

Je sélectionne ces deux colonnes adjacentes :
1 5
2 6
3 7
4 8
et j'appelle la Macro1. Tout baigne dans l'huile d'olive
pressé à froid !

Sub Macro1()
Application.ScreenUpdating = False
Set ici = Selection
nom = ici.Parent.Name
Charts.Add
ActiveChart.ChartType = xl3DColumnClustered
ActiveChart.SetSourceData Source:=ici
ActiveChart.Location Where:=xlLocationAsObject, Name:=nom
End Sub

Par contre, si j'appelle Macro2, elle me traite avec le plus grand mépris !
Comment «passer» choix(1) à «genre» de telle sorte que
ActiveChart.ChartType = genre ne fasse pas de chichi ?

Sub Macro2()
choix = Array("xlColumnClustered", "xl3DColumnClustered")
genre = choix(1)
Application.ScreenUpdating = False
Set ici = Selection
nom = ici.Parent.Name
Charts.Add
ActiveChart.ChartType = genre
ActiveChart.SetSourceData Source:=ici
ActiveChart.Location Where:=xlLocationAsObject, Name:=nom
End Sub

Serge

8 réponses

Avatar
Daniel.M
Sergio,

choix = Array(xlColumnClustered, xl3DColumnClustered)

Salutations,

Daniel M.
Avatar
isabelle
hello Serge,

il faut enlever les guillemets.

choix = Array(xlColumnClustered, xl3DColumnClustered)

isabelle


Bonsoir, Bonsoir,

Je sélectionne ces deux colonnes adjacentes :
1 5
2 6
3 7
4 8
et j'appelle la Macro1. Tout baigne dans l'huile d'olive
pressé à froid !

Sub Macro1()
Application.ScreenUpdating = False
Set ici = Selection
nom = ici.Parent.Name
Charts.Add
ActiveChart.ChartType = xl3DColumnClustered
ActiveChart.SetSourceData Source:=ici
ActiveChart.Location Where:=xlLocationAsObject, Name:=nom
End Sub

Par contre, si j'appelle Macro2, elle me traite avec le plus grand mépris !
Comment «passer» choix(1) à «genre» de telle sorte que
ActiveChart.ChartType = genre ne fasse pas de chichi ?

Sub Macro2()
choix = Array("xlColumnClustered", "xl3DColumnClustered")
genre = choix(1)
Application.ScreenUpdating = False
Set ici = Selection
nom = ici.Parent.Name
Charts.Add
ActiveChart.ChartType = genre
ActiveChart.SetSourceData Source:=ici
ActiveChart.Location Where:=xlLocationAsObject, Name:=nom
End Sub

Serge


Avatar
garnote
Arrayluia !
Serait-ce à dire que les constantes VBA sont considérées implicitement
comme des chaînes de texte, donc pas besion de cochonneries
du genre "" ?
Erre-je ou n'erre-je pas ?

Serge

"Daniel.M" a écrit dans le message de
news:
Sergio,

choix = Array(xlColumnClustered, xl3DColumnClustered)

Salutations,

Daniel M.




Avatar
Daniel.M
Ces constantes représentent des nombres.

Même si ces constantes représentaient des chaînes de texte, ça ne changerait pas
le fait que tu dois initialiser le tableau 'choix' avec leurs valeurs et non une
string.

Dans tous les cas, les guillemets sont à proscrire sauf si tu entres des chaînes
comme telles (pas les constantes qui les représentent).

Salutations,

Daniel M.

"garnote" wrote in message
news:1GWIc.49269$
Arrayluia !
Serait-ce à dire que les constantes VBA sont considérées implicitement
comme des chaînes de texte, donc pas besion de cochonneries
du genre "" ?
Erre-je ou n'erre-je pas ?

Serge


Avatar
garnote
Mais alors si j'ai ça :

xlColumnClustered
xl3DColumnClustered
xlColumnStacked
xl3DColumnStacked
xlColumnStacked100
xl3DColumnStacked100
xl3DColumn
xlBarClustered
xl3DBarClustered
xlBarStacked
xl3DBarStacked

sur une feuille de calcul ou dans une zone de liste d'un UserForm,
comment les récupérer pour définir un type de graphique ?

Serge



"Daniel.M" a écrit dans le message de
news:
Ces constantes représentent des nombres.

Même si ces constantes représentaient des chaînes de texte, ça ne
changerait pas

le fait que tu dois initialiser le tableau 'choix' avec leurs valeurs et
non une

string.

Dans tous les cas, les guillemets sont à proscrire sauf si tu entres des
chaînes

comme telles (pas les constantes qui les représentent).

Salutations,

Daniel M.

"garnote" wrote in message
news:1GWIc.49269$
Arrayluia !
Serait-ce à dire que les constantes VBA sont considérées implicitement
comme des chaînes de texte, donc pas besion de cochonneries
du genre "" ?
Erre-je ou n'erre-je pas ?

Serge






Avatar
Daniel.M
Serge,

Tu mets les équivalents numériques dans une autre liste ou une colonne à côté et
tu fais un INDEX(LesChiffres;EQUIV(zoneliste;LesChaines;0))
A B
xlColumnClustered 51
xl3DColumnClustered 56
xlColumnStacked 55
...

Les valeurs numériques sont indiquées dans le 'Object Browser' de VBE (F2).

Et tant qu'à y être, tu en profites pour remplacer ces noms anglais par de beaux
noms français explicites.

Je ne connais pas de moyen autre pour faire la correspondance entre une chaîne
et la valeur de la vraie constante qu'elle représente.

Salutations,

Daniel M.

"garnote" wrote in message
news:QnXIc.49425$
Mais alors si j'ai ça :

xlColumnClustered
xl3DColumnClustered
xlColumnStacked
xl3DColumnStacked
xlColumnStacked100
xl3DColumnStacked100
xl3DColumn
xlBarClustered
xl3DBarClustered
xlBarStacked
xl3DBarStacked

sur une feuille de calcul ou dans une zone de liste d'un UserForm,
comment les récupérer pour définir un type de graphique ?

Serge



Avatar
docm
Bonjour.
Personnellement, étant plutôt prudent, prévoyant, un peu paresseux et
craignant l'erreur humaine, j'opterais pour la solution suivante qui laisse
peu de place à l'erreur.


Sub Macro2()
choix = Array("xlColumnClustered", "xl3DColumnClustered")
genre = choix(1)
Application.ScreenUpdating = False
Set ici = Selection
nom = ici.Parent.Name
Charts.Add
ActiveChart.ChartType = XlEquivalent(genre)
ActiveChart.SetSourceData Source:=ici
ActiveChart.Location Where:=xlLocationAsObject, Name:=nom
End Sub

Function XlEquivalent(genre)

Select Case genre
Case "xl3DColumnClustered"
XlEquivalent = xl3DColumnClustered
End Select

End Function

Sous toutes réserves.
Amicalement.

"Daniel.M" wrote in message
news:#
Serge,

Tu mets les équivalents numériques dans une autre liste ou une colonne à
côté et

tu fais un INDEX(LesChiffres;EQUIV(zoneliste;LesChaines;0))
A B
xlColumnClustered 51
xl3DColumnClustered 56
xlColumnStacked 55
...

Les valeurs numériques sont indiquées dans le 'Object Browser' de VBE
(F2).


Et tant qu'à y être, tu en profites pour remplacer ces noms anglais par de
beaux

noms français explicites.

Je ne connais pas de moyen autre pour faire la correspondance entre une
chaîne

et la valeur de la vraie constante qu'elle représente.

Salutations,

Daniel M.

"garnote" wrote in message
news:QnXIc.49425$
Mais alors si j'ai ça :

xlColumnClustered
xl3DColumnClustered
xlColumnStacked
xl3DColumnStacked
xlColumnStacked100
xl3DColumnStacked100
xl3DColumn
xlBarClustered
xl3DBarClustered
xlBarStacked
xl3DBarStacked

sur une feuille de calcul ou dans une zone de liste d'un UserForm,
comment les récupérer pour définir un type de graphique ?

Serge







Avatar
sabatier
tu veux plutôt dire "serre-je ou ne serre-je pas?" crois-je, moi....
jps

"garnote" a écrit dans le message de
news:1GWIc.49269$
Erre-je ou n'erre-je pas ?

Serge