Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Action sur click droit de la sourie sur une cellule

8 réponses
Avatar
raphael-diaz
Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click droit de la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre à une feuille.
Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet "MonOnglet" et sur telle cellule, et si l'utilisateur fait un click droit, alors exécuter la macro « CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
If ActiveSheetIs("MonOnglet") And MouseDown() Then 'click droit dans l’onglet
Call CreateVersionListOnBeforeRightClickEvent(Target)
End If
End If
Next w


Merci d'avance pour votre aide.
Sincérement

8 réponses

Avatar
LSteph
Bonjour,

Dans le code du ThisWorkbook du classeur:

Private Sub Workbook_SheetBeforeRightClick(ByVal _
Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "Sur n'importe quelle feuille, ca marche!"
End Sub

'LSteph

On 2 fév, 10:27, raphael-diaz wrote:
Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click droit de
la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
    Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre à une feuille.

Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet "MonOnglet" et sur  telle
cellule, et si l'utilisateur fait un click droit, alors exécuter la mac ro «
CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
 If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
    If ActiveSheetIs("MonOnglet") And MouseDown() Then  'click droi t dans
l’onglet
        Call CreateVersionListOnBeforeRightClickEvent(Target)
    End If
 End If
Next w

Merci d'avance pour votre aide.
Sincérement
Avatar
LSteph
..et voici entre autres utilité des parametres:

Private Sub Workbook_SheetBeforeRightClick(ByVal _
Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim iSect As Range
'''
If Sh.Name <> "Accueil" Then _
MsgBox "Sur n'importe quelle feuille, sauf Accueil ca marche!"
'''
Set iSect = Intersect(Target, [B2])
If Not iSect Is Nothing Then
MsgBox "Bravo, c'est cette cellule qu'on voulait"
Else
MsgBox "mais ce n'est pas cette cellule"
End If
'''
Cancel = True ' annule l'affichage du menu contextuel

End Sub

'LSteph


On 2 fév, 10:27, raphael-diaz wrote:
Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click droit de
la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
    Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre à une feuille.

Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet "MonOnglet" et sur  telle
cellule, et si l'utilisateur fait un click droit, alors exécuter la mac ro «
CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
 If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
    If ActiveSheetIs("MonOnglet") And MouseDown() Then  'click droi t dans
l’onglet
        Call CreateVersionListOnBeforeRightClickEvent(Target)
    End If
 End If
Next w

Merci d'avance pour votre aide.
Sincérement
Avatar
michel ou sam
Bonjour,
une piste
à mettre dans ThisWorkbook

Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As
Range, Cancel As Boolean)
MsgBox Sh.Name
MsgBox Target.Address
End Sub

Michel


"raphael-diaz" a écrit dans le message de news:

Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click
droit de
la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre à une
feuille.

Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet "MonOnglet" et sur
telle
cellule, et si l'utilisateur fait un click droit, alors exécuter la macro
«
CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
If ActiveSheetIs("MonOnglet") And MouseDown() Then 'click droit dans
l’onglet
Call CreateVersionListOnBeforeRightClickEvent(Target)
End If
End If
Next w


Merci d'avance pour votre aide.
Sincérement
Avatar
raphael-diaz
raphael-diaz a écrit le 02/02/2011 à 10h27 :
Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click
droit de la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre
à une feuille.
Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet
"MonOnglet" et sur telle cellule, et si l'utilisateur fait un click
droit, alors exécuter la macro «
CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
If ActiveSheetIs("MonOnglet") And MouseDown() Then 'click droit
dans l’onglet
Call CreateVersionListOnBeforeRightClickEvent(Target)
End If
End If
Next w


Merci d'avance pour votre aide.
Sincérement


Merci pour votre aide, c'est tres sympa. Les paramètres de "Worksheet_BeforeRightClick" vont pouvoir m'aider à mieux cerner d'où vient le probleme.

Cependant j'aimerais obtenir un code générique et non pas propre à une feuille. C'est à dire que je ne veux pas placer le code de la macro "Worksheet_BeforeRightClick" dans la feuille où ce situe mon évenement mais dans une autre feuille excel.

J'ai créé un fichier excel que je place dans C:Program FilesMicrosoft OfficeOFFICE11XLSTART et qui fonctionne sur un ensemble de fichiers excel.
Je veux donc créer un code indépendant qui s'applique sur une feuille particuliere mais le code lui meme n'est pas dans la feuille, il est externe(dans une autre feuille). C'est pour ca que j'avais pensé à la macro "MouseDown" que je n'ai pas su bien utiliser..

Le probleme c'est qu'il faut créer une configuration sur évenement "click droit" qui soit définie sur tel cellule de tel fichier et non pas l'inverse.Je ne sais pas si je suis clair...
Si vous avez des interrogations sur ma demande n'hésiter pas, en attendant je vais trifouiller Worksheet_BeforeRightClick pour voir si il y a d'autres alternative avec cette macro...
Avatar
LSteph
Re,

Je t'ai pourtant indiqué de mettre cela dans le module Thisworkbook et
non dans le module d'une feuille.

Cordialement.

--
LSteph

On 2 fév, 17:57, raphael-diaz wrote:
raphael-diaz a écrit le 02/02/2011 à 10h27 :



> Bonjour,
> J'aimerais savoir comment faire pour créer en VBA une action sur clic k
> droit de la sourie sur une cellule précise d’une feuille Excel.

> Avant j'utilisais le code VBA directement dans la feuille du classeur :
> Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
> Boolean)
>     Call CreateVersionListOnBeforeRightClickEvent(Target)
> End Sub

> Cependant j'aimerais obtenir un code générique et non pas propre
> à une feuille.
> Ce code devra donc être:
> Si on es dans le classeur "MonClasseur" dans l'onglet
> "MonOnglet" et sur  telle cellule, et si l'utilisateur fait un click
> droit, alors exécuter la macro «
> CreateVersionListOnBeforeRightClickEvent() ».
> Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

> For Each w In Workbooks
>  If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
>     If ActiveSheetIs("MonOnglet") And MouseDown() Then  'click dr oit
> dans l’onglet
>            Call CreateVersionListOnBeforeRightClickEvent(Ta rget)
>     End If
>  End If
> Next w

> Merci d'avance pour votre aide.
> Sincérement

Merci pour votre aide, c'est tres sympa. Les paramètres de
"Worksheet_BeforeRightClick" vont pouvoir m'aider à mieux cerner d'où vient le
probleme.

Cependant j'aimerais obtenir un code générique et non pas propre à une feuille.
C'est à dire que je ne veux pas placer le code de la macro
"Worksheet_BeforeRightClick" dans la feuille où ce situe mon évenemen t mais dans
une autre feuille excel.

J'ai créé un fichier excel que je place dans C:Program FilesMicroso ft
OfficeOFFICE11XLSTART et qui fonctionne sur un ensemble de fichiers exc el.
Je veux donc créer un code indépendant qui s'applique sur une feuille
particuliere mais le code lui meme n'est pas dans la feuille, il est
externe(dans une autre feuille). C'est pour ca que j'avais pensé à la macro
"MouseDown" que je n'ai pas su bien utiliser..

Le probleme c'est qu'il faut créer une configuration sur évenement "c lick
droit" qui soit définie sur tel cellule de tel fichier et non pas l'inv erse.Je
ne sais pas si je suis clair...
Si vous avez des interrogations sur ma demande n'hésiter pas, en attend ant je
vais trifouiller Worksheet_BeforeRightClick pour voir si il y a d'autres
alternative avec cette macro...- Masquer le texte des messages précéd ents -

- Afficher le texte des messages précédents -
Avatar
LSteph
...!!!!!Dans le code du ThisWorkbook du classeur:


... et c'était pas Worksheet_BeforeRig...

mais

Private Sub Workbook_SheetBeforeRightClick



"raphael-diaz" a écrit dans le message de
news:
raphael-diaz a écrit le 02/02/2011 à 10h27 :
Bonjour,
J'aimerais savoir comment faire pour créer en VBA une action sur click
droit de la sourie sur une cellule précise d’une feuille Excel.

Avant j'utilisais le code VBA directement dans la feuille du classeur :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Call CreateVersionListOnBeforeRightClickEvent(Target)
End Sub

Cependant j'aimerais obtenir un code générique et non pas propre
à une feuille.
Ce code devra donc être:
Si on es dans le classeur "MonClasseur" dans l'onglet
"MonOnglet" et sur telle cellule, et si l'utilisateur fait un click
droit, alors exécuter la macro «
CreateVersionListOnBeforeRightClickEvent() ».
Pour l'instant j'ai essayé d'utiliser MouseDown sans succès. :

For Each w In Workbooks
If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
If ActiveSheetIs("MonOnglet") And MouseDown() Then 'click droit
dans l’onglet
Call CreateVersionListOnBeforeRightClickEvent(Target)
End If
End If
Next w


Merci d'avance pour votre aide.
Sincérement


Merci pour votre aide, c'est tres sympa. Les paramètres de
"Worksheet_BeforeRightClick" vont pouvoir m'aider à mieux cerner d'où
vient le
probleme.

Cependant j'aimerais obtenir un code générique et non pas propre à une
feuille.
C'est à dire que je ne veux pas placer le code de la macro
"Worksheet_BeforeRightClick" dans la feuille où ce situe mon évenement
mais dans
une autre feuille excel.

J'ai créé un fichier excel que je place dans C:Program FilesMicrosoft
OfficeOFFICE11XLSTART et qui fonctionne sur un ensemble de fichiers
excel.
Je veux donc créer un code indépendant qui s'applique sur une feuille
particuliere mais le code lui meme n'est pas dans la feuille, il est
externe(dans une autre feuille). C'est pour ca que j'avais pensé à la
macro
"MouseDown" que je n'ai pas su bien utiliser..

Le probleme c'est qu'il faut créer une configuration sur évenement "click
droit" qui soit définie sur tel cellule de tel fichier et non pas
l'inverse.Je
ne sais pas si je suis clair...
Si vous avez des interrogations sur ma demande n'hésiter pas, en attendant
je
vais trifouiller Worksheet_BeforeRightClick pour voir si il y a d'autres
alternative avec cette macro...



Re:

Dans le code du ThisWorkbook du classeur:

Private Sub Workbook_SheetBeforeRightClick(ByVal _
Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox "Sur n'importe quelle feuille, ca marche!"
End Sub

'LSteph
Avatar
raphael-diaz
LSteph a écrit le 02/02/2011 à 18h27 :
Re,

Je t'ai pourtant indiqué de mettre cela dans le module Thisworkbook et
non dans le module d'une feuille.

Cordialement.

--
LSteph

On 2 fév, 17:57, raphael-diaz wrote:
raphael-diaz a écrit le 02/02/2011 à 10h27 :



> Bonjour,
> J'aimerais savoir comment faire pour créer en VBA une action sur
clic k
> droit de la sourie sur une cellule précise d’une feuille Excel.

> Avant j'utilisais le code VBA directement dans la feuille du classeur :
> Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
> Boolean)
>     Call CreateVersionListOnBeforeRightClickEvent(Target)
> End Sub

> Cependant j'aimerais obtenir un code générique et non pas
propre
> à une feuille.
> Ce code devra donc être:
> Si on es dans le classeur "MonClasseur" dans l'onglet
> "MonOnglet" et sur  telle cellule, et si l'utilisateur
fait un click
> droit, alors exécuter la macro «
> CreateVersionListOnBeforeRightClickEvent() ».
> Pour l'instant j'ai essayé d'utiliser MouseDown sans
succès. :

> For Each w In Workbooks
>  If IsTheWorkBook("MonClasseur, w.Name) Then 'dans tel classeur
>     If ActiveSheetIs("MonOnglet") And MouseDown()
Then  'click dr oit
> dans l’onglet
>            Call
CreateVersionListOnBeforeRightClickEvent(Ta rget)
>     End If
>  End If
> Next w

> Merci d'avance pour votre aide.
> Sincérement

Merci pour votre aide, c'est tres sympa. Les paramètres de
"Worksheet_BeforeRightClick" vont pouvoir m'aider à mieux
cerner d'où vient le
probleme.

Cependant j'aimerais obtenir un code générique et non pas propre
à une feuille.
C'est à dire que je ne veux pas placer le code de la macro
"Worksheet_BeforeRightClick" dans la feuille où ce situe mon
évenemen t mais dans
une autre feuille excel.

J'ai créé un fichier excel que je place dans C:Program
FilesMicroso ft
OfficeOFFICE11XLSTART et qui fonctionne sur un ensemble de fichiers exc el.
Je veux donc créer un code indépendant qui s'applique sur une
feuille
particuliere mais le code lui meme n'est pas dans la feuille, il est
externe(dans une autre feuille). C'est pour ca que j'avais pensé
à la macro
"MouseDown" que je n'ai pas su bien utiliser..

Le probleme c'est qu'il faut créer une configuration sur
évenement "c lick
droit" qui soit définie sur tel cellule de tel fichier et non pas
l'inv erse.Je
ne sais pas si je suis clair...
Si vous avez des interrogations sur ma demande n'hésiter pas, en attend
ant je
vais trifouiller Worksheet_BeforeRightClick pour voir si il y a d'autres
alternative avec cette macro...- Masquer le texte des messages
précéd ents -

- Afficher le texte des messages précédents -




Merci mais ce n'est pas le meme fichier Excel en fait.
Il ya deux fichiers Excel :
- Un fichier Excel "test.xls" dans lequel sur une feuille "ZOZO" on a une cellule nommé "ICI"(Range)
- Un fichier Excel "programme.xls" dans lequel il y a un code qui peux etre dans ThisWorkbook par exemple et qui dit que si on click droit sur ici de "test.xls" alors une action en découle.

Je suis obligé pour des raisons spécifique à mon activité de mettre le code dans un fichier Excel séparé de celui dans lequel il doit agir... Je sais c'est un peu se compliquer la vie mais bon...

Sincérement
Avatar
michdenis
Bonjour,

Tu as essayé d'utiliser un module de classe.
Fichier exemple : http://cjoint.com/?0cdqQJGZqmr

MichD
--------------------------------------------