Comment bloquer les résultats aléatoires?
tigroo7
Messages postés
8
Statut
Membre
-
Tigroo7 -
Tigroo7 -
Bonjour!
Cherchant à créer un mini logiciel de "jets de dés" j'ai affectée la formule "=1+ENT(6*ALEA())" à une image via une macro.
Quand je clique dessus, ça me génère des séries de chiffres de 1 à 6 dans les cases que j'ai indiqué, aprfait!
Le problème, c'est lorsque je fais une autre action, par exemple le simple fait d'écrire dans une case, la macro se répète et changent les chiffres!
Comment bloquer les résultats et instaurer une remise à zéro des cases avant de pouvoir les "rejouer"?
En vous remerciant!
Cherchant à créer un mini logiciel de "jets de dés" j'ai affectée la formule "=1+ENT(6*ALEA())" à une image via une macro.
Quand je clique dessus, ça me génère des séries de chiffres de 1 à 6 dans les cases que j'ai indiqué, aprfait!
Le problème, c'est lorsque je fais une autre action, par exemple le simple fait d'écrire dans une case, la macro se répète et changent les chiffres!
Comment bloquer les résultats et instaurer une remise à zéro des cases avant de pouvoir les "rejouer"?
En vous remerciant!
A voir également:
- Comment bloquer les résultats aléatoires?
- Resultats foot - Télécharger - Vie quotidienne
- Bloquer pub youtube - Accueil - Streaming
- Comment bloquer quelqu'un sur messenger - Guide
- Bloquer sur messenger - Guide
- Comment bloquer un numéro sur whatsapp - Guide
7 réponses
Bonjour
effectivement ALEA change losrque l'on utliise une cellule.
Si la formule est incluse dans votre macro, vous devriez la treminer par un copier /Coller Valeur sur les cellules impliquées, ça devrait résoudre votre problème, sachant que la formule se renouvellera au coup suivant, mais que les résultats affichés ne bougeront plus avant le prochain lancement.
CRDLMNT
effectivement ALEA change losrque l'on utliise une cellule.
Si la formule est incluse dans votre macro, vous devriez la treminer par un copier /Coller Valeur sur les cellules impliquées, ça devrait résoudre votre problème, sachant que la formule se renouvellera au coup suivant, mais que les résultats affichés ne bougeront plus avant le prochain lancement.
CRDLMNT
Bonjour,
plutôt que de mettre une formule tu pourrais peut-être mettre une macro directement dans
l'événement Clic de l'image.
Un exemple..
A+
plutôt que de mettre une formule tu pourrais peut-être mettre une macro directement dans
l'événement Clic de l'image.
Un exemple..
'Mettre 6 valeurs aléatoires dans cellule A1, A2, etc..
'Cliquer met les 6 chiffres,
'recliquer remet à zéro
'etc...
Private Sub Image1_Click()
Dim i As Integer
Static B As Boolean
B = Not B
Randomize Timer
For i = 1 To 6
If B Then
Cells(1, i) = (Int((6 * Rnd) + 1))
Else
Cells(1, i) = 0
End If
Next i
End Sub
A+
[IMG]http://img207.imageshack.us/img207/5437/sanstitreqs5.jpg[/IMG]
Pour vous aidez à me comprendre, une image vaut mieux qu'un long discours!
Pour vous aidez à me comprendre, une image vaut mieux qu'un long discours!
Re
essayez donc celle ci qui devrait vous donner satisfaction
Sub GO()
Range("E14").Select
ActiveCell.FormulaR1C1 = "^Les dés sont jetés"
Range("G10").Select
ActiveCell.FormulaR1C1 = "=(1+INT(6*RAND()))"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Chez moi, elle marche.
CRDLMNT
essayez donc celle ci qui devrait vous donner satisfaction
Sub GO()
Range("E14").Select
ActiveCell.FormulaR1C1 = "^Les dés sont jetés"
Range("G10").Select
ActiveCell.FormulaR1C1 = "=(1+INT(6*RAND()))"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Chez moi, elle marche.
CRDLMNT
En complément:
Si vous sopugaitez plusieurs résultats alétaoires dans une rangée de cellule ( par exemple de G10 à G1(
Sub GO()
Range("E14").Select
ActiveCell.FormulaR1C1 = "^Les dés sont jetés"
Range("G10:G15").Select
Selection.FormulaR1C1 = "=(1+INT(6*RAND()))"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
CRDLMNT
Si vous sopugaitez plusieurs résultats alétaoires dans une rangée de cellule ( par exemple de G10 à G1(
Sub GO()
Range("E14").Select
ActiveCell.FormulaR1C1 = "^Les dés sont jetés"
Range("G10:G15").Select
Selection.FormulaR1C1 = "=(1+INT(6*RAND()))"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
CRDLMNT
"La méthode Paste Special de la Range a échoué" (débogage qui me fluote les 2 dernières lignes)
Sinon elle marche mais ça change toujours!
La réponse 6 marche mais j'arrive pas à choisir mes cellules! Quels paramètres je dois changer si je veux faire mes tirages dans les célulles de A1 à c3 par exemple?
Sinon elle marche mais ça change toujours!
La réponse 6 marche mais j'arrive pas à choisir mes cellules! Quels paramètres je dois changer si je veux faire mes tirages dans les célulles de A1 à c3 par exemple?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
Comprend pas... qu'est ce qui marche et qu'est qui ne marche pas. Si message 6 marche, vos valeurs ne devraient pas changer pour choisir les cellules ou aplliquer la macro, prenez le message 6:
Sur la ligne:
Range ("G10")
changez le G10 sans enlever les guillemets:mettez si vous voulez un champ de A1 à C3
A1:C3 entre les guillemets
et si vous voulez seulement les cellules A1 et C3
A1,C3 entre les guillemets.
Enfin, voyez message 7;
Il faut chager
Acticecell.FormulaR1C1 et remplacer par:
Sélection.FormulaR1.C1 si vous voulez copier toutes ces cellules.
C'est tout.
bien entendu pour ce genre de manip pour info, il ne faut pas que votre feuille soit protègèe: si c'est le cas, sans mot de passe, commencez en 1° ligne, sous le titre de la macro:
ActiveSheet.Unprotect
et en dernière, juste avant End sub:
Activesheet.Protect
CRDLMNT
Comprend pas... qu'est ce qui marche et qu'est qui ne marche pas. Si message 6 marche, vos valeurs ne devraient pas changer pour choisir les cellules ou aplliquer la macro, prenez le message 6:
Sur la ligne:
Range ("G10")
changez le G10 sans enlever les guillemets:mettez si vous voulez un champ de A1 à C3
A1:C3 entre les guillemets
et si vous voulez seulement les cellules A1 et C3
A1,C3 entre les guillemets.
Enfin, voyez message 7;
Il faut chager
Acticecell.FormulaR1C1 et remplacer par:
Sélection.FormulaR1.C1 si vous voulez copier toutes ces cellules.
C'est tout.
bien entendu pour ce genre de manip pour info, il ne faut pas que votre feuille soit protègèe: si c'est le cas, sans mot de passe, commencez en 1° ligne, sous le titre de la macro:
ActiveSheet.Unprotect
et en dernière, juste avant End sub:
Activesheet.Protect
CRDLMNT
Quelle est la forme de cette formule? (C'est sans doute bête mais je débute dans la macro :))
Merci :)
Sub Macro2()
Range("C10:H10").Select
Selection.Copy
Range("C10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End SubBien entendu, changer les Range par les adresses de vos cellules
(Adressesd séparées par : prend le champ ecomplet entre les cellules limites, séparées par , prend les cellules individuellement si elles ne sont pas cote à cote)
Vous pouvez bien entendu réaliser cette macro par enregistrement :
Clquez sur Outil / Macro /Nouvelle macro et faites ce que vous souhaitez /Revenez sur Macro arrèter l'enregistrement.
Enfin, pour voir le libellé de la macro:
revenez sur Macro/Macro, sélectionnez dans la liste et choisissez "pas à pas détaillé ". vous pouvez alors copier la partie utile pour la rajouter dans une autre macro.
CRDLMNT