Simuler un triple click

MJ13

XLDnaute Barbatruc
Bonjour à tous

Dans les évênements, on trouve le click, le Dblclick, parfois right_click.
Mais ne pourrait-on pas simuler le triple click pour lancer une macro (exemple par rapport a un double click qui lancerait une macro de tri ascendant et le triple click pour un tri descendant).

Merci si vous avez des idées.
 

MJ13

XLDnaute Barbatruc
Re : Simuler un triple click

Re Jean Marie

Merci pour ces liens. Mais cela me paraît assez compliqué.

Je joins un fichier pour mieux comprendre.

On pourait aussi faire un double click affiche ok1, un autre double click en moins de 2 secondes pour afficher ok2. Et si on attend plus de 2 secondes, on redémarre sur ok1 au prochain double click.

Merci à tous pour ce que l'on pourrait appeler un challenge.
 

Pièces jointes

  • Triple_Click_Possible_ou_Non.xls
    28 KB · Affichages: 109

job75

XLDnaute Barbatruc
Re : Simuler un triple click

Bonjour MJ13, re Staple,

Ci-joint un essai avec 1 ou 2 doubles clics en 2 secondes.

Les macros sont en Feuil1 et dans le module.

Edit : enregistrer d'abord le classeur sur le bureau...

A+
 

Pièces jointes

  • Classeur1.xls
    32 KB · Affichages: 131
  • Classeur1.xls
    32 KB · Affichages: 141
  • Classeur1.xls
    32 KB · Affichages: 144
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : Simuler un triple click

Bonsoir MJ13, Staple1600, Job75, le Forum,

Une autre tentative, toujours sur le même principe mais en s'aidant un peu de l'Api Windows...

Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]

[COLOR=NAVY]Option Explicit[/COLOR]
[COLOR=GREEN]'myDearFriend!  -  www.mdf-xlpages.com[/COLOR]

[COLOR=NAVY]Private Declare Function[/COLOR] GetTickCount [COLOR=NAVY]Lib[/COLOR] "Kernel32" () [COLOR=NAVY]As Long[/COLOR]         [COLOR=GREEN]'Temps écoulé (millisecondes)[/COLOR]
[COLOR=NAVY]Private Declare Function[/COLOR] GetDoubleClickTime [COLOR=NAVY]Lib[/COLOR] "User32" () [COLOR=NAVY]As Long[/COLOR]  [COLOR=GREEN]'Durée du Dbl-Clic[/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Worksheet_BeforeDoubleClick([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range, Cancel [COLOR=NAVY]As Boolean[/COLOR])
[COLOR=NAVY]Dim[/COLOR] T [COLOR=NAVY]As Long
Static[/COLOR] C [COLOR=NAVY]As Byte[/COLOR]
    Cancel = [COLOR=NAVY]True[/COLOR]
    C = C + 1
    T = GetTickCount
    [COLOR=NAVY]Do[/COLOR]
         DoEvents
    [COLOR=NAVY]Loop Until[/COLOR] (GetTickCount - T) > (GetDoubleClickTime * 1.2)  [COLOR=GREEN]'Coef 1.2 pour laisser le temps d'un 2ème Dbl-Clic[/COLOR]
    TraiteDblClick C
    C = 0
[COLOR=NAVY]End Sub[/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] TraiteDblClick(N [COLOR=NAVY]As Byte[/COLOR])
    [COLOR=NAVY]If[/COLOR] N > 0 [COLOR=NAVY]Then[/COLOR] MsgBox "Ok" & [COLOR=NAVY]CStr[/COLOR](N)
[COLOR=NAVY]End Sub[/COLOR]
En étant rapide lors des double-clics ou en jouant éventuellement sur le coefficient (1.2) appliqué, on peut gérer 2, 3, 4, voire autant de double-clics consécutifs qu'on le souhaite...

Cordialement,
 

Pièces jointes

  • mDF_QuadrupleClick_Cellule.zip
    7.3 KB · Affichages: 65

MJ13

XLDnaute Barbatruc
Re : Simuler un triple click

Bonjour Job75, Didier, JM et les autres

Job75. Ton programme fonctionne très bien. J'ai même pu augmenter à 3 le nombre de double clic en rajoutant 3 pour le temps et une ligne avec If a = 3 Then ...

Didier, idem, cela fonctionne très bien et en plus on peut même faire plus de 2 doubleclick en paramètrant le coefficient de temps, cela nous ouvre de nombreux types de déclenchements de macros.

C'est une programmation qui m'aurait pris des heures sans doute sans avoir ce résultat de code simple (surtout pour celui de Job75). En plus j'aime bien le cancel=true.

Merci d'avoir fait avancé la sience des macros. Challenge réussi avec succès.
 

MJ13

XLDnaute Barbatruc
Re : Simuler un triple click

Bonjur à tous

Merci tototiti.
Mais bon les codes de Job et Didier sont bien (de plus je crois que le tien ne fait pas vraiment ce que je veux).

Alors voila en combinant le code de Job75 avec cette macro et son contraire xldescending.
On peut trier un tableau en fonction de la cellule ou on se trouve, ascendant avec un double click et descendant avec 2 doubles clicks.


Code:
Sub Tri_auto_tableau_dblclick_Ascen()
' Macro enregistrée le 18/11/2008 par MJ
'Stop
nlact = ActiveCell.Rows.Row
ncact = ActiveCell.Columns.Column
    Cells(nlact, ncact).Select
    Selection.CurrentRegion.Select
      'Stop
    ActiveWorkbook.Names.Add Name:="Fortri"
Range("Fortri").Select
Selection.Sort Key1:=Cells(nlact, ncact).Value, Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal  
Cells(nlact, ncact).Select           
End Sub
 

Discussions similaires

Réponses
4
Affichages
350

Statistiques des forums

Discussions
312 623
Messages
2 090 277
Membres
104 479
dernier inscrit
Guengant