Microsoft 365 Afficher une forme à un endroit précis en fonction du contenu d'une cellule

toutazimut

XLDnaute Nouveau
Bonjour à tous;
Je vous souhaite une belle et heureuse année 2021! Puisse t'elle être meilleure que la précédente!!!!
Je souhaitais demander des conseils pour une macro commande...
Dans un tableau j'ai des valeurs (image ci-dessous ou cf fichier joint). en fonction de ces valeurs, une bulle, s'affiche automatiquement sur un graphique. La grosseur de la bulle dépend de la valeur dans la cellule (valeur n’excédant pas 50%). Jusque là, tout va bien, je me suis fait aider ! En revanche, sur le graphique, tant sur les ordonnées que sur les abscisses, il y a une échelle (de 0 à 50%).
1611064877430.png

Je souhaiterais que les bulles, une fois la valeur dans le tableau renseignée , puissent se placer automatiquement sur l'échelle des valeurs
Je ne sais pas si je me fais bien comprendre !?
La lecture du fichier en attaché vous sera plus parlante
Je vous remercie d'ores et déjà pour vos retours et conseils.
Bonne après midi
Cordialement
 

Pièces jointes

  • Fichier PAD.xlsm
    594.2 KB · Affichages: 24

Rouge

XLDnaute Impliqué
Bonjour,

Pour obtenir une meilleure précision sur les emplacements, il faut réduire la taille des colonnes, puis pour chaque ellipse, sélectionner la cellule qui servira de référence.
Vous pouvez affiner un peu plus en réduisant encore la largeur des colonnes et en augmentant le nombre.

le code
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveSheet.Shapes("Ellipse 9")
        .Height = Range("Q9").Value * 300
        .Width = Range("Q9").Value * 300
        .Top = Range("B11").Top
        .Left = Range("B11").Left
    End With
    With ActiveSheet.Shapes("Ellipse 10")
        .Height = Range("Q10").Value * 300
        .Width = Range("Q10").Value * 300
        .Top = Range("F11").Top
        .Left = Range("F11").Left
     End With
    With ActiveSheet.Shapes("Ellipse 6")
        .Height = Range("Q11").Value * 300
        .Width = Range("Q11").Value * 300
        .Top = Range("I14").Top
        .Left = Range("I14").Left
     End With
    With ActiveSheet.Shapes("Ellipse 7")
        .Height = Range("Q12").Value * 300
        .Width = Range("Q12").Value * 300
        .Top = Range("K19").Top
        .Left = Range("K19").Left
     End With
    With ActiveSheet.Shapes("Ellipse 8")
        .Height = Range("Q13").Value * 300
        .Width = Range("Q13").Value * 300
        .Top = Range("L29").Top
        .Left = Range("L29").Left
     End With
End Sub

Cdlt
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule.xlsm
    560 KB · Affichages: 13

Rouge

XLDnaute Impliqué
Bonjour,

Pour les précisions que vous demandez, il y a un petit problème, en effet, votre support (image d'un graphique) est figé, or vous dites "En revanche, sur le graphique, tant sur les ordonnées que sur les abscisses, il y a une échelle (de 0 à 50%)." et l'échelle sur l'image s'arrête à 35%, cela veut-il dire que vous aller changer d'image si les pourcentages dépassent les 35%?

Cdlt
 

toutazimut

XLDnaute Nouveau
Bonjour;
Je vous remercie vivement pour votre retour ainsi que pour votre proposition. Effectivement il y a une image en fond.
Mais l'idéal serait de suivre le schéma dont je vous ai mis une image sur le fichier: chaque boule comme sur le schéma doit rester sur une même ligne...
Je reste bien entendu à votre entière disposition pour vous apporter de plus amples précisions.
Je vous remercie encore pur votre aide précieuse.
Cordialement
Jérôme Vialard
 

Pièces jointes

  • Copie de toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellu...xlsm
    630.9 KB · Affichages: 7

Rouge

XLDnaute Impliqué
Bonjour,

Voici une présentation qui collerait à votre demande.
Le problème rencontré de mon côté vient du fait qu'il m'a fallu refaire un graphe dessiné qui ressemble au votre et à partir de ce dessin y apporter les boules qui seront placées suivant les valeurs attribuées.
Or, le dessin étant assez approximatif et les calculs de placement étant plutôt précis, l'approximation et la précision ne font pas bon ménage, d'où le résultat visuel n'est pas parfait selon les valeurs des pourcentages saisis.

Le fonctionnement:
Dès qu'une valeur est saisie (ne pas saisir "%", c'est ajouté automatiquement), le graphique est mis à jour dans la foulée. Malgré le manque de précision, j'espère que cela pourra vous convenir.

