CHALLENGE : Action lors d'un redimensionnement ou déplacement d'un cadre
Résolu/Fermé
GDX
Messages postés
219
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
-
10 nov. 2018 à 11:52
GDX Messages postés 219 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 16 janvier 2020 - 18 nov. 2018 à 10:43
GDX Messages postés 219 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 16 janvier 2020 - 18 nov. 2018 à 10:43
A voir également:
- CHALLENGE : Action lors d'un redimensionnement ou déplacement d'un cadre
- Accounts.google.com https //accounts.google.com/signin/v2/challenge/pwd ✓ - Forum Gmail
- Ski challenge pc - Télécharger - Simulation
- Kylie jenner challenge comment enlever - Forum Twitter
- Challenge required instagram - Forum Instagram
- Challenge requested - Forum Instagram
2 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
10 nov. 2018 à 16:15
10 nov. 2018 à 16:15
Bonjour,
Chaque tâche est représenté par une forme rectangulaire.
Ceux sont certainement des Shapes
Tu mets dans un module ta macro comme ceci:
ensuite faire un clic droit sur ta forme rectangulaire.
Affecter une macro et tu sélectionnes Mamacro.
A chaque clic tu auras ton message
Voilà
Chaque tâche est représenté par une forme rectangulaire.
Ceux sont certainement des Shapes
Tu mets dans un module ta macro comme ceci:
Option Explicit Sub Mamacro() MsgBox "Vous avez cliqué sur la shape : " & Application.Caller End Sub
ensuite faire un clic droit sur ta forme rectangulaire.
Affecter une macro et tu sélectionnes Mamacro.
A chaque clic tu auras ton message
Voilà
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 10 nov. 2018 à 18:30
Modifié le 10 nov. 2018 à 18:30
Bonjour,
Je ne vois qu'une solution pour détecter le relâchement de la souris mais c'est assez complexe :
Pour tes rectangles, au lieu d'utiliser des formes (shape), il faut utiliser des contrôles activeX, par exemple des images ou des labels.
Tu peux alors utiliser MouseDown et MouseMove pour gérer le déplacement et/ou le dimensionnement du rectangle (image ou label), c'est pas simple car il faut créer/supprimer les 8 petits rectangles (coins et milieux) qui servent à redimensionner.
Et ensuite utilises le MouseUp pour exécuter ta macro.
Vu qu'il y a plusieurs rectangles, il vaut mieux gérer l'ensemble avec un module de classe.
Je ne vois qu'une solution pour détecter le relâchement de la souris mais c'est assez complexe :
Pour tes rectangles, au lieu d'utiliser des formes (shape), il faut utiliser des contrôles activeX, par exemple des images ou des labels.
Tu peux alors utiliser MouseDown et MouseMove pour gérer le déplacement et/ou le dimensionnement du rectangle (image ou label), c'est pas simple car il faut créer/supprimer les 8 petits rectangles (coins et milieux) qui servent à redimensionner.
Et ensuite utilises le MouseUp pour exécuter ta macro.
Vu qu'il y a plusieurs rectangles, il vaut mieux gérer l'ensemble avec un module de classe.
GDX
Messages postés
219
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
9
15 nov. 2018 à 20:46
15 nov. 2018 à 20:46
Merci Patrice,
en effet les ActiveX peuvent répondre à mon problème. En revanche une question me turlupine.
Si je créer 100 cadres ActiveX, est-ce que je devrai avoir 100 Sub mouseUp pour chacune des cadres ?
Sachant que les cardes sont créés de manière dynamique avec une macro, il faudra que cette macro génère le code mouseUp associé au carde pour chaque création.
Cela me semble assez lourd.
Y-a-t-il une solution pour avoir un seul Sub MouseUp qui gère tous les cadres ActiveX ?
Merci,
en effet les ActiveX peuvent répondre à mon problème. En revanche une question me turlupine.
Si je créer 100 cadres ActiveX, est-ce que je devrai avoir 100 Sub mouseUp pour chacune des cadres ?
Sachant que les cardes sont créés de manière dynamique avec une macro, il faudra que cette macro génère le code mouseUp associé au carde pour chaque création.
Cela me semble assez lourd.
Y-a-t-il une solution pour avoir un seul Sub MouseUp qui gère tous les cadres ActiveX ?
Merci,
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 nov. 2018 à 21:08
15 nov. 2018 à 21:08
Re,
un seul MouseUp, c''est dans ma réponse :
« Vu qu'il y a plusieurs rectangles, il vaut mieux gérer l'ensemble avec un module de classe. »
un seul MouseUp, c''est dans ma réponse :
« Vu qu'il y a plusieurs rectangles, il vaut mieux gérer l'ensemble avec un module de classe. »
GDX
Messages postés
219
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
9
15 nov. 2018 à 21:29
15 nov. 2018 à 21:29
OK merci, je n'ai jamais utilisé de module de classe je vais aller voir un cours sur le sujet.
Merci,
Merci,
GDX
Messages postés
219
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
9
15 nov. 2018 à 22:06
15 nov. 2018 à 22:06
J'ai continué à travailler sur ce sujet mais j'ai encore une question.
Je souhaite que mon cadre activex ait le même comportement en mode normal que lorsque que le mode création est activé.
C'est-à-dire, laisser la possiblité de déplacer ou redimensionner le cadre.
Ce code permet bien de sélectionner le cadre mais pas d'afficher les point aux coins du cadre pour le redimensionner.
Je pense que ce que je cherche à faire est impossible :-(
GDX
Je souhaite que mon cadre activex ait le même comportement en mode normal que lorsque que le mode création est activé.
C'est-à-dire, laisser la possiblité de déplacer ou redimensionner le cadre.
Private Sub Label1_Click()
Label1.Select
End Sub
Ce code permet bien de sélectionner le cadre mais pas d'afficher les point aux coins du cadre pour le redimensionner.
Je pense que ce que je cherche à faire est impossible :-(
GDX
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 16 nov. 2018 à 00:14
Modifié le 16 nov. 2018 à 00:14
Impossible Non, mais comme je te l'ai dit, complexe :
«Tu peux alors utiliser MouseDown et MouseMove pour gérer le déplacement et/ou le dimensionnement du rectangle (image ou label), c'est pas simple car il faut créer/supprimer les 8 petits rectangles (coins et milieux) qui servent à redimensionner. »
«Tu peux alors utiliser MouseDown et MouseMove pour gérer le déplacement et/ou le dimensionnement du rectangle (image ou label), c'est pas simple car il faut créer/supprimer les 8 petits rectangles (coins et milieux) qui servent à redimensionner. »
15 nov. 2018 à 19:49
Je vais essayer de mettre en oeuvre la solution de Partice33740 mais si je n'y arrive pas, cette solution cheap fera l'affaire.
Merci,
GDX