Autres Problème avec mon algo de creation de patchWork

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
J'ai un souci avec mon algo patchwork d'images

Il est censé créer des lignes de X images de différent ratio (le nombre d'images est paramétrable).

Et ensuite il comble les trous de fin de ligne avec des shapes texturées
Et ensuite je remplace les shapes au fur et a mesure avec des doublons des images
Alors selon la longueur de ligne il me reste encore des doublons possibles ,pourtant dans certains cas les shapes texturées ne sont pas remplacées.

j'avoue que j'en perds mon latin là
Je montre le problème dans la vidéo ci-dessous
Et je joins le fichier
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
 

Pièces jointes

Solution
Bonjour à tous
Bon ben comme d'hab j'ai fini par trouver tout seul
En fait l'erreur était dans la logique de l'algorithme lui-même
Pour combler les trous
Je bouclais sur les trous puis sur toute les pictures et plaçais a chaque fois la plus grande possible tout en diminuant la largeur a chaque ajout en mémorisant les doublons pour ne pas le réutiliser une 2d fois.

En fait c'était une erreur de principe( qui pourtant me paraissait logique)
Il fallait soit boucler sur les shapes trous mais de la plus large a la moins large.
Pour qu'elle puisse bénéficier des images en doublons les plus larges or je bouclais de la première a la dernière
Sauf que la plus grande shape trou n'est pas forcément la première du coup il n'y avait pas assez de...
Bonsoir @sousou

ben non par ce que la si il me reste 100 points par exemple pour arriver au bout la condition va choisir une plus grand si elle est dispo et donc depasser

Dans la vidéo, on peut observer que même après avoir supprimé les doublons (l'original et la copie), il reste encore des images qui pourraient potentiellement être dupliquées et compatibles avec la partie manquante.
la visite se fait 50 fois
Autrement dit je repasse en boucle 50 fois tous les trous résiduels
a chaque tour les images potentielles doivent être dupliquées
donc même avant d'arriver au 50 tours tous les potentiels devraient être dupliqués
et même au bout de 50 fois il y a des doublons potentiels qui ne sont pas appliqués.

et je dis en pleine conscience que selon le nombre d'images et leur ratio il peut y avoir un pénurie de potentiels.
Mais dans mon exemple c'est pas le cas

je dois commettre une erreur dans mon algo que je ne comprends pas ou que je ne vois pas.
 
Dernière édition:
Bonjour à tous
Bon ben comme d'hab j'ai fini par trouver tout seul
En fait l'erreur était dans la logique de l'algorithme lui-même
Pour combler les trous
Je bouclais sur les trous puis sur toute les pictures et plaçais a chaque fois la plus grande possible tout en diminuant la largeur a chaque ajout en mémorisant les doublons pour ne pas le réutiliser une 2d fois.

En fait c'était une erreur de principe( qui pourtant me paraissait logique)
Il fallait soit boucler sur les shapes trous mais de la plus large a la moins large.
Pour qu'elle puisse bénéficier des images en doublons les plus larges or je bouclais de la première a la dernière
Sauf que la plus grande shape trou n'est pas forcément la première du coup il n'y avait pas assez de largeur cumulée avec les largeurs d'images restantes quand j'arrivais aux grands trous

ou
Laisser le remplissage progressif tant que ça rentre grande ou petite
Alors c'est hasardeux, mais étonnamment le résultat plusieurs créations d'affilée montre que c'est plus précis.
Cela montre que parfois tout se joue à peu de chose.

Je vais maintenant travailler sur l'algorithme avec largeur prédéfini

À ben là je me suis fait la leçon tout seul
Patrick
 
Dernière édition:
Bonjour Patrick,

Chez moi sur Win 11 Excel 2019 ta macro CreatePatchwork beugue sur la ligne :
VB:
If Not dicoDoublons.exists(PiCt.Name) Then
Pas compris pourquoi mais bon pour y remédier j'ai simplement ajouté 17 lignes plus bas :
VB:
.Name = "pict" & ActiveSheet.Pictures.Count 'évite le bug
A+
 

Pièces jointes

re
Bonsoir @job75 moi je sais pourquoi
La collection pictures est restée pour rétro compatibilité mais de plus en plus sur les versions recentes d'excel c'est tout en collection shapes
Le shapes.count et pictures.count peut donner des choses différentes
Mais de tout facon j'ai changer mon algo
c'était pas viable les 50X x images pour boucher les trous
Toute cette partie a changé
Maintenant j'ai le résultat souhaité
et j'ai même ajouté le final des bandes avec des images tronquées
100 lancements=100 réussites sans vides résiduels

Je vous livre ça dès que j'ai trouvé le moyen de remplacer le fil.userpicture des shapes en fin de bande
En effet j'avais opté pour cette méthode parce que le crop des images fonctionnaient mal mais le problème c'est que le fill.userpicture se fait avec l'image en size original.

Sinon on a bien des bandes remplies au max possible avec les images
Et il est plus rapide en plus puisque je ne boucle qu’une seule fois sur le dicoright (directement sur le shape maintenant
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour