impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

  • Initiateur de la discussion Initiateur de la discussion laienell
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laienell

XLDnaute Nouveau
Bonjour a tous,


Je me permets de venir solliciter votre aide car toutes mes recherches depuis ce matin ce sont averees veines... Vous etes proches d etre mon dernier espoir la 🙂

J ai reduit les donnees au maximum pour vous les presenter. J ai 5 colonnes excel que je souhaiterais integrer comme donnees d'un graphique de surface, et cela via vba (c'est important). La premiere colonne pour les abscisses et les 4 dernieres pour pour faire 4 series.

Si je fais la manipulation via Excel (clique droit sur le graphique), il n'y a pas de probleme... j'ai donc utilise l enregistreur de macro pour reproduire au detail pres ce qui est fait mais des lors que l on passe par une macro il bloque sur le Xvalue (probleme assez recurrent avec Excel 03 j ai l'impression).

Avant, j'ai egalement essaye d utilise le setsourcerange uniquement pour definir l'ensemble de mon graphique, mais soit j'obtenais un bug (?) d'affichage de mon graphique qui semblait utiliser un max mon processeur, soit je n'arrivais pas a definir mes abscisses.

Il faut egalement que le code puisse fonctionner sous Excel 03, donc il n'est pas possible d'ecrire les ranges en page1!$B$6 dans le code...

Et pour finir 🙂 le fichier que je vous joins semble fonctionner sous Excel 07 mais pas sous Excel 03... mmmh j'adore. Mais vous l'aurex compris la compatibitlite avec Excel 03 est importante pour moi ici...


J'apprecierais vraiment un petit peu d'aide...merci d'avance!
 

Pièces jointes

Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Merci pour ta reponse,

En effet je n'avais pas ete voir...c'est une mine d'or avec plein d'infos mais malheureusement je n'y ai pas trouve de solution a mon probleme. La methode conventionnelle qui y est decrite pour affecter les abscisses (Xvalue) ne fonctionnant pas dans mon fichier. Et je n'ai pas trouve non plus une syntaxe de setsourcedata permettant d'affecter les abscisses.

Je crois que normalement dans le range du setsourcedata on peut mettre deux ranges de donnees, le premier servant d'abscisses et le second de valeurs...mais impossible de le faire fonctionner dans mon fichier. Et pourtant, mon fichier est plutot trivial donc je suis un peu perdu...
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

A la base je prenais toutes les donnees en compte et au moment ou j'ai voulu enrgistrer la macro avec l enregistreur de macro, il fallait absolument qu il y ait une difference dans les donnees saisies, donc j'ai decale la ligne de ma premiere donnee, mais je ne pense pas que ca ait une incidence 🙂

Merci pour le temps que tu prends !
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Re



Essayes ceci
Code:
Sub AddChartObject()
Dim myChtObj As ChartObject
    Set myChtObj = ActiveSheet.ChartObjects.Add _
        (Left:=100, Width:=375, Top:=75, Height:=225)
    myChtObj.Chart.SetSourceData Source:=Sheets("page1").Range("E5:H41")
    myChtObj.Chart.ChartType = xlSurface
End Sub



PS: merci à Jon Peltier
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Merci, mais malheureusement cela ne me permet pas d'assigner ma premiere colonne en abscisse du graphique. Peut etre que je me suis mal exprime dans mes messages precedents mais c'est le point principal sur lequel je coince dans ce probleme.

Et je trouve vraiment bizarre que l'instruction avec le Xvalue directement importe de l'enregistreur de macro ne fonctionne pas...
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

re
regarde si cela te convient?
Code:
Sub Macro6()
'
' Macro6 Macro
' Macro enregistrée le 14/04/2008 par Bruno
'
'
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("page1").Range("E5:H41"), PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="page1"
    ActiveChart.PlotArea.Select
    With ActiveChart
            .SeriesCollection(1).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(2).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(3).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(4).XValues = "=page1!R5C4:R41C4"
            .ChartArea.Select
            .ChartType = xlSurface
     End With
End Sub
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

re bonsoir
Ou alors en fonction de la macro que stapple propose:
Code:
Sub AddChartObject()
Dim myChtObj As ChartObject
    Set myChtObj = ActiveSheet.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
    myChtObj.Chart.SetSourceData Source:=Sheets("page1").Range("E5:H41")
    myChtObj.Chart.ChartType = xlColumnClustered
   With myChtObj.Chart
            .SeriesCollection(1).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(2).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(3).XValues = "=page1!R5C4:R41C4"
            .SeriesCollection(4).XValues = "=page1!R5C4:R41C4"
            .ChartType = xlSurface
     End With
    
End Sub
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Re



Petite précision: code de Jon Peltier, (je n'ai fait que le copier/coller 😉 )


CB60
: j'avais zappé le
ChartType = xlColumnClustered

Pourquoi faut-il d'abord affecter ce type de graphiqe puis ensuite affecter
ChartType = xlSurface ?
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Bonsoir
Encore plus simple, ta question Stapple m'a fais refléchir un peu ( beaucoup pour ma petite tête) et j'ai donc modifié les deux macros et je m'apperçois qu'il n'est pas necessaire de noter toutes les series pour l'axe des X lorsque nous utilisons un graph histogramme et qu'ensuite on le passe en 3 D, mais pourquoi je ne sais pas, une histoire de boucle peut être?
si d'autres personnes passent par la et on la réponse on est preneur😕




Code:
Sub AddChartObject()
Dim myChtObj As ChartObject
    Set myChtObj = ActiveSheet.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
    myChtObj.Chart.SetSourceData Source:=Sheets("page1").Range("E5:H41")
    myChtObj.Chart.ChartType = xlColumnClustered
   With myChtObj.Chart
            .SeriesCollection(1).XValues = "=page1!R5C4:R41C4"
            .ChartType = xlSurface
     End With
    
End Sub
Sub Macro6()
'
' Macro6 Macro
' Macro enregistrée le 14/04/2008 par Bruno
'
'
    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("page1").Range("E5:H41"), PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="page1"
    ActiveChart.PlotArea.Select
    With ActiveChart
            .SeriesCollection(1).XValues = "=page1!R5C4:R41C4"
            .ChartType = xlSurface
     End With
End Sub
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

Merci pour votre aide, c'est vraiment sympa. Je viens de rentrer chez moi...et je n'ai que Excel 2007 sur mon pc ici, donc je ne pourrai tester ca de manière sure que demain matin...je vous tiendrais bien sur au courant !

Ceci dit, si vous l'avez testé tous les deux sans mauvaise surprise...je pense et j'espere que de mon coté j'en aurai une bonne demain matin. 😉

A demain et merci encore...
 
Re : impossible d'afficher un simple graphique 3D par vba...et sans Excel 07

re
Sous excel 2007 les deux macros fonctionnent, celle proposé par Stapple (Petite précision: code de Jon Peltier, (je n'ai fait que le copier/coller 😉 et ADAPTER, ne te tracasse pas pour cela tu l'avais bien noter sur ton post😛) est plus rapide car elle ne passe pas par une feuille graphique , mais le graph se construit directement sur la feuille.
Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour