OVH Cloud OVH Cloud

Affecter une macro en cliquant sur une cellule

13 réponses
Avatar
Jean-Paul V
Bonjour à tous

1) J’ai découvert le format wingdings qui me permet en mettant F en
majuscule dans une cellule d’obtenir le dessin d’un doigt tendu à droite
.Comment faire si on clique sur cette cellule pour lui faire éxécuter une
macro ‘’ FeuilleSuivante’’ ?
2) Comment écrire cette macro ‘’ FeuilleSuivante’’qui permet d’aller sur
la feuille suivante et qui lorsque l’on est à la dernière feuille éxécute la
macro ‘’Menu’’

Bien Amicalement

10 réponses

1 2
Avatar
AV
Le plus "raisonnable" est d'utiliser une zone de texte (barre d'outils Dessin)
dans laquelle tu mettras ton doigt et d'affecter une macro à cet objet, plutôt
que de bricoler avec les évènements de feuille
Une astuce (voir fichier **), pour éviter le dimensionnement trop important de
la zone, est d'utiliser une cellule dans laquelle est le texte et, par-dessus,
une zone de texte sans couleur de fond

** http://cjoint.com/?iukatO4fBo

AV
Avatar
Nicolas B.
Salut Jean-Paul,

Place ce bout de code dans le module ThisWorkbook :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal _
Target As Range)
If Target.Address = "$A$1" Then
If Sh.Index = Sheets.Count Then
Menu
Else
Sheets(Sh.Index + 1).Activate
End If
End If
End Sub

Remplace $A$1 par l'adresse de la cellule contenant la main.


A+
Nicolas B.

Bonjour à tous

1) J’ai découvert le format wingdings qui me permet en mettant F en
majuscule dans une cellule d’obtenir le dessin d’un doigt tendu à droite
..Comment faire si on clique sur cette cellule pour lui faire éxécuter une
macro ‘’ FeuilleSuivante’’ ?
2) Comment écrire cette macro ‘’ FeuilleSuivante’’qui permet d’aller sur
la feuille suivante et qui lorsque l’on est à la dernière feuille éxécute la
macro ‘’Menu’’

Bien Amicalement



Avatar
LSteph
Bonjour JPV,

Je te propose d'utiliser l'évènement CLIC DROIT de Thisworkbook pour gèrer
cela sur toutes les feuilles .
jusqu'à la dernière il ne devra pas y avoir de feuille graphique puisque
j'utilise sh donc sheets.

(Une cellule en elle même ne déclanche pas de macro sur clic sauf à
utiliser un objet dans la cellule
ou une proc événementielle Worksheet_beforedblclic ou pour simpleclic le
droit
Tu pourrais utiliser ce format Wingdings dans la cellule et en faire un lien
hypertexte d'une feuille à l'autre
et mettre un lien .Tu pourrais aussi copier ce f sur un rectangle ou un
bouton pour lui affecter une macro).

donc sur clic droit en G1 où tu mets ton F windings si tu veux :


'*****dans thisworkbook****
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As Boolean)
If Target.Address <> Cells(1, 7).Address Then Exit Sub
If Sh.Index = Sheets.Count Then
menu
Else
Sheets(Sh.Index + 1).Select
End If
Cancel = True
End Sub
'***
Sub menu()
MsgBox "submenu"
End Sub
'***

'lSteph


"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

1) J'ai découvert le format wingdings qui me permet en mettant F en
majuscule dans une cellule d'obtenir le dessin d'un doigt tendu à droite
.Comment faire si on clique sur cette cellule pour lui faire éxécuter une
macro '' FeuilleSuivante'' ?
2) Comment écrire cette macro '' FeuilleSuivante''qui permet d'aller sur
la feuille suivante et qui lorsque l'on est à la dernière feuille éxécute
la
macro ''Menu''

Bien Amicalement



Avatar
Ricky
Bonjour *Jean-Paul V*
| Bonjour à tous
|
| 1) J’ai découvert le format wingdings qui me permet en mettant F
| en majuscule dans une cellule d’obtenir le dessin d’un doigt tendu à
| droite .Comment faire si on clique sur cette cellule pour lui faire
| éxécuter une macro ‘’ FeuilleSuivante’’ ?
| 2) Comment écrire cette macro ‘’ FeuilleSuivante’’qui permet
| d’aller sur la feuille suivante et qui lorsque l’on est à la dernière
| feuille éxécute la macro ‘’Menu’’
|
| Bien Amicalement

Pas besoin de macro. Simplement un clic droit et insérer un lien hypertexte qui envoie sur la feuille que tu veux


--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
AV
Pas besoin de macro.
Simplement un clic droit et insérer un lien hypertexte qui envoie sur la
feuille que tu veux


Heu...Il me semble qu'il a dit "...aller sur la feuille suivante.."
Avec le lien ça pas faire exactement ça, surtout si l'ordre des feuilles est
amené à changer ;-)
Mais bon...

AV

Avatar
Jean-Paul V
Merci pour cette solution mais elle présente l’iconvéniant que l’utilisateur
ne sait pas que en cliquant sur cette cellule cela va déclancher la macro.
J’ai donc opté en entourant la cellule d’un carré sans trait et couleur
Aucun Remplissage en essayant d’affecter la macro inspirée de la vôtre:
Sub FeuilleSuivante()
ActiveSheet.Select
Dim sh.Index as Integer
If sh.Index = Sheets.Count Then
MENU
Else
Sheets(sh.Index + 1).Select
End If
Cancel = True
End Sub

Mais il y a des erreurs et elle ne marche pas comment la corriger ?
@+


Bonjour JPV,

Je te propose d'utiliser l'évènement CLIC DROIT de Thisworkbook pour gèrer
cela sur toutes les feuilles .
jusqu'à la dernière il ne devra pas y avoir de feuille graphique puisque
j'utilise sh donc sheets.

(Une cellule en elle même ne déclanche pas de macro sur clic sauf à
utiliser un objet dans la cellule
ou une proc événementielle Worksheet_beforedblclic ou pour simpleclic le
droit
Tu pourrais utiliser ce format Wingdings dans la cellule et en faire un lien
hypertexte d'une feuille à l'autre
et mettre un lien .Tu pourrais aussi copier ce f sur un rectangle ou un
bouton pour lui affecter une macro).

donc sur clic droit en G1 où tu mets ton F windings si tu veux :


'*****dans thisworkbook****
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As Boolean)
If Target.Address <> Cells(1, 7).Address Then Exit Sub
If Sh.Index = Sheets.Count Then
menu
Else
Sheets(Sh.Index + 1).Select
End If
Cancel = True
End Sub
'***
Sub menu()
MsgBox "submenu"
End Sub
'***

'lSteph


"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

1) J'ai découvert le format wingdings qui me permet en mettant F en
majuscule dans une cellule d'obtenir le dessin d'un doigt tendu à droite
.Comment faire si on clique sur cette cellule pour lui faire éxécuter une
macro '' FeuilleSuivante'' ?
2) Comment écrire cette macro '' FeuilleSuivante''qui permet d'aller sur
la feuille suivante et qui lorsque l'on est à la dernière feuille éxécute
la
macro ''Menu''

Bien Amicalement








Avatar
Ricky
Bonjour *AV*

| Heu...Il me semble qu'il a dit "...aller sur la feuille suivante.."
| Avec le lien ça pas faire exactement ça, surtout si l'ordre des
| feuilles est amené à changer ;-)
| Mais bon...
|
| AV


Ca fonctionne même en changeant l'ordre des feuilles. De plus tu peux choisir la cellule Target. Par contre il ne faut pas changer le nom de la feuille ou en ajouter en cours de route.
Bref plus rigide mais sans vba. A lui de voir.

--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
AV
Ca fonctionne même en changeant l'ordre des feuilles.


??
Ben comment tu fais dans ton lien pour "dire" d'aller à la feuille suivante de
façon impersonnelle (sans préciser le nom de la feuille)?

AV histoire de ...sans plus

Avatar
AV
J'ai donc opté en entourant la cellule d'un carré sans trait et couleur


La macro fournie avec ne fonctionne pas ?

Sub suivante()
On Error Resume Next
ActiveSheet.Next.Select
If Err.Number <> 0 Then menu
End Sub

Sub menu()
MsgBox "je suis la macro ''Menu'' !"
End Sub

AV

Avatar
LSteph
Re Bonjour,
(A propos tu as réponses sur ton fil de l'autre jour)

Dans ce cas, la macro de AV allait très bien!

voici toutefois ce que tu demandes,
tu ne peux pas utiliser cela ainsi
sh désignait la feuille cible dans la proc évenementielle ici
plus simplement:

Sub FeuilleSuivante()
If ActiveSheet.Index = Sheets.Count Then
menu
Else
ActiveSheet.Next.Select
End If
End Sub


A+
lSteph


"Jean-Paul V" a écrit dans le message
de news:
Merci pour cette solution mais elle présente l'iconvéniant que l'utilisateur
ne sait pas que en cliquant sur cette cellule cela va déclancher la macro.
J'ai donc opté en entourant la cellule d'un carré sans trait et couleur
Aucun Remplissage en essayant d'affecter la macro inspirée de la vôtre:
Sub FeuilleSuivante()
ActiveSheet.Select
Dim sh.Index as Integer
If sh.Index = Sheets.Count Then
MENU
Else
Sheets(sh.Index + 1).Select
End If
Cancel = True
End Sub

Mais il y a des erreurs et elle ne marche pas comment la corriger ?
@+


Bonjour JPV,

Je te propose d'utiliser l'évènement CLIC DROIT de Thisworkbook pour
gèrer
cela sur toutes les feuilles .
jusqu'à la dernière il ne devra pas y avoir de feuille graphique puisque
j'utilise sh donc sheets.

(Une cellule en elle même ne déclanche pas de macro sur clic sauf à
utiliser un objet dans la cellule
ou une proc événementielle Worksheet_beforedblclic ou pour simpleclic le
droit
Tu pourrais utiliser ce format Wingdings dans la cellule et en faire un
lien
hypertexte d'une feuille à l'autre
et mettre un lien .Tu pourrais aussi copier ce f sur un rectangle ou un
bouton pour lui affecter une macro).

donc sur clic droit en G1 où tu mets ton F windings si tu veux :


'*****dans thisworkbook****
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As Boolean)
If Target.Address <> Cells(1, 7).Address Then Exit Sub
If Sh.Index = Sheets.Count Then
menu
Else
Sheets(Sh.Index + 1).Select
End If
Cancel = True
End Sub
'***
Sub menu()
MsgBox "submenu"
End Sub
'***

'lSteph


"Jean-Paul V" a écrit dans le
message
de news:
Bonjour à tous

1) J'ai découvert le format wingdings qui me permet en mettant F en
majuscule dans une cellule d'obtenir le dessin d'un doigt tendu à
droite
.Comment faire si on clique sur cette cellule pour lui faire éxécuter
une
macro '' FeuilleSuivante'' ?
2) Comment écrire cette macro '' FeuilleSuivante''qui permet d'aller
sur
la feuille suivante et qui lorsque l'on est à la dernière feuille
éxécute
la
macro ''Menu''

Bien Amicalement










1 2