Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" a écrit dans le
message de news:Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans le
message de news: E0BABDEB-C966-45A4-A9E8-2B288D57E969@microsoft.com...
Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" a écrit dans le
message de news:Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
Bonjour Stéphan,
Désolé, mais la ligne de code se lit comme suit :
If Not Intersect(Target, Union(Range("B15"), Range("E15"))) Is Nothing Then
Sautations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour MichDenis,A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
Rép: parce qu'elle peut être appelée dans différente feuille de mon classeur.B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
Rép: c'est ce que je tente sous très très peu.
Merci de votre collaboration permanente (j'oserais dire si patiente.....).'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
Bonjour Stéphan,
Désolé, mais la ligne de code se lit comme suit :
If Not Intersect(Target, Union(Range("B15"), Range("E15"))) Is Nothing Then
Sautations!
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans le message de news:
EB9A8239-A124-4A00-ACC2-DC58003EDB08@microsoft.com...
Bonjour MichDenis,
A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
Rép: parce qu'elle peut être appelée dans différente feuille de mon classeur.
B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
Rép: c'est ce que je tente sous très très peu.
Merci de votre collaboration permanente (j'oserais dire si patiente.....).
'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
Bonjour Stéphan,
Désolé, mais la ligne de code se lit comme suit :
If Not Intersect(Target, Union(Range("B15"), Range("E15"))) Is Nothing Then
Sautations!
"Stéphan DuQuébec" a écrit dans le message de news:
Bonjour MichDenis,A ) Je n'ai pas pu savoir pourquoi tu utilisais le ThisWorkbook pour mettre ta procédure ?
Rép: parce qu'elle peut être appelée dans différente feuille de mon classeur.B ) Place ceci dans la feuille module de la feuille où l'action se déroule :
À fois que tu vas modifier le contenu de la cellule B15 ou E15, ta procédure va s'exécuter.
Tu n'auras plus besoin d'un bouton pour appeler la macro.
Rép: c'est ce que je tente sous très très peu.
Merci de votre collaboration permanente (j'oserais dire si patiente.....).'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("B15:E15"))) Is Nothing Then
GaucheDroite
End If
End Sub
Cette façon est aussi très intéressante.
Je vais essayer dans mon fichier et redonnerai des nouvelles.
Merci.Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" a écrit dans le
message de news:Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Cette façon est aussi très intéressante.
Je vais essayer dans mon fichier et redonnerai des nouvelles.
Merci.
Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" <StphanDuQubec@discussions.microsoft.com> a écrit dans le
message de news: E0BABDEB-C966-45A4-A9E8-2B288D57E969@microsoft.com...
Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.
Cette façon est aussi très intéressante.
Je vais essayer dans mon fichier et redonnerai des nouvelles.
Merci.Bonjour
Lance GaucheDroite à l'ouverture du classeur, en ajoutant en début de macro
Application.EnableEvents = False
et en fin de macro
Application.EnableEvents = True
pour désactiver l'évènement Change des feuilles
Dans le module de la feuille utilisée, gère l'évènement Worksheet.Change
Private Sub Worksheet_Change(ByVal Target As Range)
Static Compteur as integer
if Compteur < 10 Then ' nombre de fois que la macro doit s'exécuter
Application.Wait Now() + 0.00006
GaucheDroite
Compteur = Compteur + 1
End If
End Sub
Ok?
Pierre
"Stéphan DuQuébec" a écrit dans le
message de news:Bonjour à toutes & tous,
Une suggestion serait grandement appréciée.
Voici une macro de mon module ThisWorbook déclenchée par un clic de
bouton:
______________________________________________
Function AleaEntre(Low As Long, High As Long) As Long
AleaEntre = Int(Rnd * (High - Low + 1)) + Low
End Function
________________________________________________
Sub GaucheDroite()
Application.ScreenUpdating = False
Range("COCOCALCUL!B15") = ""
Range("COCOCALCUL!E15") = ""
Range("DONNÉES!A3") = AleaEntre(1, 2)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!B15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!E15").Select
ActiveCell.Value = AleaEntre(0, Range("DONNÉES!A5") - 1)
If Range("DONNÉES!A3") = 1 Then Range("COCOCALCUL!E15").Select
If Range("DONNÉES!A3") = 2 Then Range("COCOCALCUL!B15").Select
Application.ScreenUpdating = True
End Sub
En gros, la présente macro s'effectue dans une feuille où il n'y a que 2
cellules accessibles (non verrouillées). La macro cible de façon aléatoire
une des 2 cellules pour ensuite lui assigner une valeur, aussi aléatoire,
entre 0 et une valeur existante - 1, pour ensuite se positionner sur
l'autre
cellule accessible.
Tout ça marche bien.
Je voudrais cependant modifier le mode d'appel de la macro.
Après le déroulement initial de la macro, l'utilisateur doit saisir une
valeur dans l'ActiveCell pour ensuite réenfoncer le bouton qui regénère
tout
le processus.
Et ce, plusieurs fois à répétition (fin déterminée par un compteur en
parallèle).
Au lieu d'enfoncer le bouton de commande à chaque fois, j'aimerais
qu'après
un premier déroulement de la macro (mettons initialement appelée dans
l'évènement WorkBook Open) "demeurer" en attente d'une entrée (inscription
d'une valeur suivi de la touche Enter) pour ensuite mettre une pause de 5
secondes (genre Application. OnTime Wow + .....) et regénérer cette macro
de
nouveau.
Toujours jusqu'à la fni déterminée par une valeur de compteur.
Maintenant comment faire ?
Désolé du long roman fleuve.......j'ai toujours eu de la difficulté à être
bref.
Merci pour votre aide.