Copier et coller en-dessous

Chris1800

XLDnaute Nouveau
Bonjour à tous,

J'ai fait une petite macro qui me génère des nombres aléatoires que je souhaite présenter dans les cellules D8 et E8 dans mon exemple ci-joint.

Ce que je souhaiterais ajouter, c'est une commande qui me pose les nouveaux chiffres tirés en-dessous des autres, à chaque fois que je clique sur le bouton.

Si vous parvenez à m'aider, ça serait génial !!

Merci d'avance.
 

Pièces jointes

  • Classeur1.xlsm
    18.9 KB · Affichages: 18

Staple1600

XLDnaute Barbatruc
Bonjour Chris1800, don_pets

Histoire de varier les plaisirs, deux autres écritures possibles ;)
La première macro ne passe pas par le copier/coller
VB:
Sub Simili_Copie()
Cells(Rows.Count, 1).End(3).Resize(, 2).Offset(1, 0).Value = [A18:B18].Value
End Sub
Dans celui-ci, la liste s'incrémente directement.
VB:
Sub aléatoireV2()
Cells(Rows.Count, 1).End(3).Offset(1, 0).Value = Int(([A9] - 1 + 1) * Rnd) + 1
Cells(Rows.Count, 2).End(3).Offset(1, 0).Value = Int(([B9] - 1 + 1) * Rnd) + 1
End Sub
 

Staple1600

XLDnaute Barbatruc
Re,

Et une dernière pour le fun ;)
Code:
Sub aléatoireV3()
'Ligne ci-dessous juste pour un clin d'oeil ;-), et parfaitement futile donc suppressible
Randomize CInt(Asc("Staple") + 1517)

'Une dernière écriture pour la route
Cells(Rows.Count, 1).End(3).Resize(, 2).Offset(1, 0) = Array(Int(([A9] - 1 + 1) * Rnd) + 1, Int(([B9] - 1 + 1) * Rnd) + 1)
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Chris1800, @don_pets, @Staple1600,

Une p'tite dernière ? Une macro qui remplit les quatre cellules en un coup et qui commence à la ligne 8 même si les colonnes D et E sont vides.
VB:
Sub EncoreUneAutre()
With Application
  Union(Range("a18"), Cells(.Max(8, Cells(Rows.Count, "d").End(xlUp).Row + 1), "d")) = .RandBetween(1, [A9])
  Union(Range("b18"), Cells(.Max(8, Cells(Rows.Count, "d").End(xlUp).Row), "e")) = .RandBetween(1, [B9])
End With
End Sub
 

Pièces jointes

  • Chris1800- AleaEntre- v1.xlsm
    19.1 KB · Affichages: 10

Chris1800

XLDnaute Nouveau
Merci pour vos réponses !
Effectivement la réponse de don_pets me convenait parfaitement. Mais cette nouvelle version offre l'avantage de me permettre de mieux comprendre l'utilisation de cette ligne de commande.
Donc un grand merci à vous tous pour votre aide !!!!!
 

Staple1600

XLDnaute Barbatruc
Bonjour

Chris1800
[taquinerie du lundi matin]
La solution de don_pets comme la mienne ne tenaient pas compte de ce que tu disais
que je souhaite présenter dans les cellules D8 et E8 dans mon exemple ci-joint.
Et ta macro dans ton fichier exemple n'allait pas chatouiller ces deux cellules.
Seul ma pomme a intégrer ces cellules dans sa macro.
Or donc comment parfaitement don_pets et moi pouvions coller au cahier des charges du message#1?
;)
[/taquinerie du lundi matin]
 

job75

XLDnaute Barbatruc
Bonjour Chris1800, don_pets, JM, mapomme,

Le fichier du post #1 est clair : en D8 et E8 on récupère par formules les derniers nombres aléatoires tirés, donc la liste est en colonnes A et B.

D'où le fichier joint et cette macro :
VB:
Sub MesAleas()
[A18].Offset(IIf([A18] = "", 0, Application.Match(9 ^ 9, [A:A]) - 17)) = Application.RandBetween(1, [A9])
[B18].Offset(IIf([A18] = "", 0, Application.Match(9 ^ 9, [A:A]) - 18)) = Application.RandBetween(1, [B9])
End Sub
Formule en D8 à tirer sur E8 =INDEX(A:A;MAX(EQUIV(9^9;$A:$A);18))

A+
 

Pièces jointes

  • MesAleas(1).xlsm
    24 KB · Affichages: 2

Discussions similaires