[VBA] Création d'un graphique avec formalisation

miky973

XLDnaute Occasionnel
Bonjour à tous,

Je suis actuellement en stage et mon projet et d'essayer de faire un maximum d'automatisation dans mon secteur. Je rencontre des problèmes dans la création d'un tableau automatisé qui est envoyé par lui suite sur un ppt.

J'aimerai pouvoir créer un graphique à partir de type PlotBy:=xlColumns en vba,
que ce graphique soit envoyer dans la feuille "Graphique"
Etant donné que ce sont des valeurs qui sont modifiable par mois les secteurs peuvent aller de 1 à 25 secteur.

Pour avoir un graphique propre et bien formalisation je voudrai pouvoir ne retenir que les cellulles contenant une valeur.

De plus en cliquant sur le bouton ajout de graphique je voudrai tout simplement mettre à jour les informations et non en duppliquer 2. Parce que mon script de base en cliquant sur ajout de graph recréait carrément un autre graphique. Je voudrai soit le mettre à jour soit le remplacer automatiquement.


P.S : Je n'ai pas créer de script VBA de base dans cet exemple parce que j'ai fait un peu n'importe quoi et que j'aimerai un belle base pour pouvoir travailler dessus.

Merci de votre compréhension et également pour votre aide.


Best Regards

Miky
 

Pièces jointes

  • exemple-auto-graph.xls
    23 KB · Affichages: 163
  • exemple-auto-graph.xls
    23 KB · Affichages: 161
  • exemple-auto-graph.xls
    23 KB · Affichages: 163

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Bonjour
J'aimerai pouvoir créer un graphique à partir de type PlotBy:=xlColumns en vba,
Je ne sais pas ce que c'est.

Votre feuille "Graphique" n'est pas un graphique mais une feuille de calcul vide.
Veuillez re-joindre votre classeur avec un exemple du graphique souhaité.
À +
 

miky973

XLDnaute Occasionnel
Re : [VBA] Création d'un graphique avec formalisation

Re-Bonjour,

Voici un modèle de graphique que je souhaiterai réalisé.

un exemple

Merci pour votre aide

A+
 

Pièces jointes

  • exemple-auto-graph.xls
    26 KB · Affichages: 173
  • exemple-auto-graph.xls
    26 KB · Affichages: 177
  • exemple-auto-graph.xls
    26 KB · Affichages: 176

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Deux problèmes.
1) - Je ne vois pas pour l'instant ce qui empêcherait de se mettre à jour le graphique mis en place une bonne fois pour toutes, quand on modifie les données de la feuille1. Quels seraient les détails qui ne suivraient pas bien ?
2) - Dans l'exemple que vous avez re-joint, le graphique s'appuie sur un autre fichier manquant et non sur les données de la feuille1, et en essayant de corriger je n'ai pas eu le même résultat.

Pourquoi pas une feuille de type graphique plutôt qu'un petit graphique incorporé dans une feuille de type feuille de calcul ?
 

miky973

XLDnaute Occasionnel
Re : [VBA] Création d'un graphique avec formalisation

Deux problèmes.
1) - Je ne vois pas pour l'instant ce qui empêcherait de se mettre à jour le graphique mis en place une bonne fois pour toutes, quand on modifie les données de la feuille1. Quels seraient les détails qui ne suivraient pas bien ?
2) - Dans l'exemple que vous avez re-joint, le graphique s'appuie sur un autre fichier manquant et non sur les données de la feuille1, et en essayant de corriger je n'ai pas eu le même résultat.

Pourquoi pas une feuille de type graphique plutôt qu'un petit graphique incorporé dans une feuille de type feuille de calcul ?

Re
Le but du jeu n'est pas de mettre à jour au début, mais de créer un graphique à partir du bouton pour faire des mise à jour, le graphique que je vous ai envoyé n'est qu'un modèle mais le bouton doit créer un graphique telle la méthode suivante :
Sub Macro4()
'
' Macro4 Macro
' Macro enregistrée le 14/03/2011 par Mike Veldwachter
'

