Impossible de rentrer une valeur pendant l'execution de la macro
btrends
Messages postés
9
Statut
Membre
-
chossette9 Messages postés 6855 Date d'inscription Statut Contributeur Dernière intervention -
chossette9 Messages postés 6855 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour a toutes et a tous,
je suis novice en VBA, mais je progresse tres doucement et peu surement...
J'ai confectionne ce programme, qui a pour but de s'entrainer au calcul mental avec un chrono.
Or quand je clique sur le bouton de ma macro, il m'est impossible de rentrer quelconque reponse dans la colonne correspondante. En revanche, lorsque je mets toutes les reponses avant de cliquer sur le bouton, tout marche parfaitement (avec un temps proche de zero bien évidemment!)...
Si vous avez une idée, ce serait adorable!
C'est tres probable que l'erreur tourne autour du "doevents" ou du worksheets.calculate que je ne maitrise pas du tout!
Voila mon programme:
Sub ChronoCM()
'Copier coller des valeurs aleatoires
Range("A2:B31").Select
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlValues
'Chrono
'Copie de la date de debut
Range("K2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J2").Select
Selection.PasteSpecial Paste:=xlValues
'Boucle pour chronometrer
While Cells(32, "H") <> 1
DoEvents
Worksheets("Feuil1").Rows(2).Columns("K:L").Calculate
Sheets("Feuil1").Select
Wend
'Affichage du TEMPS effectue
Range("K2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J4").Select
Selection.PasteSpecial Paste:=xlValues
End Sub
MERCI ENCORE MILLE FOIS!
je suis novice en VBA, mais je progresse tres doucement et peu surement...
J'ai confectionne ce programme, qui a pour but de s'entrainer au calcul mental avec un chrono.
Or quand je clique sur le bouton de ma macro, il m'est impossible de rentrer quelconque reponse dans la colonne correspondante. En revanche, lorsque je mets toutes les reponses avant de cliquer sur le bouton, tout marche parfaitement (avec un temps proche de zero bien évidemment!)...
Si vous avez une idée, ce serait adorable!
C'est tres probable que l'erreur tourne autour du "doevents" ou du worksheets.calculate que je ne maitrise pas du tout!
Voila mon programme:
Sub ChronoCM()
'Copier coller des valeurs aleatoires
Range("A2:B31").Select
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlValues
'Chrono
'Copie de la date de debut
Range("K2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J2").Select
Selection.PasteSpecial Paste:=xlValues
'Boucle pour chronometrer
While Cells(32, "H") <> 1
DoEvents
Worksheets("Feuil1").Rows(2).Columns("K:L").Calculate
Sheets("Feuil1").Select
Wend
'Affichage du TEMPS effectue
Range("K2").Select
Application.CutCopyMode = False
Selection.Copy
Range("J4").Select
Selection.PasteSpecial Paste:=xlValues
End Sub
MERCI ENCORE MILLE FOIS!
A voir également:
- Impossible de rentrer une valeur pendant l'execution de la macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel attend la fin de l'exécution d'une action ole ✓ - Forum Word
- Valeur relative et absolue ✓ - Forum Webmastering
2 réponses
Bonjour btrends,
Tu travaille avec beaucoup de cellules différentes, et je ne suis pas sûr d'avoir tout compris.
Tu peux mettre ton fichier à disposition sur le site "https://www.cjoint.com/", mais sans données confidentielles biensûr.
Ensuite, tu copies le lien dans ton prochain message.
De cette façon on a un lien pour, je l'espère, mieux comprendre ce que tu souhaite
A bientôt
Tu travaille avec beaucoup de cellules différentes, et je ne suis pas sûr d'avoir tout compris.
Tu peux mettre ton fichier à disposition sur le site "https://www.cjoint.com/", mais sans données confidentielles biensûr.
Ensuite, tu copies le lien dans ton prochain message.
De cette façon on a un lien pour, je l'espère, mieux comprendre ce que tu souhaite
A bientôt
Bonjour,
utilises l'évènement Change de la feuille pour détecter tes saisies.
Sur cet exemple le timer est relevé à la 1ère saisie et le temps affiché à la dernière saisie :
Tu peux modifier pour mémoriser T1 dès l'affichage des exercices.
Tu peux aussi tirer un nombre aléatoire entre 2 et 20 directement dans vba avec :
eric
utilises l'évènement Change de la feuille pour détecter tes saisies.
Sur cet exemple le timer est relevé à la 1ère saisie et le temps affiché à la dernière saisie :
Dim t1 As Double
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F2:F31]) Is Nothing Then Exit Sub
If WorksheetFunction.CountA([F2:F31]) = 1 Then t1 = Timer
If WorksheetFunction.CountA([F2:F31]) = 30 Then MsgBox (Timer - t1 & " secondes")
End Sub
Tu peux modifier pour mémoriser T1 dès l'affichage des exercices.
Tu peux aussi tirer un nombre aléatoire entre 2 et 20 directement dans vba avec :
Randomize aleatoire = Int(Rnd() * 19 + 2)
eric
Voici le lien
https://www.cjoint.com/?0KbhEFjQb5I
En effet, cette macro ne se trouve nulle part. As-tu une idée ? Quelle macro doit servir en premier ?
ALEA.ENTRE.BORNES est la fonction que j utilise dans les colonnes A et B pour determiner des nombres aléatoires entre 2 et 20!
Peut-etre que ta version d'excel ne comprend pas cette fonction (qui est pourtant assez vieille...)?
Comment peut-on associer une fonction à l'exécution d'un bouton ?
La fonction permet seulement la determination de 30x2 valeurs pour les calculs. Elle vient pas du tout avec le bouton