Actualiser la position d'objets dansune feuille

Bonjour à tous,

J'ai fait pas mal de recherches sur le sujet car cela fait un bon mois que ce problème me gêne mais je ne trouve pas de solution.

J'ai une feuille dans laquelle il y a des infos et des boutons macros (ActiveX)

Certaines actions macros provoquent le masquage de certaines lignes, lignes dans lesquelles il peut y avoir lesdits boutons.

Du coup les boutons se superposent

Pour éviter la superposition de boutons je les repositionne proprement dans ma feuille.

Les boutons se repositionnent correctement mais l'affichage ne s'actualise pas toujours...

Par conséquent mes boutons sont bien placés mais souvent ils apparaissent les uns sur les autres.

Obligé de fermer (en sauvegardant) et de rouvrir le fichier pour que les boutons apparaissent là où ils sont (et supposés être)

C'est simplement un problème d'affichage.

Solutions essayées mais sans succès:

* Désactiver le Application.Screenupdating = False

* Le laisser et mettre en fin de code Application.Screenupdating = True à la fin

* Refreshall

* Calculate

etc...

Parfois ça marche, parfois l'affichage reste bloqués sur des boutons superposés alors qu'en vrai ils sont bien placés !

Si quelqu'un a une solution ou des pistes je suis preneur

Situation normale

avant

SItuation après avoir masqué des lignes (j'ai du faire la manip 6-7 fois pour que ça bug comme ça mais ça finit toujours par bugger)

apres

Bonjour,

le plus simple est d'agrandir la ligne 1, la figer et y mettre tous tes boutons.

Sinon tu vas partir dans des calculs imbitables pour savoir lesquels déplacer et où les mettre.

Et de plus, depuis 2013 c'est parfois la galère pour lui faire comprendre quelle est la feuille active...

eric

Bonjour eriiic,

Visuellement je ne vois pas comment je peux réussir à placer une énorme ligne tout en conservant la lisibilité du reste du planning.

Si je n'ai qu'une immense ligne elle ne sera pas visible sur le reste du document...

A moins que j'ai mal compris

Si, tu as bien compris, mais pas si immense que ça

Reste le pb si tu as un planning de plus de 4 jours...

Alors autre idée...

Faire une capture de tous tes boutons dans une image unique que tu colles à la place.

Et te servir de l'événement Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) pour déterminer le lieu du clic avec X, Y

Tu pourras même prévoir des Alt+Ctrl+Maj+clic droit pour des traitements spéciaux

Par contre il y aura peut être un calcul pénible à faire si l'utilisateur peut zoomer, et prévoir des images supplémentaires pour coché/décoché.

eric

PS : mais au fait, si tu choisissais 'Ne pas déplacer ou dimensionner avec les cellules' , ça ne serait pas mieux ?

Bonjour eriiic,

C'est une option que je ne connaissais pas celle de l'image et positionnement X/Y, mais il pourra y avoir en effet du zoom et dézoom donc des calculs pénibles.

Je ne connais pas ce "Ne pas déplacer ou dimensionner avec les cellules", c'est surement ce qu'il me faut !

Comment est-ce que je fais pour appliquer ça à mes boutons activex

Ce serait parfait !

Edit: Je crois que j'ai trouvé, c'est la propriété "Placement" que je dois modifier et attribuer à "3" c'est ça ?

Bonjour,

oui :

Nom Valeur Description

xlFreeFloating 3 L'objet est flottant.

xlMove 2 L'objet est déplacé avec les cellules.

xlMoveAndSize 1 L'objet est déplacé et redimensionné avec les cellules.

Ou bien tu sélectionnes tous tes objets, clic-droit Format de contrôle, onglet Propriétés.

eric

Au top, merci eriiic

Rechercher des sujets similaires à "actualiser position objets dansune feuille"