'
Application.WindowState = xlMinimized
Range("A62:C80").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Résultat").Range("A62:C80"), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Delete
ActiveChart.SeriesCollection(1).XValues = "=Résultat!R63C1:R80C1"
ActiveChart.SeriesCollection(2).XValues = "=Résultat!R63C1:R80C1"
ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Répartition Sectorielle"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False
ActiveChart.PlotArea.Select
Selection.ClearFormats
ActiveChart.ShowWindow = True
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlValue).MajorGridlines.Select
With Selection.Border
.ColorIndex = 57
.Weight = xlHairline
.LineStyle = xlDot
End With
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 57
.Weight = xlHairline
.LineStyle = xlDot
End With
Selection.Interior.ColorIndex = xlNone
ActiveChart.ChartArea.Select
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 57
.Weight = xlHairline
.LineStyle = xlDot
End With
Selection.Interior.ColorIndex = xlNone
ActiveChart.Axes(xlValue).MajorGridlines.Select
With ActiveChart.Axes(xlValue)
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveChart.Axes(xlCategory).Select
With Selection.TickLabels
.Alignment = xlCenter
.Offset = 100
.Orientation = xlAutomatic
End With
End Sub

Mon graphique se cré mais pas comme je voudrai c'est pour ce la que je vous laisse le choix pour la proposition et la méthode à effectuer.

Pour avoir un graphique propre et bien formalisation je voudrai pouvoir ne retenir que les cellulles contenant une valeur.

De plus en cliquant sur le bouton ajout de graphique je voudrai tout simplement mettre à jour les informations et non en duppliquer 2. Parce que mon script de base en cliquant sur ajout de graph recréait carrément un autre graphique. Je voudrai soit le mettre à jour soit le remplacer automatiquement.

A+
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Mon graphique se cré mais pas comme je voudrai c'est pour ce la que je vous laisse le choix pour la proposition et la méthode à effectuer.
Oui ben justement j'ai beaucoup de mal à voir comment vous voudriez qu'il soit si votre modèle ne s'appuie pas sur les données.
De plus en cliquant sur le bouton ajout de graphique je voudrai tout simplement mettre à jour les informations et non en duppliquer 2. Parce que mon script de base en cliquant sur ajout de graph recréait carrément un autre graphique. Je voudrai soit le mettre à jour soit le remplacer automatiquement.
Eh bien le plus simple ce serait de simplement le mettre à jour, vu qu'il n'y alors... rien à faire .
 

miky973

XLDnaute Occasionnel
Re : [VBA] Création d'un graphique avec formalisation

Oui ben justement j'ai beaucoup de mal à voir comment vous voudriez qu'il soit si votre modèle ne s'appuie pas sur les données.
Les donnée du tableau doivent créer un graphique à partir du bouton..

Eh bien le plus simple ce serait de simplement le mettre à jour, vu qu'il n'y alors... rien à faire .
Quel serai la méthode à utiliser pour réaliser cette mise à jour. Car si le premier le fichier que j'ai selectionner extrait 5 pays et que le mois suivant 25 secteurs. Le graphique évoluera en supprimant et en ajoutant des cellule dans le tableau?
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Oui, à condition de procéder par insersion de lignes avant la dernière et non pas d'ajouter des lignes à la suite. Il est possible que votre problème revienne plutôt à une assistance à la mise à jour des données.
On pourrait faire en sorte qu'une sélection juste après la dernière ligne insère une copie de celle ci puis un effacement de la nouvelle dernière ligne par exemple.

P.S. Si la 1ère feuille provient d'une extraction depuis une autre application, il conviendrait que votre bouton facilite l'importation depuis le classeur qui en résulte, en réajustant la plage de lignes couvertes par le graphique au nombre de lignes présentes dans l'extraction.
 
Dernière édition:

miky973

XLDnaute Occasionnel
Re : [VBA] Création d'un graphique avec formalisation

Oui, à condition de procéder par insersion de lignes avant la dernière et non pas d'ajouter des lignes à la suite. Il est possible que votre problème revienne plutôt à une assistance à la mise à jour des données.
On pourrait faire en sorte qu'une sélection juste après la dernière ligne insère une copie de celle ci puis un effacement de la nouvelle dernière ligne par exemple.

P.S. Si la 1ère feuille provient d'une extraction depuis une autre application, il conviendrait que votre bouton facilite l'importation depuis le classeur qui en résulte, en réajustant la plage de lignes couvertes par le graphique au nombre de lignes présentes dans l'extraction.

Re,

Désolé de te reprendre mais je cherche la méthode pour pouvoir le réaliser, car à ce jour, je n'ai tours pas réussis, j'aimerai que le graphique ne me donne pas les valeurs vide puisque le nombre de champs pourrai augmenter comme diminuer. Comment faire cette macro? aurais tu un exemple pour moi? A mon avis, je ne sais pas si le graphique s'adapterai en ajoutant ou en supprimant des valeurs.

