Faire une pause sur mon code

Résolu
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. 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
    1. Modérateur
      Bonjour,

      attendre que je double clic sur ma souris
      Que tu double clic sur quoi? Feuille? Contrôle? UserForm?
      0
      1. Modérateur
        Question complémentaire :
        Peux tu nous coller ici ton code, avec l'endroit ou tu souhaites ta pause?
        0
      2. 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. Modérateur
        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. 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. Modérateur
        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