|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Jonathan Inscription : octobre 2011 Messages : 21 ![]() |
Bonjour tout le monde,
Je bloque sur la création d'une macro. Je m'explique: j'ai un point d'origine et 10 points de livraison. Les 11 points ont des coordonnées x et y. J'aimerai déterminer via une macro la distance entre tous ces points et l'afficher dans un tableau (nom des colonnes => point d'origine jusqu'au 10e point de livraison et nom des lignes => point d'origine jusqu'au 10e point de livraison). Exemple: on pourrait donc lire dans ce tableau la distance de 1 à 2, de 4 à 2, de 1 à 10, de 0 à 9, etc. La distance entre deux points se calcule comme cela: racine((x1-x2)²+(y1-y2)²). Ci-joint la trame excel, les coordonnées des points sont sur l'onglet "Coordonnees" et on essaye de remplir l'onglet "Distance". J'ai déjà déclaré x et y: Code :
Merci d'avance. |
||
|
|
01
|
|
|
#2 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 176 ![]() |
Bonjour,
Je te propose le morceau de code suivant Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Jonathan Inscription : octobre 2011 Messages : 21 ![]() |
Bonjour,
Merci ça fonctionne bien mais peux-tu m'expliquer le code stp. Je ne connais pas .Offset... Merci de ton aide. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 176 ![]() |
Offset signifie décalage. L'origine du référentiel de décalage est défini par rapport à la cellule à laquelle on applique l'offset (dans mon code : B2 ou B3).
Un offset de (0,0) correspond à la cellule de départ : Range("B2").Offset(0,0) renvoie la cellule B2 Range("B2").Offset(1,0) renvoie la cellule B3 Range("B2").Offset(0,1) renvoie la cellule C2 Range("B2").Offset(1,-1) renvoie la cellule A3 etc.. Tu saisis ? Dans mon code, cela sert simplement à parcourir les cellules des lignes x et y pour affecter à x1, x2, y1 et y2 les valeurs de tous les couples possibles (x1;y1) et (x2;y2) A ta disposition |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Jonathan Inscription : octobre 2011 Messages : 21 ![]() |
Ok merci. Et sans offset ça aurait donné quoi ?
|
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 176 ![]() |
On aurait pu écrire :
Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Jonathan Inscription : octobre 2011 Messages : 21 ![]() |
Merci !
J'ai finalement codé comme ça: Code :
Je pense qu'il faut rajouter un if ou une boucle comme while i-j >0 ? |
||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Code :
__________________
Cordialement. |
||
|
|
10
|
|
|
#9 |
|
Invité de passage
![]() Jonathan Inscription : octobre 2011 Messages : 21 ![]() |
J'ai bien compris merci !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com