Explication d'une macro

Bonjour à tous,

Je souhaiterais trier aléatoirement 8 cellules ( sur la même ligne ) mais je ne sais pas comment m'y prendre... J'ai trouvé ce code sur ce forum il me semble mais pas sûr du tout Le problème c'est que je ne le comprends pas du tout donc je n'arrive pas à l'adapter à ma situation... J'ai appris les bases de VBA à l'université mais c'est vraiment les bases ( IF ,WHILE, etc). Voila le code:

Sub tri()
    Range("a1").Offset(0, Range("a1")).Name = "tri"
        Range("b3:h9").Select
          Selection.Sort Key1:=Range("tri"), Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            Range("a1").Select
End Sub

Merci et bonne journée/soirée

Bonjour,

Au sujet de ton tri aléatoire ... veux-tu trier des nombres ... ou du texte ...?

Je voudrais trier du texte

Bonsoir le fil, bonsoir le forum,

Snowborg_FR a écrit :

Je souhaiterais trier aléatoirement

Heu.... Ca veut dire quoi ?

Re,

Pourquoi ne pas joindre à ton prochain message ... ton fichier ... pour faciliter les choses ?

Re

ThauThème : Oui ça veut rien dire en fait Je souhaite juste repositionner les cellules aléatoirement.

Le but final est de faire un Mastermind sur Excel. je veux créer un mode de difficulté qui consiste à retrouver une combinaison de 4 couleurs sur 8 possibles. La couleur ne peut apparaître qu'une seul fois dans la combinaison. J'ai essayé de faire quelque macro mais je n'ai pas réussi à créer ce que je souhaitais :/ Les 3 tentatives sont dans le module 1 ATTENTION: Le programme NORMAL1 fait planté Excel ( sans doute une boucle infini mais je sais pas pourquoi ) :/ Suite à ces échecs, j'ai essayé de changer la méthode: repositionner aléatoirement les 8 couleurs et tester seulement les 4 premières par la suite ce qui me permet de ne pas avoir de couleurs doubles. Mais la je ne sais pas du tout comment faire

Je reprécise que je suis totalement débutant sur VBA. J'ai eu seulement 4h de cours dessus donc il est fort probable que les erreurs soient surprenantes ^^ Merci à tous a+

82test.xlsm (23.22 Ko)

Bonjour,

As-tu jeter un oeil sur le lien suivant ...

https://forum.excel-pratique.com/excel/creation-d-un-mastermind-t46661.html

Bonjour

Merci pour le lien il me sera d'une grande aide pour la suite je pense Mais la combinaison à trouver sur ce mastermind peut contenir plusieurs fois la même couleur alors que j'aimerais que ma combinaison ne contienne pas de doublons :/ Donc je suis toujours bloqué sur ce point là :/

Merci

Re,

Parmi toutes les solutions possibles ...

93test-snowborg.xlsm (26.21 Ko)

Re,

C'est exactement ce que je voulais Merci beaucoup Si tu as le temps est-ce que tu pourrais m'expliquer ce que tu as fait parce que je ne comprend absolument rien... si le prof me demande d'expliquer ce que j'ai fait ou à quoi servent les commandes que tu as mis dedans je ne serait pas quoi répondre Mais ce n'est pas urgent et si tu n'as pas le temps ou l'envie ce n'est pas grave du tout tu m'as déjà bien aidé merci beaucoup

A+

Merci beaucoup pour tes remerciements ...

Pour te décrire le principe de la macro :

1. Dans la mesure où tu veux ajouter de l'aléatoire, l'artifice consiste à ajouter sur la première ligne de ta feuille, au dessus de ta plage de cellules-textes, une série de nombres aléatoires entre 0 et 1000 ...

2. Puis, la plage consistuée des deux lignes est triée de gauche à droite ... en utilisant la série qui vient d'être ajoutée ...

3. Et la série de nombres aléatoires est effacée ... après avoir rempli son rôle ...

J'espère que cette explication est assez claire ...

Bonjour/Bonsoir

Merci pour l'explication est-ce que tu connais un site où il y a l'explication des commandes que tu as utilisés parce que j'aimerais bien pouvoir les réutiliser mais je ne sais pas à quoi ça sert. J'en n'ai trouver quelques unes mais il y en a plein que je trouve pas :/

Merci A+

Re,

Dans la macro ... il n'y a que deux intructions ...

1. Randbetween est la fonction anglaise que tu as dans Excel en français : ALEA.ENTRE.BORNES

2. Sort ... est, en fait le tri classique ...

Donc... rien de mystérieux ... et surtout ... Rien de très compliqué ...

Re

Donc tu mets des valeurs aléatoires dans les cellules au dessus des cellules à trier et ensuite si j'ai bien compris:

- Tu définis la ligne du dessus comme entête grâce à header

- SortMethod=xlPinYin permet de trier les entêtes donc les mots en dessous

- Tu effaces les nombres avec Range("E1:L1").ClearContents

Par contre il y a quelque ligne que je n'ai pas compris :

- ActiveWorkbook.Worksheets("DONNEES").Sort.SortFields.Clear

- ActiveWorkbook.Worksheets("DONNEES").Sort.SortFields.Add Key:=Range("E1:L1") _

, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

- MatchCase = False je ne comprend pas Matchcase j'ai trouver des définitions mais je ne sais pas ce que la casse...

Sinon le reste j'ai fait quelques recherches et j'ai compris

Merci beaucoup A+

Re,

Tu as parfaitement compris tout le code ...

Les deux dernières instructions permettent d'effacer les anciennes instructions de tri ... et de rajouter les nouvelles ...

D'accord merci beaucoup en tout cas

Si j'arrive à faire quelque chose de potable je le posterais sur ce sujet

A+ et merci encore

Re,

Merci pour tes remerciements ...!!!

Rechercher des sujets similaires à "explication macro"