Faire une pause sur mon code

Résolu
crazyphantom -  
Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrai pouvoir faire une pause sur mon code VBA et attendre que je double clic sur ma souris pour pouvoir reprendre mon code.

J'espère avoir été assez clair, merci d'avance

2 réponses

  1. Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
     
    Bonjour,

    Personnellement, je ferais une variable Boolean au niveau module (Pause)
    Au Début de la procédure en question je l'indiquerai Vrai
    A l'endroit où il faut attendre je ferais une boucle tant que la pause est Vraie.
    Dans la procédure de double-click je la rendrai fausse.
    0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    attendre que je double clic sur ma souris
    Que tu double clic sur quoi? Feuille? Contrôle? UserForm?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Question complémentaire :
      Peux tu nous coller ici ton code, avec l'endroit ou tu souhaites ta pause?
      0
    2. crazyphantom
       
      Windows("ResultatMode1-19-8-2014(1).xlsx").Activate
      ActiveWindow.ScrollWorkbookTabs Position:=xlLast
      ActiveWindow.ScrollWorkbookTabs Sheets:=-1
      ActiveWindow.ScrollWorkbookTabs Sheets:=-1
      Sheets("Données_Cycle_Vie").Select

      'faire une pause içi en attendant que l'utilisateur double clic sur une case'

      Range("B18").Select
      Selection.ShowDetail = True
      Selection.Copy
      Windows("ClasseurTEST.xls").Activate
      Sheets("Feuil1").Select
      ActiveSheet.Paste
      Range("I2").Select

      En gros mon code me fait arriver sur un tableau croisé dynamique et je voudrais que mon code attende que l'utilisateur double clic sur une case avant de reprendre.
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Il suffit donc d'utiliser l'événement BeforeDoubleClick de la feuille "Données_Cycle_Vie".
      Pour cela, depuis la feuille "Données_Cycle_Vie", clic droit sur l'onglet de cette feuille, visualiser le code, puis copier coller ce code dans le module de la feuille :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Range("B18").Select
      Selection.ShowDetail = True
      Selection.Copy
      Windows("ClasseurTEST.xls").Activate
      Sheets("Feuil1").Select
      ActiveSheet.Paste
      Range("I2").Select 
      End Sub

      Il conviendra, bien sur, d'enlever cette partie de code dans votre procédure principale.
      Votre Sub va donc réaliser le début du code, puis l'événement double_clic, la fin...

      A tester, bien entendu.
      0
    4. crazyphantom
       
      Merci beaucoup le code marche très bien.

      Mais j'ai une dernière question, au niveau du code il me sélectionne automatiquement la colonne B18. et moi je voudrai pouvoir faire la même chose en choisissant une autre colonne.

      Voila pour être clair dans mon tableau croisé dynamique j'ai un nombre de personne par catégorie

      10 : Intégration 65 'Range("B16")
      11 : Intégration physique 105 ' Range("B17")
      12 : Intégration fonctionnelle 320 'Range("B18")

      en cliquant sur le nombre on obtiens les infos sur les participant.

      Ma question est que je voudrai que mon code marche en prenant n'importe quel catégorie.


      Range("B18").Select ' je voudrai pouvoir choisir la case que je veux utiliser pour la suite
      Selection.ShowDetail = True
      Selection.Copy
      Windows("ClasseurTEST.xls").Activate
      Sheets("Feuil1").Select
      ActiveSheet.Paste

      En gros le code choisi automatiquement la case B18 et moi je voudrai pouvoir choisir une autre case

      j'espère avoir été clair et désolé mais je suis pas du tout douée en code
      merci
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      En entête d'un module standard du classeur, déclarer une variable de type Integer :

      Public MaVar As Integer


      Dans le début du code, attribuer la valeur correspondante à la cellule souhaitée :
      (J'ai mis Machin car je ne sais pas à quoi correspond votre choix de chiffres 10, 11 ou 12)
      Windows("ResultatMode1-19-8-2014(1).xlsx").Activate
      ActiveWindow.ScrollWorkbookTabs Position:=xlLast
      ActiveWindow.ScrollWorkbookTabs Sheets:=-1
      ActiveWindow.ScrollWorkbookTabs Sheets:=-1
      Sheets("Données_Cycle_Vie").Select 
      Select Case Machin 'a adapter!!!!
      'Machin = choix entre :
          '10 : Intégration 65
          '11 : Intégration physique 105
          '12 : Intégration fonctionnelle 320
         Case 10 'si 10
           MaVar = 16
         Case 11 'si 11
           MaVar = 17
         Case 12 'si 12
           MaVar = 18
      End Select


      Dans l'événement Worksheet_BeforeDoubleClick, utiliser MaVar :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Range("B" & MaVar).Select 'Comme ceci
      Selection.ShowDetail = True
      Selection.Copy
      Windows("ClasseurTEST.xls").Activate
      Sheets("Feuil1").Select
      ActiveSheet.Paste
      Range("I2").Select 
      End Sub
      0