Autres Petit defi du jour

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 a tous
Un petit défi comme ca le dimanche (et oui c'est tout moi ca )

J’ai plusieurs longueurs en nombre variable
Je cherche un algo qui me permettrait de faire des groupes de longueurs au plus proches les une des autres.
exemple
10;17.5;18;24.9;12.3;32;19;28.7;41;etc.....
ce nombre de longueurs je veux pouvoir le diviser par 3,4,ou,5,ect....groupe

ca me fera x groupes
l'addition des longueurs de ces groupes doivent être = ou tres proche

des idées ?
Patrick
 
Solution
Bonjour @job75
Me voilà de retour avec un nouvel écran super tout beau tou neuf enfin
4 jours sans PC , j'ai cru tourner un remake de "Seul au monde" 🤣 🤣

Donc voici ma version que j'avais adoptée la semaine dernière
Voir feuille patchwork 2 qui est sans conteste plus rapide
je ne prends pas la hauteur de cellule c'est moi qui décide la hauteur
tu constateras que les images coupées sont au zoom identique autres
Tiens Laurent j'ai ajouté une feuille avec la sauce Gpt
La version laurent GPT ne finit pas le travail comme le patwork2
il manque la dernière étape a savoir le remplacement des brindilles (plus ou moins importantes) par des doubles tronqués
@job75 L’a posté sur le post de claudy je crois
 

Pièces jointes

@patricktoulon
Tu as CODEX ?

c'est vraiment interrssant.

Patrick = fais ce test avec CHATGPT.

Ecrit le Prompte ChatGpt ci-dessous : Copier/Coller
tu sais me comparer deux code vba qui font la même choses ?me dire si qu'elle code est le plus performant et le mieux construit et pourquoi ?
je te poste les deux codes.

Le Premier code
Colle ton ici GoPatchwork2

Puis le deuxiéme code
colle le code que je t'ai donner ici GoPatchwork() / le code que j'ai poster dans le fil que j'ai effacer (car c'est ton code et ton idée) si tu l'a conservé

regarde la réponse de CHATGPT c'est Étonnant !
Alors attention avec ça je pourrais te montrer ses réponses que quand je le mets devant les faits accomplis qu'il se trompe.
il vire sa cuti et me donne exactement la réponse inverse(combien de fois mon écran, c'est pris la mouse je ne te dis pas)
je le redis par rapport a d'autres, il a pris du retard le chaton péteur.
 
Oui @patricktoulon

Effectivement, quand il se trompe il a quand meme la faculter de pas se débalonner en te demontrant sa super force et efficacité basé sur du vent... seul un oeil d'expert arrive a deceler la supercherie de Chatgpt qui regorge de strategie pour solutionné un code meme lorsque celui-ci se retrouve dans une impace il continue... comme l'option Auto-Reverse des walkman des années 80 😀 ce Chatgpt est un sacré phenoméne quand même 😃😃
 
et oui ta vu un peu la gifle qu'il a pris
perso je pense que c'est un veritable problème pour les plus jeunes qui ne savent pas reflechir sans le iphone et maintenant avec les IA
tu vois regarde toi tu es arrivé avec un code soit disant optimisé qui en fait ne fait pas le travail jusqu'au bout
alors que tu lui a donné mon code au depart j'ai du ( si tu a tout lu) demonter ses arguments un à un a un moment malgré ses pirouettes il a été obligé de plier
le problème c'est que tout le monde ne le mène pas a bout comme je le fait
les utilsateurs prennent souvent pour argent comptant tout ce qu'il pond
tu sais que tu peux le regler chatgpt en etant connecté pour qu'il sache te dire "je ne sais pas" au lieu d'etaller une pseudo science inscrite dans sa BDD qui decoule d'un decérébré

LOL :sa carte mère ne va le reconnaitre il c'est pris deux transistor au beure noir là 🤣 🤣 🤣 🤣
 
Bonjour l'équipe😉,

Intéressant! J'ai testé le "Chat péteur".
Pour des choses simples et clairement énoncées. Il pète assez juste.
Mais s'emmêle les pinceaux quant aux règles de codage à respecter.
Comme par exemple, le redimensionnement de la 1ère dimension d'un Array en VBA.
Je suppose qu'il doit confondre avec d'autres langages de programmation.
Il donne un coup de pouce sans plus.
Je préfère demander au forum, lorsque je bloque.

Ce n'est qu'un avis personnel.

Bon dimanche.
 
Bonjour @patricktoulon

si il y a d'autres points dans le nom du fichier alors : Split(LCase(fichiers), ".")(UBound(Split(LCase(fichiers), "."))) Remplacer par (1)

J'ai corrigé dans ton code : CreatePatchwork2 (j'avais un Bugs)
VB:
        Do While fichiers <> ""
            Select Case Split(LCase(fichiers), ".")(UBound(Split(LCase(fichiers), "."))) 'Split(LCase(fichiers), ".")(1)
                Case "jpg", "jpeg", "png", "gif", "bmp", "tiff"
                    a = a + 1: ReDim Preserve tbl(1 To a): tbl(a) = DosSier & fichiers
            End Select
            fichiers = Dir
        Loop

Ps : @patricktoulon, ce code est vraiment super j'adore 10/10.
J'ai aussi vu avec un ordinateur peux performant la VBA s'exécute et lorsque l'affichage est en dysfonction, j'enregistre le classeur, je ferme le classeur et j'ouvre le classeur et toute est afficher vraiment TOP pour ce qui on Excel 2013.

Merci Patrick

Laurent
 
Dernière édition:
Bonjour @cathodique


C’était d’ailleurs, et c’est encore, en phase de test avec CODEX de ChatGPT… Je vais creuser dès que j’aurai accès à un ordinateur surpuissant et aux ressources adéquates.
C’était un échange avec Patrick en phase de test, avec une conclusion justement autour de cette option CODEX, non pas pour transformer ou modifier le code de Patrick, mais pour analyser ce que sort CODEX.

Peut-être que @patricktoulon peut ajouter cela en commentaire dans le code : A été créé avec CODEX de ChatGPT.
Pour : Intéressant ! J’ai testé le « Chat péteur ». : code : Crée avec CODEX

Je préfère demander au forum, lorsque je bloque.
 
Dernière édition:
peut ajouter cela en commentaire dans le code : A été créé avec CODEX de ChatGPT.
Bonjour Laurent
je vais être honnête avec toi ,je l'ai mis dans le fichier en exemple
mais plutôt en exemple de ce qu'il ne faut pas faire
si tu a lu la joute (dialog d'architecture) avec le chat peteur(que j'ai tenu), tu te rendra compte qu'il est impossible dans l'accabit du code tel qu'il te la donné , d'aller jusqu' au bout du travail.
Conclusion tu peux jeter le code chatGpt a la poubelle
il n'a aucun intérêt ni dans la technique ni dans l'intention
dans l'apres midi je démarre l'autre defi sur le même sujet mais vu sous un autre angle
 
Hello @patricktoulon

Bonjour Laurent
je vais être honnête avec toi ,je l'ai mis dans le fichier en exemple
mais plutôt en exemple de ce qu'il ne faut pas faire

Conclusion tu peux jeter le code chatGpt a la poubelle = OUI est il faut supprimé le classeur qui contient ce code en Poste #32 aussi je pense

je parle uniquement de ton code.

je te montre : Select Case Split(LCase(fichiers), ".")(UBound(Split(LCase(fichiers), "."))) 'Split(LCase(fichiers), ".")(1)
VB:
Sub GoPatchwork2()
    Dim a&, B&, C&, D&, E&, F&, G&
    '---------------------------------------
    clearPatwork2
    '-----------------------------------------
    a = [B6] 'hauteur de l'image donc hauteur des lignes
    B = [B5].Value 'Nombre d'images par ligne
    C = Int(Cells(2, 1).Top) 'Top de depart
    D = [D1].Left 'left de depart
    E = [B7] 'combler les trous avec des doublon(0 pour non/1 pour oui)
    F = [B8] 'melanger les images
    G = [B9] 'terminer les bandes avec des images tronquées
    CreatePatchwork2 a, B, C, D, E, F, G
End Sub



Sub CreatePatchwork2( _
                     Optional hauteurmax& = 100, _
                     Optional NbPictureByRow& = 4, _
                     Optional Topdepart& = 0, _
                     Optional LeftStart = 0, _
                     Optional FillGapsDuplicates = 0, _
                     Optional UnOrderedPicture& = 0, _
                     Optional TerminalCropImage& = 0)
    Application.ScreenUpdating = False
    Dim p As Range, fichiers, topx&, count&, fin#, TrOu, LeftX&, tbl(), a&, q&, temp, W#, Timages(), x&
    Dim DosSier, img
    Dim dicoRight As Object, it, elem, dicoDoublons As Object
    Set dicoRight = CreateObject("scripting.dictionary")
    Set dicoDoublons = CreateObject("scripting.dictionary")
    topx = Topdepart
    LeftX = LeftStart
    'dialog folder
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "CHOISISSEZ LE DOSSIER D IMAGES"
        If .Show <> -1 Then Exit Sub
        DosSier = .SelectedItems(1) & "\"
    End With
 
    'dir fichieret stakage des liens fichier dans une variable tableau
    fichiers = Dir(DosSier & "\*.*")
    If fichiers <> "" Then
        Do While fichiers <> ""
            Select Case Split(LCase(fichiers), ".")(UBound(Split(LCase(fichiers), "."))) 'Split(LCase(fichiers), ".")(1)
                Case "jpg", "jpeg", "png", "gif", "bmp", "tiff"
                    a = a + 1: ReDim Preserve tbl(1 To a): tbl(a) = DosSier & fichiers
            End Select
            fichiers = Dir
        Loop

      Etc...... suite dans le code a @patricktoulon
 
- 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
Retour