Faire une pause sur mon code

Résolu/Fermé
crazyphantom - 9 sept. 2014 à 09:17
Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 - 11 sept. 2014 à 07:10
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

A voir également:

2 réponses

Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 37
9 sept. 2014 à 10:01
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 sept. 2014 à 10:22
Bonjour,

attendre que je double clic sur ma souris
Que tu double clic sur quoi? Feuille? Contrôle? UserForm?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 sept. 2014 à 10:37
Question complémentaire :
Peux tu nous coller ici ton code, avec l'endroit ou tu souhaites ta pause?
0
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 sept. 2014 à 12:05
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
9 sept. 2014 à 14:39
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