Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA

Pablo85

XLDnaute Nouveau
Écrivez (et implémentez) un code VBA qui fournit la solution du plus proche voisin pour le TSP. Vous devez utiliser des Fonctions et / ou des Subs dans votre code (les modules de cours ne seront pas acceptés). Utilisez le fichier Excel Exercise1 pour échantillonner les nœuds (clients) lors de l'implémentation de votre code
 

Pièces jointes

  • Exercise1.xlsm
    20.1 KB · Affichages: 10
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Here is a french talking forum ...

Hola a todos, ¿Alguien me puede ayudar por favor? este es el tema: Escriba (e implemente) un código VBA que proporcione la solución de vecino más cercano para el TSP. Debe utilizar Funciones y / o Subs en su código (no se aceptarán módulos de clase). Utilice el archivo de Excel Ejercicio1 para muestrear nodos (clientes) al implementar su código.

You better use Google or other translation...
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Traduction à peut prés en Français j'ai utilisé Google traduction pour l'Anglais et pour L'Espagnole de Modeste geedee que je salut )

Salut à tous, S'il vous plaît, quelqu'un peut m'aider ?? c'est le sujet: Écrivez (et implémentez) un code VBA qui fournit la solution du plus proche voisin pour le TSP. Vous devez utiliser des Fonctions et / ou des Subs dans votre code (les modules de cours ne seront pas acceptés). Utilisez le fichier Excel Exercise1 pour échantillonner les nœuds (clients) lors de l'implémentation de votre code

Vous feriez mieux d'utiliser Google ou une autre traduction ... ( Moi et Modeste geedee)
.
Bonne journée !
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Heu...
 

job75

XLDnaute Barbatruc
Bonjour Pablo85, Modestegeedee, Edit : JBARBE,

Après réflexion ma solution convenait, je la remets ici :
VB:
Private Sub CommandButton1_Click()
Dim L As Integer, tablo, i As Integer, x As Double, y As Double, dmin As Double, j As Integer, d As Double

Application.ScreenUpdating = False
Cells.ClearContents 'RAZ

L = Int((100 - 50 + 1) * Rnd() + 50)
[A1:E1] = Array("N", "X", "Y", "Nearest N", "Nearest D")

tablo = [A2].Resize(L, 5) 'matrix, faster

For i = 1 To L
    tablo(i, 1) = i
    tablo(i, 2) = Rnd() * 100
    tablo(i, 3) = Rnd() * 100
Next i

For i = 1 To L
    x = tablo(i, 2): y = tablo(i, 3)
    dmin = 150#
    For j = 1 To L
        If j <> i Then
            d = Sqr((tablo(j, 2) - x) ^ 2 + (tablo(j, 3) - y) ^ 2)
            If d < dmin Then dmin = d: tablo(i, 4) = tablo(j, 1): tablo(i, 5) = d
        End If
Next j, i

[A2].Resize(L, 5) = tablo 'restitution

End Sub
J'ai bien compris que si le plus proche de i est j cela ne veut pas dire que le plus proche de j est i.

Ce n'est pas une relation biunivoque.

A+
 

Pièces jointes

  • Exercise1(1).xlsm
    24.7 KB · Affichages: 3
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 vba
Réponses
20
Affichages
2 K
  • Question
Microsoft 365 VBA
Réponses
1
Affichages
356
Réponses
3
Affichages
411
Réponses
2
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…