Bruno_65
Messages postés50Date d'inscriptionjeudi 10 avril 2014StatutMembreDernière intervention27 juillet 2021
-
16 mai 2015 à 14:34
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
18 mai 2015 à 11:49
Bonjour,
J'ai créé un ControleX / Image.
J'ai remplacé la formule "Incorporer..." par une adresse des cellules =A2:C5.
Cela permet au ControleX d'agir comme une caméra :
1/ Je peux modifier à volonté le contenu de A2:C5, et le ControleX réagit et voit immédiatement tout le changement.
2/ Je peux également déplacer le ControleX, et il continue de voir A2:C5.
3/ Je peux aussi associer au ContreX une macro.
Tout ceci est très pratique !
J'ai néanmoins un problème : J'ai remarqué que si je fais un double-clic sur le ControleX, cela me renvoie automatiquement à A2:C5...
et je ne le veux pas.
Comment désactiver le double-clic du ControleX Image ?
Bonjour,
Aucune réponse à cette question n'est possible sans connaître le code source de ce contrôle activex, seul concerné !
Et comme il n'a certainement pas été créé avec VBA, c'est dans le forum du langage utilisé pour son développement (de cet ocx) qu'il te faut ouvrir une discussion à ce sujet.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Bruno_65
Messages postés50Date d'inscriptionjeudi 10 avril 2014StatutMembreDernière intervention27 juillet 2021 16 mai 2015 à 19:24
Bonjour,
Bien reçu le message.
Mais en fait, je ne sais pas quoi dire, ni quoi faire ?
J'ai simplement fait un ControleX / Image avec Excel, version 2007.
Je n'ai rien fait d'autre. Juste utiliser Excel.
Est-ce que cela veut dire que j'ai utilisé un autre langage ?
Bon :
1) Tu n'as donc pas "fait" un "contrôleX", mais as inséré sur ta feuille Excel un contrôle ActiveX
2) En intervenant ensuite comme tu l'as fait dans la barre des formules pour y mettre, à la place de ce qu'Excel y avait inscrit : =A2:C5 :
---a) tu as complètement désorienté Excel
---b) Excel ne savait plus où il en était et a remplacé ton contrôle activex, qui était un objet Oleobject, par un simple Shape. Il l'a fait comme il l'a pu avec un résultat assez bancale et instable.
---c) tu te rendrais compte de cette "transformation" oiseuse par cette simple boucle :
For Each ob In Me.OLEObjects MsgBox ob.Name Next
qui permet de constater que tu n'as plus le contrôle activex que tu avais inséré !
3) tu aurais pu faire la même "chose" en insérant n'importe quel contrôle activeX (pas forcément un contrôle Image), puis en le "tripatouillant" comme tu l'as fait.
Ce n'est pas du tout ce qu'il convient de faire.
Tu peux par contre très rentablement insérer un contrôle activex listbox et y mettre l'adresse de ta plage (donc A2:C5) dans sa propriété ListFillRange et le nombre de colonnes de cette plage dans la propriété (3, donc) ColumnCount
Voilà.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.