Résolu Excel macro VBA.

  • Auteur de la discussion Robert780
  • Date de début

Robert780

Habitué
Bonjour,
Je sèche pour la programmation de formation de nombres assemblés.
Le but est d'avoir le minimum d'espace vide, les permutations de nombres dans une ligne sont possibles pour l'arrangement successif.
Autant visuellement au crayon, j'arrive à assembler les lignes, je ne vois pas comment obtenir ce résultat avec Excel.
(on peut démarrer à n'importe quelle ligne, le but étant d'obtenir un arrangement optimal de toutes les lignes horizontal et vertical)

Avez vous une idée de début de commencement de solution?
je mets un exemple fait à la main avec 7 lignes (mon projet en compte 30).
moderator dixit : pas de fichier joint, plein de macros potentiellement dangereuses
merci

 

zeb

Modérateur
Salut,

Mais qu'est-ce que la formation de nombres assemblés ?
 

Robert780

Habitué
Bonjour,
J'avais mis un exemple qui a été supprimé? comment faire?
je fais une sorte de scrabble avec des séries de 5 nombres (30 lignes de A1 à E30) permutables entre eux sur une même ligne.
Je commence (par exemple) par la première ligne, puis ensuite j'essaye d'assembler mes 29 autres lignes de telle façon qu'il y ait le moins de trous possibles.

je joins une image exemple avec 8 lignes:


(les lignes ont été traitées dans l'ordre, ça n'a pas d'importance c'est le final avec le moins de trous vides qui est important)
Au crayon, on peut voir et anticiper pour voir une permutation ou autre, avec Excel ce ne doit pas être simple

merci
 

zeb

Modérateur
Plop,

Sur ce forum, la confiance est de mise entre nous. Et pour garantir cette confiance, on ne prend aucun risque. Nous ne partageons donc pas de fichier susceptible de contenir du code actif.

Dans cette partie du forum, on traite de programmation. VBA est un des nombreux langages abordés. Tu es donc dans la bonne catégorie.

Nous échangeons essentiellement des exemple de codes sources. dans le respect du règlement, il faut encadrer chaque morceau de code publié par les balises [code=vb] et [/code].

--------------------------------------------------

Or donc. Je ne comprends pas grand chose à ton machin. S'agit-il d'une variante de jeu de taquin ? Mais cette fois avec des nombres. Si oui, je te propose de nous donner les règles du jeu et de nous exposer comment tu veux que la partie se joue. On verra ensuite comment coder tout ça.
 

Robert780

Habitué
Bonjour,
Merci de ta réponse.
Je pensais plutôt au scrabble dans le sens où on case 8 lignes (dans mon exemple) de 5 nombres (A1 : E8 ) dans un carré le plus petit possible et donc avec un minimum de cellules vides. Les 5 nombres d'une même ligne sont permutables entre eux.
On "encastre" une série horizontalement de gauche à droite et verticalement de haut en bas (si nombres communs pour s'adapter).
j'ai pensé à une solution peut -être?
On démarre sur un carré de 20X20 cellules, de G1 à Z20, on place une ligne au milieu (5 nombres) et ensuite le code balaye chaque cellule du carré pour y placer les nombres des autres lignes avec à chaque fois des essais de permutation.
et le code recommence jusqu'à obtenir un score minimum de cellules vides dans le carré et si possible un carré le plus petit possible, ce qui signifie qu'un maximum de séries se sont"encastrées" entre elles ?

J'ai fait dans la photo jointe à mon précédent post un pas à pas pour arriver au final. (8 lignes) c'est un exemple, Excel peut faire mieux!

moderator dixit : pas de fichier joint, plein de macros potentiellement dangereuses

Merci de ton aide.



 

zeb

Modérateur
Et donc ton problème, c'est de trouver l'algorithme d'optimisation de toutes les combinaisons.
Ce n'est donc pas Excel ou VBA ton problème, c'est la "théorie des jeux".

Ai-je compris ?
 

Robert780

Habitué
Oui on peut dire ça, je ne connais pas la théorie des jeux?
Pourquoi ce n'est pas possible en VBA ? Excel devrait être capable de positionner des nombres en fonction de règles?

merci

 

zeb

Modérateur
Meilleure réponse
Excel peut le faire. VBA est le langage de programmation d'Excel. Basé sur VB, il peut tout faire, pourvu qu'on le lui demande.

Tu as donc une forge, une enclume et un marteau. Ça ne fait pas de toi un forgeron.

La théorie des jeux est un concept qui permet de choisir un meilleur chemin dans la résolution d'un problème. Basée sur le jeu, il permet de résoudre des problèmes d'optimisation. Le jeu intellectuel par excellence auquel se réfère cette théorie, ce sont les échecs. Le jeu lucratif par excellence qui réclame les meilleurs cerveaux pour réaliser ces algorithmes, c'est la bourse. Ne rigole pas, ne hausse pas les épaules, la théorie des jeux est surtout utilisée dans les programmes boursiers. :/

Donc si tu as besoin de savoir comment permuter les valeurs de deux cellules dans Excel, alors tu as un problème Excel/VBA. Et on peut te montrer comment faire.

Par contre, si tu as besoin de concevoir des algorithmes d'optimisation, alors tu as un problème tout cours. Et je ne vais pas te faire ce genre de cours. D'une part, je ne suis pas sûr d'être assez compétent, d'autre part, je n'ai pas une centaine d'heures à t'accorder.

------------------------------------

Quand même, on peut regarder. On peut faire toutes les combinaisons possibles !
Arrangements de 10 chiffres sur 5 colonnes, 8 lignes, sur un tableau de combien ?
Bon, je ne calcule même pas. Il y en a trop ! Faut trouver un algorithme. C'est de l'I.A. ton truc.
 

Robert780

Habitué
Bonjour,
Je te remercie déjà de m'avoir au moins répondu, j'avais pensé moi aussi aux nombreuses permutations, mais vu la puissance des processeurs actuels?

Bon, je continue au crayon et à la gomme.

Merci
A+
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 059
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut