clic sur une cellule => lance action

  • Initiateur de la discussion Guigui
  • Date de début
G

Guigui

Guest
hello le forum,

comment faire pour lancer une action quand je clic dans une cellule précise,

je pense utiliser :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Value = 'IMPRIMER' Then
IMPRIMER.IMPRIMER
End If
End sub

Est-ce la bonne facon de faire ?
Comment faire pour que l'action se produise lors d'un clic et NON d'un DoubleClick

Merci d'avance pour votre aide

A+
Guillaume

Cijoint mon exemple [file name=Clic_Action.zip size=10057]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Clic_Action.zip[/file]
 

Pièces jointes

  • Clic_Action.zip
    9.8 KB · Affichages: 36

Robert

XLDnaute Barbatruc
Repose en paix
Salut GuiGui, salut le forum,

je te propose de modifier ta macro IMPRIMER comme cela :

Sub IMPRIMER()
'sélectionne la plage adjacente à la cellule active moins une ligne
'la copie et la colle dans la feuille 'IMPRIMER' cellule A2
ActiveCell.CurrentRegion.Resize(ActiveCell.CurrentRegion.Rows.Count - 1, _
ActiveCell.CurrentRegion.Columns.Count).Copy Destination:=Sheets('IMPRIMER').Range('A2')
Range('A1').Select 'sélectionne la cellule A1
Sheets('IMPRIMER').PrintOut 'imprime la feuille 'IMPRIMER'
End Sub

J'avais oublié ton histoire de Double-clic. Tu peux le faire sur le clic simple mais je ne te le conseille pas si tu n'es pas le seul utilisateur de ce fichier. En effet chaque fois que la cellule contenant IMPRIMER sera sélectionnée cela lancera l'impression. Toutefois ton code appliqué à Private Sub Worksheet_SelectionChange(ByVal Target As Range) lancera l'impression.

Message édité par: Robert, à: 09/04/2005 23:56
 

galopin01

XLDnaute Occasionnel
Bonsoir,
Il n'existe pas à proprement parler d'évènement Clic dans VBA.
Par contre il existe un évènement qui se déclenche quand on sélectionne/active une cellule soit par clic soit simplement en déplaçant la sélection d'une manière ou d'une autre.
Tu peux tester cet évènement en collant cette macro dans un module de Feuille d'un nouveau classeur.
Si tu la colles dans le module de Feuil1 seule feuil1 fonctionnera
Si tu la colles dans le module de Feuil2 seule feuil2 fonctionnera...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Range('A1').Address Then MsgBox 'Vous avez sélectionné la cellule A1'
End Sub
Ok ?

Message édité par: galopin01, à: 10/04/2005 00:00
 
G

Guigui

Guest
Hello le forum, Galopin1, Robert

Merci a vous deux pour votre aide.

Robert, Comment puis-je modifier ton code si ma cellule 'IMPRIMER' ne se trouve pas dessous ma plage mais sur le coté ?

J'ai essayé de modifié le columns.count a -1 et rien en Rows.count mais ca marche pas....

Peux tu me confirmer le principe,
Est selectionné uniquement ce qui est adjacent a ma cellule active ?

Merci encore a vous 2

A+
Guillaume
 
G

Guigui

Guest
Re, galopin01

Je souhaite utiliser ton code mais pas limiter a une cellule (A1) mais a une zone (A1:C13)

En clair si je clic sur une cellule comprise entre A1 et C13, mon action se produit

Merci encore pour ton aide

A+

Guillaume
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Guigui, Galopin, Robert, le Forum

Vu que j'étais sur d'autres démos (dont une juste pour toi Guigui !) je n'ai pas suivi trop ici, mais pour ta dernière question Guigui, suivons le Guide :

Lien supprimé

Tu auras tout ce qu'il te faut je pense
Bon Aprèm
@+Thierry
 

Discussions similaires