Problème création graphique automatisée

Problème création graphique automatisée - VB/VBA/VBS - Programmation

Marsh Posté le 10-08-2006 à 09:36:15    

Bonjour,  
j'ai créé une macro, qui grâce à une requête Access, me permet de récupérer des valeurs et de les ordonner en tableau dans Excel. Maintenant je voudrais que les graphiques soient automatisés que ce ne soit pas à l'utilisateur de le faire. Le morceau de code qui suit est peut-être une réponse à mon problème, cependant j'ai une erreur lors de son exécution : variable objet ou variable de bloc With non définie (ceci correspond à la ligne Cells.find).  
Si quelqu'un pouvait m'aider, merci.
 
 

Code :
  1. Sub Graphiques()
  2. 'Recherche les données
  3.    Do While Selection.End(xlDown).Row < Range("A65536" ).End(xlUp).Row + 1
  4.    Worksheets("Feuil1" ).Cells.Find(What:="!", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
  5.    ActiveCell.Select
  6.    Selection.Font.Bold = True
  7.    ActiveCell.Offset(1, 0).Select
  8. Loop
  9. 'Sélectionne les données
  10.     ActiveCell.Offset(1, 0).Select
  11.     Range(Selection, Selection.End(xlDown)).Select
  12.     Range(Selection, Selection.End(xlToRight)).Select
  13.     Set donne = Selection
  14. 'Créée le graphique
  15.    Charts.Add
  16.    ActiveChart.SetSourceData Source:=donne
  17.    ActiveChart.Location Where:=xlLocationAsNewSheet
  18.    ActiveSheet.Next.Select
  19.    Sheets("Feuil1" ).Select
  20. End Sub

Reply

Marsh Posté le 10-08-2006 à 09:36:15   

Reply

Marsh Posté le 10-08-2006 à 09:45:59    

Moi j'utilise ca pour generer mes graphiques, ca pourra t'aider :
 
Dim GraphPPMFour As Chart
    Set GraphPPMFour = ThisWorkbook.Charts.Add
    GraphPPMFour.ChartType = xlColumnStacked
    GraphPPMFour.ChartArea.Interior.Color = vbWhite
    ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 8.25, 9#, 89.25, 21.75).Select
    Selection.Characters.Text = Now()
    GraphPPMFour.SetSourceData _
                Source:=Sheets("Base de donnees DOPA" ).Range("donnee" ), _
                PlotBy:=xlColumns
    With GraphPPMFour
        .HasTitle = True
            With .ChartTitle
                .Characters.Text = "Indicateur PPM Fournisseur"
                .Shadow = True
                .Border.Weight = xlColumns
            End With
    End With
    GraphPPMFour.Location _
        Where:=xlLocationAsObject, _
        Name:="Graphiques Indicateurs"

Reply

Marsh Posté le 10-08-2006 à 10:04:21    

Merci pour l'aide, cependant j'ai un problème avec une ligne :
GraphPPMFour.SetSourceData _  
                Source:=Sheets("Feuil2" ).Range("donnee" ), _  
                PlotBy:=xlColumns  

Reply

Marsh Posté le 10-08-2006 à 10:11:17    

ba "Feuil2" il faut que tu le remplaces par le nom de ta feuille, et "donnee", tu dois y mettre le nom de ta plage de données pour générer ton graphique (pou définir une plage : Insertion > Nom > définir)

Reply

Marsh Posté le 10-08-2006 à 10:12:50    

ah daccord !! merci pour l'aide !!
une dernière question, quand la plage est aléatoire (les lignes uniquement le sont) comment faire ?

Reply

Marsh Posté le 10-08-2006 à 10:15:31    

utilise la fonction DECALER, elle permet de prendre en compte les lignes rentrés par l'utilisateur.
 
bon courage :)

Reply

Marsh Posté le 10-08-2006 à 10:21:32    

j'ai toujours une erreur sur la même ligne :s (erreur définie par l'application ou par l'objet). où définit-on "donnee" ? c'est le nom que l'on met avec DECALER(Feuil1!$A$2;0;0;NBVAL(Feuil1!$A:$A)-1;) ?
 
merci pour l'aide

Reply

Marsh Posté le 10-08-2006 à 10:28:48    

