Bonjour le Forum !
J'ai un fichier macroté qui doit pouvoir tourner à l'international (Japon). Le problème c'est qu'un graphique dans une feuille (un seul graphique dans la feuille) voit sa mise en forme controlée par macro. Lorsque la macro se déclenche, tout marche bien : ma mise en forme des séries de données se fait bien ... Mais mon contact au Japon obtient avec le même fichier l'erreur :
"unable to obtain Chart Objective property of Worksheet Class.error code 1004. error message window for Windows Visual Basic"
En réussissant à obtenir la même erreur en francais, j'ai compris que le problème venait du nom du graphique, qui sur les versions Francaise est "Graphique 2" et sur la version anglaise, doit avoir un nom du genre "Graphic 1" ou un truc de ce genre.
J'ai d'abord eu l'idée de crééer un settings pour executer le code Francais, ou le code Japon, mais ne connaissant pas le nom exact de ce graphique, je suis dans l'impassse, de plus, si d'autre pays utilisent ce fichier, probleme !
Mon idée est la suivante : arnaquer VBA en lui faisant trouver lui-même le nom du fichier :
(c'est au niveau de la ligne en gras que ça coince)
Je voudrais remplacer la ligne en gras qui utilise le nom par une comande du genre
Et le reste.
Pouvez-vous m'aider ? Avez-vous d'autres idées ?
Merci d'avance,
Deneb
J'ai un fichier macroté qui doit pouvoir tourner à l'international (Japon). Le problème c'est qu'un graphique dans une feuille (un seul graphique dans la feuille) voit sa mise en forme controlée par macro. Lorsque la macro se déclenche, tout marche bien : ma mise en forme des séries de données se fait bien ... Mais mon contact au Japon obtient avec le même fichier l'erreur :
"unable to obtain Chart Objective property of Worksheet Class.error code 1004. error message window for Windows Visual Basic"
En réussissant à obtenir la même erreur en francais, j'ai compris que le problème venait du nom du graphique, qui sur les versions Francaise est "Graphique 2" et sur la version anglaise, doit avoir un nom du genre "Graphic 1" ou un truc de ce genre.
J'ai d'abord eu l'idée de crééer un settings pour executer le code Francais, ou le code Japon, mais ne connaissant pas le nom exact de ce graphique, je suis dans l'impassse, de plus, si d'autre pays utilisent ce fichier, probleme !
Mon idée est la suivante : arnaquer VBA en lui faisant trouver lui-même le nom du fichier :
Code:
Sub Blopts()
'
Application.ScreenUpdating = False
[B]ActiveSheet.ChartObjects("Graphique 2").Activate[/B]
For i = 1 To 15:
If (Sheets("Data").Cells((i + 7), 46).Value > 0) Then
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = 3
.MarkerForegroundColorIndex = 2
.MarkerStyle = xlDiamond
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
Else
ActiveChart.SeriesCollection(i).Select
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = 11
.MarkerForegroundColorIndex = 2
.MarkerStyle = xlDiamond
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
End If
Next
ActiveWindow.Visible = False
Range("A1").Select
Application.ScreenUpdating = True
End Sub
(c'est au niveau de la ligne en gras que ça coince)
Je voudrais remplacer la ligne en gras qui utilise le nom par une comande du genre
Code:
For each graphic in sheet
Pouvez-vous m'aider ? Avez-vous d'autres idées ?
Merci d'avance,
Deneb