Microsoft 365 Nombre aléatoire ordre croissant dans une zone sélectionnée

  • Initiateur de la discussion Initiateur de la discussion wiwi520
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

wiwi520

XLDnaute Nouveau
Bonjour,

Je cherche un code en VBA pour générer des nombres dans un ordre croissant sur une colonne (A par exemple) de manière aléatoire et que cette macro s'applique sur une sélection que je ferais manuellement. En d'autres mots je veux que cette macro ne s'applique que sur les cellules que je sélectionne.
Par exemple:
Si je sélectionne les cellules (A1:A10) et j'active la commande macro, seules ces cellules afficheront des nombres croissants de manière aléatoire. Je pourrais aussi sélectionner les cellules (A3:A7), ou (A8 : A25) pour avoir le même résultat.

Alors j'ai jamais fait des macros.

Merci pour votre aide précieuse.
 
Re

Si, j'étais moi, mon oeil droit (le gauche écoute la radio) s’arrêterait sur ceci:
Order1:=xlAscending
Et alors, j'aurais l'idée d'utiliser l'enregistreur de macros quand je fais un tri décroissant (afin d'obtenir le code VBA correspondant)
Ce faisant, la réponse a ta question est donc à deux pas d'une caresse à ta souris* (celle qui à un fil) 😉

*: c-a-d faire le tri manuellement avec le dit mulot.
 
Re

Puisque je suis moi, et en confinement dominical, une adaptation "paramétrée" de la proposition précédente.
VB:
Sub test_Croissant()
Nombre_Alea_III
End Sub
Sub test_Décroissant()
Nombre_Alea_III xlDescending
End Sub

Private Sub Nombre_Alea_III(Optional Sens_Tri As XlSortOrder = 1)
'souce:Sub aleatoire [08/2015] - ROGER2327 / Magic_Doctor / job75
Dim dk As Object, NbLgn&: Set dk = CreateObject("Scripting.Dictionary")
Randomize
With Selection
    NbLgn = .Rows.Count
    While dk.Count < NbLgn
        dk(Round((35 - 1) * Rnd() + 1, 0)) = ""
    Wend
    .Value = Application.Transpose(dk.keys): .Sort .Item(1), Sens_Tri
End With
End Sub
 
Re bonjour staple,
Rien ne t'interdit de t'amuser à profiter plus à fond du confinement.
Deux pensées !
-pensée 1 : si mes 35 nombres sont au départ dans l'ordre et que je dois en garder par exemple 20 : à en éliminer aléatoirement 15, les 20 autres sont restés dans l'ordre.

- pensée 2 : ... et puis non ... pas encore . 😎
 
Re

Je suis parti du principe que la sélection est vide.
Du coup, mes tests se déroulent sans accroc.
Mais j'ai fini de m'amuser, c'est l'heure de quitter l'Option Explicit pour l'Option Casseroles et cuisine. 😉
Je cherche un code en VBA pour générer des nombres dans un ordre croissant sur une colonne (A par exemple) de manière aléatoire et que cette macro s'applique sur une sélection que je ferais manuellement.
Chacun peut voir le verre plein ou vide.
Chez moi, il est toujours vide 😉
 
Bonjour
Bonjour

....
Ce qui a pour moi la conséquence suivante: si (par exemple et entre autres) 35 est le premier nombre tiré aléatoirement entre 1 et 35, seule sera remplie la celle A1
Aurais-je mal lu ? Te serais-tu mal ou incomplètement exprimé ?

Je pense qu'il faut voir la présente demande autrement. Si par exemple, on sélectionne 5 cellules. Excel tire au hasard 5 nombres différents entre 1 et 35, puis les classe dans l'ordre désiré dans les 5 cellules choisies. Il ni a pas d'impossibilité...

@ plus
 
Salut CISCO
Cela n'enlève rien à ce que j'ai exposé.
(c'est comme quand on égrène les petits pois).

Illustrons donc avec un exemple volontairement "écru" :
ici, je veux mettre en ordre croissant en A1:A25 25 nombres aléatoires tirés sans doublons entre 1 et 35
VB:
Dim toto As New Collection, K As Integer
For K = 1 To 35
  toto.Add K
Next
Randomize
For K = 1 To 10
  toto.Remove Int((toto.Count * Rnd) + 1)
Next
For K = 1 To Range("A1:A25").Count
  Range("A1:A25")(K) = toto(K)
Next
 
PS/ Bon je retourne en cuisine.
Et qu'est ce que tu nous prépares de bon pour ce soir ?

Une petite salade de 1 + int(rnd * 35) accompagnée de sa vinaigrette au Randomize, le tout relevé d'une pointe de RandBetween() cueilli à la rosée de ce matin sur les landes sauvages du bord de mer ?
Ah non, confinement oblige, c'est doute du RandBetween() lyophilisé 🙁.

Bon appétit...😀
 
Bonjour mapomme

Je te conseille (recette facile) l'Ober Gin genre Moult à Balai
- 1 Ober (gin, hein) coupée longitudinalement et piquée plusieurs fois à la fourchette -->> Au four sous MSHGRID à 275 ° pendant 20 minutes - retourner à 10 puis 15 minutes
- fourrer d'un peu de crême refresh et de from (âge rapé)
- saler - poivrer -->> remettre au four pour 900 secondes.
 
Re, Bonsoir mapomme


Une tasse d'un bon vieux Viandox (bien chaud)
(comme ceux qu'on servait dans les troquets d'antan)
1 tranche de Vollkornbrot sur laquelle je dépose deux trois tranches de saucisson du marin (que je recouvre de fines lamelles de vieux cheddar, sans oublier un petit saupoudrage de levure de bière) que je grille sur mon grille-grain de gazinière.
Une part de vermicelles de riz cuite avec quelques champignons.
Une bière.
Une part de gâteau maison (sans beurre, sans oeufs -> lait de soja et autres "bobozeries"
Un café.
 
Re @Staple1600,
Une tasse d'un bon vieux Viandox (bien chaud)
(comme ceux qu'on servait dans les troquets d'antan)
1 tranche de Vollkornbrot sur laquelle je dépose deux trois tranches de saucisson du marin (que je recouvre de fines lamelles de vieux cheddar, sans oublier un petit saupoudrage de levure de bière) que je grille sur mon grille-grain de gazinière.
Une part de vermicelles de riz cuite avec quelques champignons.
Une bière.
Une part de gâteau maison (sans beurre, sans oeufs -> lait de soja et autres "bobozeries"
Un café.
A part la bière, tu es sur la mauvaise pente. Je vois qu'il est grand temps de mettre un terme, non pas au confinement général mais, à ton enfermement. Sinon jamais tu ne tiendras le coup. Courage!
 
Re

•>mapomme
Avec un soupçon de pépin d'orthorexie¸ mapomme à dit:
A part la bière, tu es sur la mauvaise pente
Ce n'est pas possible.
Il n'est point dans ma bibliothèque 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
1 K
  • Suggestion Suggestion
Recherche & référence DicoCountOrder
Réponses
0
Affichages
2 K
D
  • Question Question
Réponses
3
Affichages
4 K
Retour