Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

10 réponses
Avatar
Jean-Paul V
Bonjour à tous

J’ai une Macro qui fonctionne avec l’instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c’est de travailler sur le champ ‘’types’’ de la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l’instruction ?

@+ j’espère

10 réponses

Avatar
Daniel
Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types'' de la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l'instruction ?

@+ j'espère



Avatar
Jean-Paul V
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne également si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types'' de la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l'instruction ?

@+ j'espère








Avatar
Daniel
Mon idée était que, puisque le nom du classeur était indiqué, la macro se
trouvait dans un autre classeur, auquel cas il aurait pu être nécessaire
d'indiquer le chemin :
INDEX([C:TEMPGPV.xls]A!types;ListBox1.ListIndex + 1; 4)
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types'' de
la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l'instruction ?

@+ j'espère










Avatar
Daniel
Peut-être :
.ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex + 1, 4)
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types'' de
la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l'instruction ?

@+ j'espère










Avatar
Jean-Paul V
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs ( l'intrution
suivante indique grace au label Me.Current la dernière couleur choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1) = 0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True
If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus loin, mon
niveau est insuffisant.( l'architecture principale de ce truc est de Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex + 1, 4)
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types'' de
la
feuille A du classeur GPV au lieu de travailler sur la feuille active,
comment écrire l'instruction ?

@+ j'espère















Avatar
Daniel
Je n'ai pas mis deux points !
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs ( l'intrution
suivante indique grace au label Me.Current la dernière couleur choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options
précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1) = 0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True
If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus loin, mon
niveau est insuffisant.( l'architecture principale de ce truc est de Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex + 1,
4)
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne
également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans
la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également
en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types''
de
la
feuille A du classeur GPV au lieu de travailler sur la feuille
active,
comment écrire l'instruction ?

@+ j'espère

















Avatar
Jean-Paul V
Pour ne pas me tromper j'ai noirci votre instruction et je l'ai collé dans
mon code

Je n'avais pas remarqué qu'il y avait application avant Index. et que vous
aviez mis des , au lieu des ;

comme le collage refuse de me mettre la fin de l'instruction je l'ai
complétée manuellement cela ne marche pas plus et pour info il y avait bien 2
.
J'ai essayé en enlevant un . cela ne marche pas plus
constatant que dans votre instruction se termine par ) et qu'il n'y a pas
de ( , j'ai rajouté le ( devant le ([GPV.xls ..,cela ne marche pas plus, j'ai
le message Erreur de compilation Erreur de syntaxe
J'ai essayé également de remplacer la , par ; rien y fait
J'ai également essayé d'enlever la dernière )
Je crois que je vais jeter l'éponge.

à+


Je n'ai pas mis deux points !
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs ( l'intrution
suivante indique grace au label Me.Current la dernière couleur choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options
précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1) = 0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True
If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus loin, mon
niveau est insuffisant.( l'architecture principale de ce truc est de Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex + 1,
4)
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne
également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela que
j'essaie de la faire fonctionner avec le champ ''types'' qui est dans
la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également
en
l'appelant d'un autre fichier qui aurait un graphique appelé ''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ ''types''
de
la
feuille A du classeur GPV au lieu de travailler sur la feuille
active,
comment écrire l'instruction ?

@+ j'espère






















Avatar
Daniel
Regarde le classeur ici :
http://cjoint.com/?dxsMOxpPGy
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Pour ne pas me tromper j'ai noirci votre instruction et je l'ai collé dans
mon code

Je n'avais pas remarqué qu'il y avait application avant Index. et que vous
aviez mis des , au lieu des ;

comme le collage refuse de me mettre la fin de l'instruction je l'ai
complétée manuellement cela ne marche pas plus et pour info il y avait
bien 2
.
J'ai essayé en enlevant un . cela ne marche pas plus
constatant que dans votre instruction se termine par ) et qu'il n'y a pas
de ( , j'ai rajouté le ( devant le ([GPV.xls ..,cela ne marche pas plus,
j'ai
le message Erreur de compilation Erreur de syntaxe
J'ai essayé également de remplacer la , par ; rien y fait
J'ai également essayé d'enlever la dernière )
Je crois que je vais jeter l'éponge.

à+


Je n'ai pas mis deux points !
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela
vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs ( l'intrution
suivante indique grace au label Me.Current la dernière couleur
choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique
empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les
paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de
points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options
précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1) =
0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True
If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou
non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus loin,
mon
niveau est insuffisant.( l'architecture principale de ce truc est de
Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex +
1,
4)
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne
également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela
que
j'essaie de la faire fonctionner avec le champ ''types'' qui est
dans
la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1;
4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également
en
l'appelant d'un autre fichier qui aurait un graphique appelé
''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ
''types''
de
la
feuille A du classeur GPV au lieu de travailler sur la feuille
active,
comment écrire l'instruction ?

@+ j'espère
























Avatar
Jean-Paul V
merci
mais cela ne répond pas à ma question


Regarde le classeur ici :
http://cjoint.com/?dxsMOxpPGy
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le message
de news:
Pour ne pas me tromper j'ai noirci votre instruction et je l'ai collé dans
mon code

Je n'avais pas remarqué qu'il y avait application avant Index. et que vous
aviez mis des , au lieu des ;

comme le collage refuse de me mettre la fin de l'instruction je l'ai
complétée manuellement cela ne marche pas plus et pour info il y avait
bien 2
.
J'ai essayé en enlevant un . cela ne marche pas plus
constatant que dans votre instruction se termine par ) et qu'il n'y a pas
de ( , j'ai rajouté le ( devant le ([GPV.xls ..,cela ne marche pas plus,
j'ai
le message Erreur de compilation Erreur de syntaxe
J'ai essayé également de remplacer la , par ; rien y fait
J'ai également essayé d'enlever la dernière )
Je crois que je vais jeter l'éponge.

à+


Je n'ai pas mis deux points !
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela
vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs ( l'intrution
suivante indique grace au label Me.Current la dernière couleur
choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique
empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les
paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de
points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options
précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1) =
0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True
If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou
non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus loin,
mon
niveau est insuffisant.( l'architecture principale de ce truc est de
Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex +
1,
4)
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne
également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour cela
que
j'essaie de la faire fonctionner avec le champ ''types'' qui est
dans
la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1;
4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne également
en
l'appelant d'un autre fichier qui aurait un graphique appelé
''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ
''types''
de
la
feuille A du classeur GPV au lieu de travailler sur la feuille
active,
comment écrire l'instruction ?

@+ j'espère





























Avatar
Daniel
Comme ça :

ActiveSheet.ChartObjects("graphe").Chart.ChartType = _
Application.Index(Workbooks("GPV.xls").Sheets("A").Range("types"), _
ActiveSheet.ListBox1.ListIndex + 1, 4)

Daniel
"Jean-Paul V" a écrit dans le message
de news:
merci
mais cela ne répond pas à ma question


Regarde le classeur ici :
http://cjoint.com/?dxsMOxpPGy
Cordialement.
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Pour ne pas me tromper j'ai noirci votre instruction et je l'ai collé
dans
mon code

Je n'avais pas remarqué qu'il y avait application avant Index. et que
vous
aviez mis des , au lieu des ;

comme le collage refuse de me mettre la fin de l'instruction je l'ai
complétée manuellement cela ne marche pas plus et pour info il y avait
bien 2
.
J'ai essayé en enlevant un . cela ne marche pas plus
constatant que dans votre instruction se termine par ) et qu'il n'y a
pas
de ( , j'ai rajouté le ( devant le ([GPV.xls ..,cela ne marche pas
plus,
j'ai
le message Erreur de compilation Erreur de syntaxe
J'ai essayé également de remplacer la , par ; rien y fait
J'ai également essayé d'enlever la dernière )
Je crois que je vais jeter l'éponge.

à+


Je n'ai pas mis deux points !
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Le deuxième . n'arrange pas la situation, là il voit tout rouge.

Je vous donne l'intégralité du code du Userform, peut-être que cela
vous
aidera à me mettre sur une piste.
Option Explicit
Private iColors(1 To 56) As New lblClass

Private Sub UserForm_Initialize()
Dim u%, i%, m$, t$, Ctl As Control

With ActiveSheet
' Recherche de l'index du graphique actuel
t = 54
i = 51
u = t
' Recherche du numéro de ligne correspondant sur la feuille
Active
i = RowFind(ActiveSheet, 4, u, True)
' Positionnement de la ListeBox sur le graphique actuel
Me.ListBox1.ListIndex = i - 1
' Détermination de la variable m (marker,3D,nbre séries,border..)
m = Cells(ListBox1.ListIndex + 1, 5).Value
' Couleur de fond du graphique actuel
With .ChartObjects("graphe").Chart.ChartArea
u = .Interior.ColorIndex
End With
End With
' Create lblGroup objects
For Each Ctl In Me.Controls
If Left(Ctl.Name, 3) = "lbl" Then
i = Val(Mid(Ctl.Name, 4))
Set iColors(i).lblGroup = Ctl
' Présélection palette quand concordance des couleurs (
l'intrution
suivante indique grace au label Me.Current la dernière couleur
choisie )
If i = u Then
Me.Current.Top = Ctl.Top - 2
Me.Current.Left = Ctl.Left - 2
End If
End If
Next Ctl
End Sub

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
' .ChartType = Cells(ListBox1.ListIndex + 1, 4)
'Nb la version précédente marche pas la suivante
..ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1;
4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4)
If InStr(1, UserForm1.ListBox1.Value, "3D", 1) Then
.RightAngleAxes = True
End If
'Ajout pour destruction paramètre après passage par type graphique
empilés
If InStr(1, UserForm1.ListBox1.Value, "Radar plein", 1) Then
'passage par un type provisoire de graphique qui rétablit les
paramètres
.ChartType = Cells(2, 4)
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
End If
End With
With ActiveSheet
m = Cells(ListBox1.ListIndex + 1, 5).Value
Me.Opt2.Enabled = InStr(1, m, "3D", 1)
If Not Me.Opt2.Enabled And Me.Opt2 Then Me.Opt7.Value = True
'Pas d'option Série2 si une seule Série
Me.Opt9.Enabled = (InStr(1, m, "1", 1) = 0)
Me.Opt10.Enabled = InStr(1, m, "M", 1)
'Enlever Marker1 coché lorsqu'il n'y a pas de Marker1
If Not Me.Opt10.Enabled And Me.Opt10 Then Me.Opt7.Value = True
Me.Opt11.Enabled = InStr(1, m, "M", 1)
If Not Me.Opt11.Enabled And Me.Opt11 Then Me.Opt7.Value = True
If InStr(1, m, "U", 1) Then Me.Opt10.Enabled = InStr(1, m, "U", 1)
'Pas d'option Marquer2 si une seule série mais Marker2 si Nuage de
points
Me.Opt11.Enabled = (InStr(1, m, "1", 1) = 0) * InStr(1, m, "M", 1)
'Pas d'option Grille,Libellé Axe des x et y si Secteur ou Anneau
Me.Opt4.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt5.Enabled = (InStr(1, m, "A", 1) = 0)
Me.Opt6.Enabled = (InStr(1, m, "A", 1) = 0)
'Pas d'option Série1 et Série2 si Nuage de points
Me.Opt8.Enabled = (InStr(1, m, "N", 1) = 0)
' Les instrutions suivantes permettent de décocher les options
précédemment
cochées et rendues inaccesibles avec le nouveau type de graphique
If InStr(1, m, "N", 1) Then Me.Opt9.Enabled = (InStr(1, m, "N", 1)
0)
If Not Me.Opt8.Enabled And Me.Opt8 Then Me.Opt7.Value = True





If Not Me.Opt9.Enabled And Me.Opt9 Then Me.Opt7.Value = True
If Not Me.Opt4.Enabled And Me.Opt4 Then Me.Opt7.Value = True
If Not Me.Opt5.Enabled And Me.Opt5 Then Me.Opt7.Value = True
If Not Me.Opt6.Enabled And Me.Opt6 Then Me.Opt7.Value = True
End With
End Sub

' Recherche du N° de ligne correspondant à une chaîne (partielle ou
non)
Private Function RowFind&(Sh As Worksheet, ByVal Col%, What As
Variant,
Whole As Boolean)
Dim W As Range, Who As Byte
If Whole Then Who = 1 Else Who = 2
Set W = Sh.Columns(Col).Find(What, LookAt:=Who)
If W Is Nothing Then RowFind = 0 Else RowFind = W.Row
End Function

Private Sub CommandButton2_Click()
Unload Me
End Sub

à+ j'espère car sinon je ne crois pas que je pourrai aller plus
loin,
mon
niveau est insuffisant.( l'architecture principale de ce truc est de
Serge
Garneau et Michel Pierron)



Peut-être :
..ChartType = Application.Index[GPV.xls]A!types,ListBox1.ListIndex
+
1,
4)
Daniel
"Jean-Paul V" a écrit dans le
message
de news:
Bonjour Daniel

Que voulez-vous dire par ''Es-tu sûr que GPV.xls est dans le
chemin
courant
?''

Ma Macro fonctionne à l'heure actuelle dans le fichier GPV.xls.

Je cherche à la modifier dans le but que cette Macro fonctionne
également
si
elle est ensuite appelé à partir d'un autre fichier.C'est pour
cela
que
j'essaie de la faire fonctionner avec le champ ''types'' qui est
dans
la
feuille A de GPV.xls

La Macro commence par :

Private Sub ListBox1_Click()
Dim m As String
Dim types As Range
Dim t As String
Dim TitreGraph As String
t = 51
With ActiveSheet.ChartObjects("graphe").Chart
.ChartType = t
.ChartType = Cells(ListBox1.ListIndex + 1, 4)
' .ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex +
1;
4)
TitreGraph = "Charttype = " & _
Cells(ListBox1.ListIndex + 1, 3) & " = " & _
Cells(ListBox1.ListIndex + 1, 4)
t = Cells(ListBox1.ListIndex + 1, 4) 'ect

NB: le graphique ''graphe'' est dans la Feuille A

Je souhaiterais après modif de la Macro qu'elle fonctionne
également
en
l'appelant d'un autre fichier qui aurait un graphique appelé
''graphe''

à+ j'espère



Bonjour.
Es-tu sûr que GPV.xls est dans le chemin courant ? Essaie de le
rajouter...
Cordialement.
Daniel
"Jean-Paul V" a écrit dans
le
message
de news:
Bonjour à tous

J'ai une Macro qui fonctionne avec l'instruction :

.ChartType = Cells(ListBox1.ListIndex + 1, 4)

Quand je veux changer cette instruction par :

.ChartType = INDEX([GPV.xls]A!types;ListBox1.ListIndex + 1; 4)

cela ne lui plait pas du tout

Ce que je cherche à faire c'est de travailler sur le champ
''types''
de
la
feuille A du classeur GPV au lieu de travailler sur la feuille
active,
comment écrire l'instruction ?

@+ j'espère