voila une ligne de selection :
 
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)

Reply

Marsh Posté le 10-08-2006 à 10:33:26    

ok mais j'ai toujours un problème avec une ligne :  
GraphPPMFour.SetSourceData _  
                Source:=Sheets("Feuil2" ).Range("donnee" ), _  
                PlotBy:=xlColumns  
c'est peut-être le terme donnee qui pose problème je ne sais pas trop

Reply

Marsh Posté le 10-08-2006 à 10:36:47    

ba il faut que tu mettes bien le bon nom de graphique, le nom de la feuille que tu utilise et le nom de la plage de données que tu as créer
 
chez moi ca marche ^^

Reply

Marsh Posté le 10-08-2006 à 10:36:47   

Reply

Marsh Posté le 10-08-2006 à 10:44:01    

je ne vois pas où est le problème :s

Reply

Marsh Posté le 10-08-2006 à 10:45:20    

est-ce que je peux t'envoyer mon document pour voir si j'ai fait une erreur bête stp ?

Reply

Marsh Posté le 10-08-2006 à 10:59:37    

na dsl j'ai pas le tps

Reply

Marsh Posté le 10-08-2006 à 11:05:41    

ok merci qd mèm

Reply

Marsh Posté le 10-08-2006 à 11:15:04    

je t'en prie

Reply

Marsh Posté le 10-08-2006 à 12:23:35    

est-ce que tu pourrais me commenter le code stp pour que je vois d'où viens le problème ?

Reply

Marsh Posté le 10-08-2006 à 12:30:13    

faut pas abuser lol je t'ai filé un code qui marche qui n'est pas tres complexe à comprendre ^^

Reply

Marsh Posté le 10-08-2006 à 12:31:16    

ben oui mais j'ai toujours le même problème avec cette ligne :
GraphPPMFour.SetSourceData Source:=Sheets("Feuil2" ).Range("donnee" ), PlotBy:=xlColumns

Reply

Marsh Posté le 10-08-2006 à 12:35:08    

je t'ai passé des lignes de code qui marche, je t'ai expliqué ce qu il fallait mettre dedans.
 
Désolé mais je vais pas faire ton projet a ta place.

Reply

Marsh Posté le 10-08-2006 à 12:43:21    

oula !! mais je n'ai jamais demandé ça, j'essaie juste de comprendre.
le truc c'est que quand je fais Insertion > Nom > définir et que je mets donnee comme nom et que je déclare ma plage (="DECALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$D)-1)" ), le code ne s'éxécute pas correctement, c'est pourquoi je demandais des explications.

Reply

Marsh Posté le 10-08-2006 à 12:47:33    

moi je t'ai donné un exemple, apres pourquoi ta ligne ne marche pas je peux pas le savoir
 
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)  
 
cette ligne marche a toi de l'adapter a ton projet
 
bon courage

Reply

Marsh Posté le 10-08-2006 à 12:54:45    

ok maintenant que j'ai modifié ce que tu m'as dit ça marcha presque en entier. reste plus que ça qui pose problème :
GraphPPMFour.Location Where:=xlLocationAsObject, Name:="Graphiques"  
Le name qu'il faut remplir doit correspondre à quoi ?
 
merci pour l'aide

Reply

Marsh Posté le 10-08-2006 à 12:55:59    

ca doit correspondre au nom de la feuille ou le graphique doit etre créé :)

Reply

Marsh Posté le 10-08-2006 à 12:57:28    

ah ok donc ce n'est pas ça le problème. Est-ce que tu as déjà eu ce message d'erreur : la méthode Location de l'objet '_Chart' a échouée. ?

Reply

Marsh Posté le 10-08-2006 à 13:01:19    

ca ne me dit rien mais il faut que tu ai Name:="nom_de_ta_feuille"
 
ou nom_de_ta_feuille doit etre la feuille ou le graphique se créé et evidement cette feuille doit exister :)

Reply

Marsh Posté le 10-08-2006 à 13:03:03    

ahhh ben c'est cool alors !! ç marche nikel !!
merci beaucoup

Reply

Marsh Posté le 10-08-2006 à 13:08:25    

je t'en prie :)
 
bonne continuation

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed