Comment faire une macro Qui

Le
Jimy
Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Youky
Le #5076111
Salut,
Peut être ai-je mal compris, en tout cas voici de quoi commencer
attention j'utilise la colonne A donc 2 rectifs à faire selon colonne
Youky


Dim deja(200) As Boolean
Randomize
[A:A].ClearContents 'efface
lig = 1
For k = 1 To 7
Do
n = Int((196 * Rnd) + 3)
If deja(n) = False Then
Cells(lig, 1) = Cells(n, 5) '1 étant col A
deja(n) = True: lig = lig + 1
Exit Do
End If
Loop
Next

"Jimy"
Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy



Ellimac
Le #5076091
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy





Jimy
Le #5391011
Merci Camille :)
Je vais essayer tout de suite....
Bye
Jimmy
"Ellimac" news:
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy







Jimy
Le #5390981
Bonjour Youky
Excuses moi mais je ne comprends pas ce que fait [A:A] clearContents efface
? cela va m'effacer la collonne A ?
Merci
Jimmy
"Youky"
Salut,
Peut être ai-je mal compris, en tout cas voici de quoi commencer
attention j'utilise la colonne A donc 2 rectifs à faire selon colonne
Youky


Dim deja(200) As Boolean
Randomize
[A:A].ClearContents 'efface
lig = 1
For k = 1 To 7
Do
n = Int((196 * Rnd) + 3)
If deja(n) = False Then
Cells(lig, 1) = Cells(n, 5) '1 étant col A
deja(n) = True: lig = lig + 1
Exit Do
End If
Loop
Next

"Jimy"
Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy







Jimy
Le #5390971
Bonjour Camille.
Je viens d'essayer le code mais il me met : Erreur de compilation...
Et je ne sais vraiment pas quoi modifier dans cette syntaxe :-s
Merci de ton coup de main (treeees sympa )
Bye
Jimmy
"Ellimac" news:
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy







Youky
Le #5390961
Oui,
exemple si tu veux tes données en col M
tu mets [M:M].ClearContents
ou
[M1:M7].ClearContents
ceci efface la col M ou la plage et on remets les nouvelles entrées
à changer aussi
Cells(lig, 1) = Cells(n, 5) '1 étant col A
par
Cells(lig, 13) = Cells(n, 5) '13 étant col M

La macro va tirer au hazard 7 N° de ligne compris entre 3 et 196 ceci sans
doublons et mettre la valeur
en col M sur cet exemple.
Je n'ai pas pigé le....de 1 à 50
Youky


"Jimy"
Bonjour Youky
Excuses moi mais je ne comprends pas ce que fait [A:A] clearContents
efface ? cela va m'effacer la collonne A ?
Merci
Jimmy
"Youky"
Salut,
Peut être ai-je mal compris, en tout cas voici de quoi commencer
attention j'utilise la colonne A donc 2 rectifs à faire selon colonne
Youky


Dim deja(200) As Boolean
Randomize
[A:A].ClearContents 'efface
lig = 1
For k = 1 To 7
Do
n = Int((196 * Rnd) + 3)
If deja(n) = False Then
Cells(lig, 1) = Cells(n, 5) '1 étant col A
deja(n) = True: lig = lig + 1
Exit Do
End If
Loop
Next

"Jimy"
Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy











Ellimac
Le #5390711
Bonjour,

Sur quelle ligne le programme plante ?

Camille


Bonjour Camille.
Je viens d'essayer le code mais il me met : Erreur de compilation...
Et je ne sais vraiment pas quoi modifier dans cette syntaxe :-s
Merci de ton coup de main (treeees sympa )
Bye
Jimmy
"Ellimac" news:
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy












Ellimac
Le #5390701
Re,

Je pense que le problème peut venir de la macro complémentaire Utilitaires
d'analyse.
Il faut aller dans Outils/Macros complémentaires et cocher Utilitaires
d'analyse.

Camille


Bonjour Camille.
Je viens d'essayer le code mais il me met : Erreur de compilation...
Et je ne sais vraiment pas quoi modifier dans cette syntaxe :-s
Merci de ton coup de main (treeees sympa )
Bye
Jimmy
"Ellimac" news:
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a 50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy












Jimy
Le #5390281
Bonjour YoukY
Le 1 à 50 c'est pour ne pas dépasser ces 2 limites ni inférieurs ni sup.
ok, je vais essayer de taper la formule...
Merci de ton aide...
Jimmy
"Youky"
Oui,
exemple si tu veux tes données en col M
tu mets [M:M].ClearContents
ou
[M1:M7].ClearContents
ceci efface la col M ou la plage et on remets les nouvelles entrées
à changer aussi
Cells(lig, 1) = Cells(n, 5) '1 étant col A
par
Cells(lig, 13) = Cells(n, 5) '13 étant col M

La macro va tirer au hazard 7 N° de ligne compris entre 3 et 196 ceci sans
doublons et mettre la valeur
en col M sur cet exemple.
Je n'ai pas pigé le....de 1 à 50
Youky


"Jimy"
Bonjour Youky
Excuses moi mais je ne comprends pas ce que fait [A:A] clearContents
efface ? cela va m'effacer la collonne A ?
Merci
Jimmy
"Youky"
Salut,
Peut être ai-je mal compris, en tout cas voici de quoi commencer
attention j'utilise la colonne A donc 2 rectifs à faire selon colonne
Youky


Dim deja(200) As Boolean
Randomize
[A:A].ClearContents 'efface
lig = 1
For k = 1 To 7
Do
n = Int((196 * Rnd) + 3)
If deja(n) = False Then
Cells(lig, 1) = Cells(n, 5) '1 étant col A
deja(n) = True: lig = lig + 1
Exit Do
End If
Loop
Next

"Jimy"
Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a
50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy















Jimy
Le #5390271
Bonjour Camille (joli nom) :)
La ligne qui est en rouge :
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
je suppose que celle la qui pose prob.
Merci de ton aide
Bye
Jimmy
"Ellimac" news:
Bonjour,

Sur quelle ligne le programme plante ?

Camille


Bonjour Camille.
Je viens d'essayer le code mais il me met : Erreur de compilation...
Et je ne sais vraiment pas quoi modifier dans cette syntaxe :-s
Merci de ton coup de main (treeees sympa )
Bye
Jimmy
"Ellimac" news:
Bonjour,

Un début de solution. Les macros suivantes renvoient en M1:M7 une plage
de
valeurs entre 1 et 50.

Sub Aléa()
Dim toto As Variant
For cpt = 1 To 7
Range("m1").Offset(cpt - 1).Select
retour: Action
Range("f1") = Application.CountIf(Range(Range("m1"), ActiveCell),
ActiveCell)
While Range("f1") > 1
GoTo retour
Wend
Next
Application.CutCopyMode = False
End Sub

Sub Action()
ActiveCell = "=ALEA.ENTRE.BORNES(1,50)"
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
End Sub

Camille


Bonjour a tous
Comment faire une Macro qui me donne un résultat de 7 chiffres de 1 a
50
A partir de ma base de données ? ( e3:e199 )
dans 7 cellules différentes.
Merci
Jimmy














Publicité
Poster une réponse
Anonyme