Merci pour ton aide,

A+

Miky
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Je ne sais pas si le graphique s'adapterai en ajoutant ou en supprimant des valeurs.
Vous devriez le savoir maintenant puisque je vous l'ai dit !
Quel dispositif vous intéresserait ?
Celui qui veille à englober dans les séries existantes une ligne qu'on tenterait de taper en dessous, ou celui qui se chargerait d'une importation en y veillant ?
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Je vais commencer à écrire la procédure dans la feuille pour un bouton de commande "Importer"
Cependant j'aurais encore besoin de précisions.
Se pourra-t-il que le classeur à importer soit déjà parmi les classeur déjà ouverts ?
Peut on se baser sur la présence des titres de colonnes ?
Le mieux serait que vous me joingnez un exemplaire de classeur à importer.
Serait il intéressant de noter le chemin du classeur importé pour proposer une ouverture en partant du même chemin ?

En attendant laissez moi vous proposer une feuille de contrôle qui se charge de tout dans n'importe quel classeur à charge pour vous de la renseigner convenablement.
Des noms de plages de colonnes sont recommandés dans le classeur cible qui doit contenir cette feuille de contrôle, tandis que les titres des colonnes servent de guide dans le classeur source.
 

Pièces jointes

  • Importation.xls
    38 KB · Affichages: 124
  • Importation.xls
    38 KB · Affichages: 121
  • Importation.xls
    38 KB · Affichages: 122

Dranreb

XLDnaute Barbatruc
Re : [VBA] Création d'un graphique avec formalisation

Bonjour.

En l'absence de précisions concernant le fichier source, j'ai supposé que les titres étaient en ligne 1, ne comportaient que ces trois titres, et que les données commençaient juste derrière, le tout à partir de la colonne A.
J'ai ajouté les noms Pays,Port,Indice au niveau classeur et Tablo niveau feuille Résultat.
C'est une habitude pour moi de nommer "Tablo" l'ensemble des lignes qui est souvent la zone d'impression sauf les lignes à répéter en haut.
J'ai laissé une feuille de controle d'importation, c'est le plus simple car tout peut se paramétrer depuis là, mais j'ai mis dans un module séparé l'importation qui applique une telle feuille.
J'ai aussi fait en sorte de l'exécuter par un bouton "Importer" de la feuille Résultat.
En espérant que vous serez satisfait.
Cordialement.
 

Pièces jointes

  • exemple-auto-graph.xls
    77 KB · Affichages: 95
  • exemple-auto-graph.xls
    77 KB · Affichages: 94
  • exemple-auto-graph.xls
    77 KB · Affichages: 98

miky973

XLDnaute Occasionnel
Re : [VBA] Création d'un graphique avec formalisation

Bonjour Dranreb,

Ce que tu vien de faire me parait beaucoup plus clair, en faite je v t'expliquer le principe.

Le fichier je l'importe à la base===> ce qui ne me pose pas de problème cela me permet de faire l'extraction de mes données du tableau.
en cas de mise à jour les valeurs sont récupérer et donc écrasé dans Mon tableau limité a 25 valeurs ou cellules cette mise à jour se fait sans problème. le fiichier du mois suivant toujours avec les mm champs mais avec plus ou moins de cellule (limité a 25).

Cela ne me pose aucun probleme

Mais mon problème c'est que je dois créer un graphique )à partir des donnée que j'extraie, il faut que ce soit automatique et que sa ailles dans la feuille "Graphique"
Le graphique réaliser si j'ai 25 valeurs cela va bien me remplir mon graphique mais si je n'ai que 4 valeurs mon graphique aura 21 champs vides dans le graphique.

Mon graphique automatike récupère les champs de B1 à C25 obligatoirement.

Ce qui fait que mon graphique n'est pas propre.

Donc je cherche une solution pour faire cela. L'importation n'est pas le problème c la formalisation de mon graphique qui pose problème en prenant encompte automatiquement le tableau de B1:C25

J'espère avoir été plus compréhensible.

Best Regards

Miky
 

Discussions similaires

Réponses
6
Affichages
298
Réponses
1
Affichages
157
Réponses
1
Affichages
290
Compte Supprimé 979
C

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa