Placer des graphiques vba (urgent)
charly
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaiterai positionné mais graphique sur un feuil sachant que le nombre de graphique dépend du choix de l'utilisateur, j'ai donc fais ce code :
Mais j'ai un message d'erreur comme quoi la méthode cells ne fonctionne pas, quelqu'un aurait une idée?
je souhaiterai positionné mais graphique sur un feuil sachant que le nombre de graphique dépend du choix de l'utilisateur, j'ai donc fais ce code :
Sub Dimensions_Graphiques() Dim Nbre_Graphe As Byte Dim x As Integer Dim y As Integer x = 1 y = 1 For Nbre_Graphe = 1 To ActiveSheet.ChartObjects.Count With ActiveSheet.Shapes(Nbre_Graphe) .Left = Cells(y, x).Left .Top = Cells(y, x).Top .Width = 450 'la largeur voulue .Height = 300 'la hauteur voulue x = x + 8 y = y + 25 End With Next Nbre_Graphe End Sub
Mais j'ai un message d'erreur comme quoi la méthode cells ne fonctionne pas, quelqu'un aurait une idée?
A voir également:
- Placer des graphiques vba (urgent)
- Placer des points sur une carte - Guide
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
10 réponses
Bonjour,
Plante directement ou après en avoir positionner quelque un. ?
Ta macro n'a pas d'erreur. Sauf que tu met tes graph en diagonale ? c'est voulu?
Après 10 graph, si tu est en Excel 97-2003 ça plante pour dépassement capacité.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Plante directement ou après en avoir positionner quelque un. ?
Ta macro n'a pas d'erreur. Sauf que tu met tes graph en diagonale ? c'est voulu?
Après 10 graph, si tu est en Excel 97-2003 ça plante pour dépassement capacité.
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
non ce n'est pas l'effet voulu ^^ je me suis rendu compte de mon erreur quand je l'ai fais foctionner. sauriez-vous coment faire pour que les graph s'affiche dans un cette ordre : le graph qui arrive en premier se positionne en haut a gauche, le 2e en haut à droite le 3e en dessou a gauche le 4e sous le 2e etc...?
J'ai résolu l'autre problème sinon, j'ai déclarer un variable as range et je mis sheets(feuil3).cells(x,y) dans cette variable
J'ai résolu l'autre problème sinon, j'ai déclarer un variable as range et je mis sheets(feuil3).cells(x,y) dans cette variable
y = y + 25 : If Y > 50 then Y = 25 : x = x + 8
Pour 2 graph par ligne
et supprimer x=x+8
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
celà ne fonctionne passa place correctement le deuxieme, puis ensuite sa saute pas mal de lignes puis sa fais un ligne de 3 graphiques et sa en met ensuite un juste en dessou du graphique du milieu dans la ligne de 3
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est bon c'est réglé vous aviez juste inversé les lignes et les colonnes, voici le code
mais j'ai une réaction bisarre. les deux premiers graph se placent correctement, mais je reste et décalé de 25 suivant y comme si on faisait y=y+50 au lieu de y=y+25
en tous cas merci beaucoup!
Dim Nbre_Graphe As Byte Dim x As Integer Dim y As Integer Dim caspos As Range x = 1 y = 1 For Nbre_Graphe = 1 To ActiveSheet.ChartObjects.Count With ActiveSheet.Shapes(Nbre_Graphe) Set caspos = Feuil3.Cells(y, x) .Left = caspos.Left 'position des graphiques .Top = caspos.Top 'position des graphiques .Width = 450 'la largeur voulue .Height = 300 'la hauteur voulue End With x = x + 8: If x > 16 Then x = 1: y = y + 25 Next Nbre_Graphe
mais j'ai une réaction bisarre. les deux premiers graph se placent correctement, mais je reste et décalé de 25 suivant y comme si on faisait y=y+50 au lieu de y=y+25
en tous cas merci beaucoup!
Comprend pas, décalage de quoi ?
Avec le code que tu met, x = les colonnes et y = les lignes...
les 2 premiers sur A1 et et H1
suivant sur A25 et H25, etc..
Edit : Et je viens de tester, ça fonctionne impec.
Edit 2 :
Je crois que j'ai compris.
quand tu met Feuil3 ?? tu travail sur quel feuille ?
Feuil3 c'est le N° d'ordre de la feuille et Sheets("Feuil3") c'est le nom de la feuille.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Avec le code que tu met, x = les colonnes et y = les lignes...
les 2 premiers sur A1 et et H1
suivant sur A25 et H25, etc..
Edit : Et je viens de tester, ça fonctionne impec.
Edit 2 :
Je crois que j'ai compris.
x = 1 y = 1 For Nbre_Graphe = 1 To ActiveSheet.ChartObjects.Count With ActiveSheet.Shapes(Nbre_Graphe) .Left = ActiveSheet.Cells(y, x).Left 'position des graphiques .Top = ActiveSheet.Cells(y, x).Top 'position des graphiques .Width = 450 'la largeur voulue .Height = 300 'la hauteur voulue End With x = x + 8: If x > 16 Then x = 1: y = y + 25 Next Nbre_Graphe
quand tu met Feuil3 ?? tu travail sur quel feuille ?
Feuil3 c'est le N° d'ordre de la feuille et Sheets("Feuil3") c'est le nom de la feuille.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Non çà devrai être A26 et H26 (car y=1 au début) sauf que mon graphique se place en A52. J'ai fais un test "step by step" et y est bien égale à 26 et pourtant le graphique se le place en A52. par contre la ligne du dessou se place bien juste après. c'est très bisarre et je ne comprends pas. je suis novice j'ai comencé VBA il y a 3 semaines au début de mon stage en entreprise.
C'est toi qui inverse les lignes et les colonnes..
Prend l'exemple de mon code, il fonctionne.
PS : Avec les dimensions que tu donne au graph le positionnement sur les lignes step by step est bon avec 25 et x avec 8
donc, comme dis plus haut...
les 2 premiers sur A1 et et i1
suivant sur A25 et i25, etc..
Prend l'exemple de mon code, il fonctionne.
PS : Avec les dimensions que tu donne au graph le positionnement sur les lignes step by step est bon avec 25 et x avec 8
donc, comme dis plus haut...
les 2 premiers sur A1 et et i1
suivant sur A25 et i25, etc..
je viends de re essayer avec votre code et je comfirme que vous inversez les ligne et les colonnes, avec votre code 2 lignes par colone or je veux 2 colonne par ligne.
et que ce soit avec votre code ou le mien j'ai toujours ce décalage entre la 1er ligne de graphiques et la 2e
et que ce soit avec votre code ou le mien j'ai toujours ce décalage entre la 1er ligne de graphiques et la 2e
Un exemple ??
J'ai mis le raccourci Ctrl+P pour les placer.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai mis le raccourci Ctrl+P pour les placer.
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.