BARYCENTRE

Chrisnut

XLDnaute Nouveau
Bonsoir,

J'ai un projet à réaliser et une recherche d'un barycentre pour positionner un entrepôt.
Des flux au départ du 33 et au départ du 60.
Auriez vous une idée sur un mode de calcul à adapter par rapport à mes données ci jointes ?
 

Pièces jointes

  • Barycentre.xlsx
    313.8 KB · Affichages: 108

job75

XLDnaute Barbatruc
Bonjour Chrisnut, JHA, Jean-Claude,

Il faut du VBA et utiliser la définition mathématique d'un barycentre.

O étant l'origine des coordonnées de la feuille, A B C etc... les centres des images des départements, le barycentre G sera déterminé par l'équation vectorielle OG = (n1OA + n2OB + n3OC + …)/(n1 + n2 + n3 + …)

n1 n2 n3...
étant les coefficients de pondération (ici les quantités) de chaque point/département.

Pour programmer ça il faut faire une bonne petite gymnastique avec les images.

A+
 

job75

XLDnaute Barbatruc
Re,

Oui Jean-Claude on pourrait se passer de la carte (et du VBA) avec les coordonnée GPS des centres des départements.

Mais puisqu'il y a une carte c'est bien plus parlant, on positionne la petite image "Barycentre".

Voyez le fichier joint avec cette macro qui se déclenche par double-clic en A1 ou A101 :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A1,A101]) Is Nothing Then Exit Sub
Dim P As Range, i As Byte, image As Shape, X#, Y#
Cancel = True
Application.Goto Target, True 'cadrage
Set P = Target.CurrentRegion
Shapes("CarteFrance").Top = P.Rows(2).Top
For i = 3 To P.Rows.Count
  Set image = Shapes(P(i, 1))
  X = X + P(i, 4) * (image.Left + image.Width / 2)
  Y = Y + P(i, 4) * (image.Top + image.Height / 2)
Next
X = X / Application.Sum(P.Columns(4))
Y = Y / Application.Sum(P.Columns(4))
Set image = Shapes("Barycentre")
image.Left = X - image.Width / 2
image.Top = Y - image.Height / 2
End Sub
PS : Côte de Nacre JC.

A+
 

Pièces jointes

  • Barycentre(1).xlsm
    180.5 KB · Affichages: 78

job75

XLDnaute Barbatruc
Re,

Une petite précision peut-être utile puisque vous mentionnez dans vos tableaux un "LIEU DEPART".

Dans un espace à 2 ou 3 dimensions (voire dans l'espace-temps) l'emplacement du barycentre ne dépend pas de l'origine des coordonnées.

A+
 

job75

XLDnaute Barbatruc
Re,

La macro traite toutes les images (Shapes) dont les noms sont en colonne A du tableau étudié.

Le centre de chaque image a pour coordonnées :

- par rapport au bord gauche de la feuille (origine des abscisses) : image.Left + image.Width / 2

- par rapport au bord supérieur de la feuille (origine des ordonnées) : image.Top + image.Height / 2

Renseignez-vous si vous ne savez pas ce que sont les propriétés Left Top Width Height.

A+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal