VBA Générer une matrice i*j de données

Nnaks

XLDnaute Nouveau
Bonjour à tous chers amis internautes,

Dans le cadre d'un projet universitaire, je dois développer un programme assez complexe destiné à être utilisé pour résoudre des problèmes d'optimisation de transport en logistique.
Je cherche pour commencer à demander à l'utilisateur de saisir un certain nombre de données:
1) Les couts cij du client i à l'usine j avec 20<i<40 et 10<j<20 donc une matrice de taille (i,j) décidé par l'utilisateur.
2) Générer une matrice de la même taille avec des données aléatoires comprises entre 10 et 50 correspondant à la distance de transport du client i à l'usine j : tij

Je vous prie de bien vouloir m'aider si vous avez des idées.
Toutes partition VBA sera la bienvenue.

Merci d'avance.

Nnaks
 

pierrejean

XLDnaute Barbatruc
Re : VBA Générer une matrice i*j de données

Bonjour Nnaks

Vois si cela te convient

La macro repere le tableau preetabli (Bien mentionner Tableau en haut a gauche) et cree le tableau TJ correspondant

Edit: Salut gardiendephare
 

Pièces jointes

  • Nnaks.xls
    36 KB · Affichages: 72
  • Nnaks.xls
    36 KB · Affichages: 69
  • Nnaks.xls
    36 KB · Affichages: 66

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : VBA Générer une matrice i*j de données

Bonjour Nnaks, Gardien de phare, pierrejean,

Bon, j'avais cru comprendre mais j'ai encore lu trop vite (oublié le VBA :().

Je joins malgré tout le fichier que j'avais fait (par formule)

En B2, saisir la valeur de I.
En D2, saisir la valeur de J.
 

Pièces jointes

  • Generer une matrice i j v1.xlsx
    19.8 KB · Affichages: 71

Nnaks

XLDnaute Nouveau
Re : VBA Générer une matrice i*j de données

Bonjour à vous Gardien de Phare, pierrejean, mapomme

Tout d'abord, je vous remercie énormément pour vous être penché sur le sujet et pour le temps que vous y avez accordé.
Gardien de phare, ce que tu m'as envoyé est excellent, ce la dit j'aurai souhaité que comme dans le fichier de pierrejean et de mapomme, on ait une précision des matrices i et j, c'est à dire un tableau contenant les données aléatoires fournies:
ex: Usine2
Client1 32

Pierrejean, ce que tu m'as proposé est aussi excellent, cela dit, comment puis je changer le nombre d'usines et de clients si je le souhaite, et surtout comment proposer un msgbox ou un formulaire à l'utilisateur pour qu'il sélectionne sa valeur i et sa valeur j.

Mapomme, c'est exactement ce que je recherchais, je n'ai juste pas compris comment tu as fait, c'est impressionnant :)
Je voudrai savoir, si je veux que i inclue la valeur 20 et 40 c'est dire 20=<i=<40 et 10=<j=<20 comment puis je faire?
Je te remercie pour l'aide fournie.

Je vous remercie une fois de plus pour votre aide. Ce site est vraiment génial.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : VBA Générer une matrice i*j de données

Bonjour à tous,

Correction de mon post précédent #4

Avec l'hypothèse que la distance de I à J est la même que la distance de J à I (c'est une hypothèse raisonnable), la matrice des distances doit être 'presque symétrique' (symétrique si elle est carrée)

J'ai rectifié les formules des distances pour ce faire.
 

Pièces jointes

  • Generer une matrice i j v2.xlsx
    19.5 KB · Affichages: 55

Nnaks

XLDnaute Nouveau
Re : VBA Générer une matrice i*j de données

Re tout le monde,

mapomme, j'aimerais juste que tu m'explique comment tu as fait pour définir la cellule de commande de i et j en B2 et D2.
Si je souhaite modifier les bornes, comment puis j faire s'il te plait?
Merci encore.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : VBA Générer une matrice i*j de données

Bonjour à tous,
2 eme Correction de mon post précédent #4

1) j'ai complété la zone non carrée de la matrice des distances par des distances aléatoires.

2) j'ai modifié les mises en forme conditionnelles de la matrice des distances pour colorer en jaune la partie 'symétrique'

La touche F9 génére de nouvelles valeurs aléatoires.

Si on veut figer les valeurs aléatoires, copier la feuille et la coller sur une autre par collage spécial 'Valeur'.
 

Pièces jointes

  • Generer une matrice i j v3.xls
    193.5 KB · Affichages: 59

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : VBA Générer une matrice i*j de données

Re tout le monde,

mapomme, j'aimerais juste que tu m'explique comment tu as fait pour définir la cellule de commande de i et j en B2 et D2.
Si je souhaite modifier les bornes, comment puis j faire s'il te plait?
Merci encore.

Je ne suis pas certains d'avoir bien compris la question.

J'ai nommé les deux cellules B2 et D2 respectivement Ind_i et Ind_j.
Ensuite j'ai utilisé ces noms pour définir les formules des colonnes C et X et pour définir les formules de la ligne 3.

Pour limiter les valeurs prises par i, se placer sur la cellule B2, puis utiliser le menu "Données / Validation des données".
J'ai utilisé une formule ( =ET(B1>20;B1<40) ) pour limiter les valeurs. Il suffit de modifier les bornes et aussi modifier le message de saisie puis de valider. Idem pour j.
 

Nnaks

XLDnaute Nouveau
Re : VBA Générer une matrice i*j de données

Explications très claires. Je te remercie énormément mapomme, et merci aussi pour ta patience. Merci aussi à pierrejean et Gardien de phare.

J'espère arriver au bout de ce projet :/ VBA.

A très bientôt j'espère.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : VBA Générer une matrice i*j de données

Bonsoir à tous,

Je voudrai savoir, si je veux que i inclue la valeur 20 et 40 c'est dire 20=<i=<40 et 10=<j=<20 comment puis je faire?

Pour compléter ma réponse précédente, le fichier modifié. J'ai aussi simplifié les mise en forme conditionnelles du tableau des distances (V4).

Nota: Décidément c'est pas mon jour ! Je suis parti sur une matrice des distances entre sites et non pas entre clients et usines. Donc la matrice n'a aucune raison d'être symétrique. Les formules du tableau des distances s'en trouvent donc simplifiées ainsi que la mfc (v5)
 

Pièces jointes

  • Generer une matrice i j v4.xls
    114.5 KB · Affichages: 72
  • Generer une matrice i j v5.xls
    71 KB · Affichages: 66
Dernière édition:

Discussions similaires

Réponses
7
Affichages
462

Statistiques des forums

Discussions
312 928
Messages
2 093 697
Membres
105 787
dernier inscrit
BABOU79