Déplacement de 3 plots dans un rectangle sans se chevaucher

pascal82

XLDnaute Occasionnel
Bonjour à toutes et à tous,

J'ai besoin d'une âme charitable.
J'ai trois plots (A,B et C) qui doivent se déplacer sans se chevaucher dans un rectangle et je ne n'arrive pas a programmer son fonctionnement.

Nota: Je dois garder la structure xi,yi parce que utilisés dans une formule par la suite.

Un grand Merci par avance
Cordialement

Code:
Option Explicit

Sub Plot()
Dim x1%, y1%, x2%, y2%, x3%, y3%
Dim A%, B%, C%
'coordonnées plot A
    For x1 = -76 To -72
    Range("a1").Value = x1
        For y1 = -1 To 1
        Range("a2").Value = y1
            'coordonnées plot B
            For x2 = -76 To -72
            Range("b1").Value = x2
                For y2 = -1 To 1
                Range("b2").Value = y2
                    'coordonnées plot C
                    For x3 = -76 To -72
                    Range("c1").Value = x3
                        For y3 = -1 To 1
                        Range("c2").Value = y3

A = Cells(x1, y1)
B = Cells(x2, y2)
C = Cells(x3, y3)

If A <> B And A <> C And B <> C Then
MsgBox "A différent de B et de C"
End If
                        Next
                    Next
                Next
            Next
        Next
    Next


End Sub
 

Pièces jointes

  • Position Plot.xls
    33.5 KB · Affichages: 55
  • Position Plot.xls
    33.5 KB · Affichages: 62
  • Position Plot.xls
    33.5 KB · Affichages: 61

Modeste geedee

XLDnaute Barbatruc
Re : Déplacement de 3 plots dans un rectangle sans se chevaucher

Bonsour®
il y a 5 abscisses, 3 ordonnées ce qui fait 15 couples possibles.
il suffit de piocher aléatoirement 3 couples dans cette liste.

la liste pourra etre mise dans un objet dictionnaire, le tirage fait de façon consécutive pour supprimer les doublons.

en pièce jointe une solution sans macro (appuyer sur F9)
par macro il suffira de faire un copier-Coller spécial Valeur dans la plage utilisée pour le graphe
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    38.3 KB · Affichages: 60
  • Position Plot.xls
    41.5 KB · Affichages: 54
  • Capture.JPG
    Capture.JPG
    38.3 KB · Affichages: 69
  • Position Plot.xls
    41.5 KB · Affichages: 56
  • Capture.JPG
    Capture.JPG
    38.3 KB · Affichages: 57
  • Position Plot.xls
    41.5 KB · Affichages: 54

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Déplacement de 3 plots dans un rectangle sans se chevaucher

Bonjour pascal82, Modeste geedee :), à tous,

Pour le fun, une méthode sans graphe, indépendante des données, basée sur la géométrie du rectangle et qui utilise une mise en forme conditionnelle.

Feuille "RECT-3x5" : une méthode n'utilisant qu'une colonne mais gourmande en temps de calcul et avec une formule de MFC alambiquée:
Code:
=OU(  INDEX(ZoneAlea; 5*( LIGNES($F$3:F3)-1) + COLONNES($F$3:F3))  =PETITE.VALEUR(ZoneAlea;LIGNE(INDIRECT("$1:$" & NbrePoints))))

Feuille "RECT-10x10" : une autre méthode utilisant deux colonnes, plus courte en temps de calcul et avec une formule de MFC simple:
Code:
= INDEX(pourMFC_2; 10*( LIGNES($F$3:F3)-1) + COLONNES($F$3:F3))

Dans la cellule jaune, saisir le nombre de points à afficher.
 

Pièces jointes

  • Position Plot v1.xls
    49.5 KB · Affichages: 48

pascal82

XLDnaute Occasionnel
Re : Déplacement de 3 plots dans un rectangle sans se chevaucher

Bonjour Modeste geedee, mapomme, et à tous

@ Modeste geedee. Il faut reconnaître que je n'avais absolument pas pensée a cette approche qui est très ingénieuse.
@ mapomme. Votre réponse dépasse de loin ma demande, la méthode que vous utilisez pour le 10x10 offre beaucoup plus de possibilité et avec un temps de traitement plus que raisonnable.

Je fais quelques tests et reviens si besoin

Encore un grand merci pour votre implication

Très cordialement
 

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop