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
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
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:
- Faire une pause sur mon code
- Le code ascii - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
2 réponses
Normad
Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
40
9 sept. 2014 à 10:01
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.
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
9 sept. 2014 à 10:22
9 sept. 2014 à 10:22
Bonjour,
attendre que je double clic sur ma souris
Que tu double clic sur quoi? Feuille? Contrôle? UserForm?
attendre que je double clic sur ma souris
Que tu double clic sur quoi? Feuille? Contrôle? UserForm?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
9 sept. 2014 à 10:37
9 sept. 2014 à 10:37
Question complémentaire :
Peux tu nous coller ici ton code, avec l'endroit ou tu souhaites ta pause?
Peux tu nous coller ici ton code, avec l'endroit ou tu souhaites ta pause?
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.
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
9 sept. 2014 à 12:05
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 :
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.
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.
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
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
9 sept. 2014 à 14:39
9 sept. 2014 à 14:39
En entête d'un module standard du classeur, déclarer une variable de type 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)
Dans l'événement Worksheet_BeforeDoubleClick, utiliser MaVar :
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