le rendu visuel:


toutazimut.JPG
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule_4.xlsm
    566.5 KB · Affichages: 9

toutazimut

XLDnaute Nouveau
Bonjour;
Encore une fois je vous remercie pour votre retour. Quel travail !!!
Vous auriez du me le dire je vous aurai refait le fichier notamment l'image que vous avez du recréer !
Autre remarque et j'en arrêterai là!!!!
Comment augmenter la taille des bulles notamment quand on a une valeur de 30% = avoir la diamètre de la bulle au moins égal à l'écart entre les 2 flèches?
Je reste à votre disposition pour vous apporter plus de précisions.
En vous remerciant vivement pour votre aide !
Cordialement
Jérôme Vialard
 

Rouge

XLDnaute Impliqué
Bonjour,

Je ne vous ai pas oublié, mais je n'avais pas suffisamment de temps à y consacrer.
Voilà, j'ai tout repris mais malgré cela, j'ai beaucoup de difficulté avec les précisions, mais je pense que cela devrait vous convenir quand même.

Pour compenser le manque de précision, en plus des tailles modulables en fonction des valeurs saisies dans la plage AN1:AN5, j'affiche les valeurs dans chacune des 5 boules.


Cdlt
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule_4.3.xlsm
    588.5 KB · Affichages: 6

Rouge

XLDnaute Impliqué
Bonjour

Voilà le fichier. J'ai prévu un affichage jusqu'à une échelle de 60 (j'ai été peut-être un peu trop optimiste). s'il faut le réduire, je peux le refaire mais ça prend un peu de temps.
En attendant voici quelques recommandations:
-ne modifiez rien sur cette feuille, ni la hauteur des lignes, ni la largeur des colonnes, ne déplacez pas le graphique. Tous les tracés sont construits avec précision par rapport à l'ensemble des éléments lignes et colonnes.
Le graphique se met à jour dès que l'on change une valeur "Panique, Défi, Performance, etc..."

Cdlt
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule_GABARI...xlsm
    119.3 KB · Affichages: 3

Rouge

XLDnaute Impliqué
Suite au message précédent ce jour, j'ai revu ma copie et modifié le graphique pour le ramener à u,ne taille maxi de 50, j'espère que cela vous conviendra mieux.

Cdlt
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule_GABARI...xlsm
    116.6 KB · Affichages: 5

toutazimut

XLDnaute Nouveau
Bonsoir
Encore un grand merci pour votre aide. Pensez-vous qu'il soit possible de faire tenir l'ensemble de ce graphique sur une feuille A4? J'ai essayé de masquer des colonnes mais forcement j'ai un message d'erreur du code que vous avez créé !
Mais à condition que cela ne vous demande pas un gros travail, vous en avez déjà fait suffisamment !!!!!
Ensuite, auriez vous une idée du code d'impression en pdf, afin que le fichier généré depuis ce bouton puisse aller quelque soit le PC, sur le bureau?
En vous remerciant de nouveau pour cette aide précieuse...
Cordialement
 

Rouge

XLDnaute Impliqué
Bonjour,

Voilà, j'ai ajouté une bouton "Imprimer en PDF", la zone d'impression est paramétrée pour occuper le maximum de place sur une feuille A4 sans trop de distorsion du graphique.

Cdlt
 

Pièces jointes

  • toutazimut_Afficher une forme à un endroit précis en fonction du contenu d'une cellule_GABARI...xlsm
    115.1 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 592
Membres
111 208
dernier inscrit
estalavista