RESOLU - Simuler click gauche dans cellule (E1)

castor30

XLDnaute Occasionnel
Bonjour,
Peut-on simuler en Vba un click gauche dans la cellule E1
En vous remerciant
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir castor30,

Un essai sans conviction et un peu tordu:

  • on utilise l'évènement Public Sub Worksheet_SelectionChange(ByVal Target As Range) de la feuille Feuil1
  • dans la procédure SIMU dans Module1, on appelle la procédure évènementielle ci-dessus avec le paramètre Feuil1.Range("e1").
  • un indicateur Indic_Simu permet de savoir si la procédure évènementielle a été appelée suite à un clique gauche physique de la souris (ou par sélection par le clavier) ou bien suite à l'exécution de la procédure SIMU.
  • La macro SIMU peut être exécutée même si la feuille active est une autre feuille que Feuil1.
  • quand on simule le clique gauche, la cellule E1 n'est pas sélectionnée (sauf si elle l'était déjà)
 

Pièces jointes

  • castor30- simul clique gauche- v1.xlsm
    16.8 KB · Affichages: 49
Dernière édition:

castor30

XLDnaute Occasionnel
Bonjour mapomme,
Merci de t'intéresser à ma demande, je pense que je me suis mal exprimé ou je n'ai pas compris ta réponse.
Je voudrais dans la mesure du possible un code qui sélectionne la cellule E1 et que ça fasse un clique gauche dans cette cellule sans toucher au clavier ni à la souris, car ce code serai appelé à partir d'un autre code.
En te souhaitant un bon dimanche.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re, bonjour Eric C ;),

Bonjour mapomme,
Merci de t'intéresser à ma demande, je pense que je me suis mal exprimé ou je n'ai pas compris ta réponse.
Je voudrais dans la mesure du possible un code qui sélectionne la cellule E1 et que ça fasse un clique gauche dans cette cellule sans toucher au clavier ni à la souris, car ce code serai appelé à partir d'un autre code.
En te souhaitant un bon dimanche.

Effectivement, je n'avais pas compris cela. La solution de Eric C convient parfaitement.

Si la cellule E1 est déjà sélectionnée, la procédure évènementielle de E1 ne sera pas exécutée. Dans ce cas, on peut sélectionner une autre cellule puis sélectionner E1. Voir la procédure Simu():

VB:
Sub simu()
   Application.ScreenUpdating = False
   Application.EnableEvents = False
   Application.Goto Feuil1.Range("e2")
   Application.EnableEvents = True
   Range("e1").Select
End Sub
 

Pièces jointes

  • castor30- simul clique gauche- v2.xlsm
    17.4 KB · Affichages: 36

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Une version v2a en cas de procédure Worksheet_Activate() sur Feuil1.
VB:
Sub simu()

   Application.ScreenUpdating = False
   'pour, le cas échéant, activer la procédure Worksheet_Activate() de Feuil1
   If ActiveSheet.Name <> "Feuil1" Then Feuil1.Select
   Application.EnableEvents = False
   Application.Goto Feuil1.Range("e2")
   Application.EnableEvents = True
   Range("e1").Select
End Sub
 

Pièces jointes

  • castor30- simul clique gauche- v2a.xlsm
    18 KB · Affichages: 42

castor30

XLDnaute Occasionnel
Bonjour mapomme, job75
J'étais heureux hier soir, mais ce matin moins car ça ne marche pas (voir image)
J'ai essayer comme ci-dessous
Code:
   Sub Impression()   'Filtre la sélection des X et imprime
        Application.ScreenUpdating = False
    Worksheet_SelectionChange [E1]
'    Lance l'impression
'    ActiveWindow.SelectedSheets.PrintOut Copies:=1
'   Prévisualisation de l'impression
    ActiveWindow.SelectedSheets.PrintPreview
    Range("A2").Select
CreateObject("Wscript.shell").Popup "Impression envoyée à l'imprimante." & Chr(10) & Chr(10) & "Veuillez patienter Svp." & Chr(10) & Chr(10), 1, "APE Marguerittes", vbExclamation
    Range("E2:E300").ClearContents
[E1].Value = ("Sel")
Columns("E").Select
    With Selection
        .HorizontalAlignment = xlCenter
    End With
    Worksheet_SelectionChange [E1]
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    42.3 KB · Affichages: 56

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour à toutes et tous

@castor,

Je découvre ce fil de discussion et me rend compte que j'avais apporté une solution à ton problème le 17 mai
c'est ici: https://www.excel-downloads.com/thr...55-filtre-ligne-par-2.20015180/#post-20128399

Si le but actuel de ton problème est d'imprimer après avoir filtré, tu peux oublier cette cellule E1 et tout simplement écrire le code qui filtre au début de ta procédure d'impression

....................... et ne pas oublier de faire réapparaitre toutes les lignes à la fin de la procédure

il serait quand même bien utile de repréciser tes attentes

à+
Philippe
 

Si...

XLDnaute Barbatruc
Bonjour
C'est ce que j'avais pensé au début pas non ça marche pas
La proposition de job75 cause le problème donné sur l'image
Bizarre cette erreur ! J’ai plutôt un problème quand l’imprimante est sollicitée !

[E1].Select serait amplement suffisant sauf qu’avant d’imprimer il faut filtrer !
En voici un exemple où
- j’ai supprimé la colonne de "sélection" (je n’en vois pas, ici, l’utilité) en gardant le filtre (sait-on jamais ,)
- j’ai repris un peu la programmation de les évènementielles.
 

Pièces jointes

  • Click _ E1.xls
    58 KB · Affichages: 49

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin