Le VBA appliqué à Excel, où l'art de découvrir des fonctions après 1 heure de codage

Odesta

XLDnaute Impliqué
Bonjour
Un post pour recueillir non pas des nouvelles fonctions, mais vos diverses déconvenues (qui font rire jaune)


Après une bonne heure de code pour faire un algo me premettant de déterminer quels connecteurs j'allais utiliser pour relirer deux boites :
Code:
        If trouve = True Then 'vérification OK
            'trouver les coordonnées des deux cadres
            'dégrouper les formes
            feuille_simu.Shapes("Groupe_" & tableau_UP(ligne, 2)).Ungroup
            feuille_simu.Shapes("Groupe_" & tableau_UP(indice_up_deb, 2)).Ungroup
            
            b = feuille_simu.Shapes("Rec" & tableau_UP(ligne, 2)).Top
            a = feuille_simu.Shapes("Rec" & tableau_UP(ligne, 2)).Left
            e = feuille_simu.Shapes("Rec" & tableau_UP(ligne, 2)).Height
            f = feuille_simu.Shapes("Rec" & tableau_UP(ligne, 2)).Width
            
            d = feuille_simu.Shapes("Rec" & tableau_UP(indice_up_deb, 2)).Top
            c = feuille_simu.Shapes("Rec" & tableau_UP(indice_up_deb, 2)).Left
            g = feuille_simu.Shapes("Rec" & tableau_UP(indice_up_deb, 2)).Height
            h = feuille_simu.Shapes("Rec" & tableau_UP(indice_up_deb, 2)).Width
            'algorythme des flèches : basée sur la distance la plus courte
            'if hauteur_begin >
'            1- rouge fin : (c – (a + f/2))² + (b-(d+g/2))²
'            2- rouge épais : (c+h/2 – (a + f/2))² + (b-(d+g))²
'            3- noir point : (c – (a + f))² + (b+e/2-(d+g/2))²
'            4- noir fin : (c+h/2 – (a + f))² + (b+e/2-d)²
'            5- noir épais : (c+h/2 – (a + f))² + (b+e/2-(d+g))²
'            6- bleu fin : (c – (a + f/2))² + (b+e-(d+g/2))²
'            7- bleu épais : (c+h/2 – (a + f/2))² + (b+e-d)²
            tableau_longueur_fleche(1) = (c - (a + f / 2)) ^ 2 + (b - (d + g / 2)) ^ 2
            tableau_longueur_fleche(2) = (c + h / 2 - (a + f / 2)) ^ 2 + (b - (d + g)) ^ 2
            tableau_longueur_fleche(3) = (c - (a + f)) ^ 2 + (b + e / 2 - (d + g / 2)) ^ 2
            tableau_longueur_fleche(4) = (c + h / 2 - (a + f)) ^ 2 + (b + e / 2 - d) ^ 2
            tableau_longueur_fleche(5) = (c + h / 2 - (a + f)) ^ 2 + (b + e / 2 - (d + g)) ^ 2
            tableau_longueur_fleche(6) = (c - (a + f / 2)) ^ 2 + (b + e - (d + g / 2)) ^ 2
            tableau_longueur_fleche(7) = (c + h / 2 - (a + f / 2)) ^ 2 + (b + e - d) ^ 2
            taille = tableau_longueur_fleche(1) 'initialisation : on cherche la plus courte
            For i = 1 To 7
                If taille > tableau_longueur_fleche(i) Then
                    taille = tableau_longueur_fleche(i)
                    choix_fleche = i
                End If
                
            Next
            'écriture des point d'encrage en fonction des cas
            'les points d'encrage sont 1 haut, 2 gauche, 3 bas, 4 droite.
            Select Case choix_fleche
                Case 1
                    encrage_deb = 1
                    encrage_fin = 4
                Case 2
                    encrage_deb = 1
                    encrage_fin = 3
                Case 3
                    encrage_deb = 2
                    encrage_fin = 4
                Case 4
                    encrage_deb = 2
                    encrage_fin = 1
                Case 5
                    encrage_deb = 2
                    encrage_fin = 3
                Case 6
                    encrage_deb = 3
                    encrage_fin = 4
                Case 7
                    encrage_deb = 3
                    encrage_fin = 1
                    
            End Select

            'inverser si la cible est à gauche de la source :
            If (a + f / 2) > (c + h / 2) Then
                   temp = encrage_deb
                   encrage_deb = encrage_fin
                   encrage_fin = temp
            End If

Mon oeil a tilté sur une petite phrase dans l'aide attribué aux connecteurs :

Utilisez la méthode RerouteConnections pour rechercher automatiquement le chemin le plus court entre deux formes reliées par le connecteur

Bon, je suis content, mon algo ne marchait pas, et je ne veux pas perdre encore 30 minutes à le décoder. donc "Suppr"...mais quand même : ZUT !




Bon App' !

Olivier
 

Discussions similaires

Réponses
22
Affichages
793
Réponses
1
Affichages
177
Réponses
14
Affichages
670

Statistiques des forums

Discussions
312 332
Messages
2 087 365
Membres
103 528
dernier inscrit
maro