Faire apparaitre des photos dans une feuil

Résolu
JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   -  
JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour

Dans le fichier joint les explications de mes besoins

j'ai tenté =Recherchv mais cela ne fonctionne pas

https://www.cjoint.com/c/NKBkLW6triQ

Merci pour votre aide


Commence par faire le nécessaire ,puis fait ce qu'il est possible de faire et tu réaliseras l'impossible sans t'en apercevoir. Saint François d'Assise

9 réponses

Résumé de la discussion

Le besoin est d'automatiser l’intégration d'images dans le classement général sans que la fonction RECHERCHEV ne fonctionne sur le fichier fourni. Des macros VBA proposées copient les images depuis la feuille Photos vers le Classement Général en s’appuyant sur une correspondance de lignes, avec une version qui supprime certaines formes et une autre qui prévoit un traitement “podium” pour N3, L4 et P4. Une approche alternative pour Excel 365 consiste à placer les images dans les cellules et à utiliser RECHERCHEV pour récupérer les données associées, évitant la gestion des formes. D’autres échanges évoquent des erreurs de syntaxe, corrigées par des ajustements de sélection, et des demandes de partage du classeur présentant le résultat attendu.

Bobot (l'IA à votre service)
  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     

    Bonjour,

    L'intérêt d'un forum est le partage des connaissances. les messages privés doivent rester exceptionnels.

    récupère ton fichier et on en reparle

    https://www.cjoint.com/c/NKBpOtfkHQF


    1
    1. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Merci pour l'exemple

      Je vais essayer de mettre en place dans le fichier original

      Crdlt

      0
  2. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294
     

    Bonjour,

    J'ai écrit la macro "Logos" (module "Daniel) :

    Sub logos()
      Dim C As Range, Ligne As Variant, Sh As Shape
      Application.ScreenUpdating = False
      With Sheets("Classement Général")
        For Each Sh In .Shapes
          If Sh.TopLeftCell.Column = 6 Then
            Sh.Delete
          End If
        Next Sh
        For Each C In .Range("G3", .Cells(.Rows.Count, 7).End(xlUp))
          Ligne = Application.Match(C, [photos!B:B], 0)
          
          If IsNumeric(Ligne) Then
            With Sheets("Photos")
              For Each Sh In .Shapes
                If Sh.TopLeftCell.Row = Ligne Then
                  .Select
                  Sh.Select
                  Selection.Copy
                  Sheets("Classement Général").Select
                  C.Offset(, -1).Select
                  ActiveSheet.Paste
                  Selection.Top = Selection.Top + 10
                  Selection.Left = Selection.Left + 22
                  Exit For
                End If
              Next Sh
            End With
          End If
        Next C
      End With
      Application.ScreenUpdating = True
    End Sub
    

    Fichier :

    https://www.cjoint.com/c/NKCqDEhEQU4

    Tu peux l'intégrer au bouton "Mettre à jour le classement général.

    Daniel


    1
    1. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonsoir Daniel,

      Merci pour ta solution ça  fonctionne du tonnerre

      Tu m'enlève une belle épine du pied

      Crdlt

      0
    2. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonjour Daniel,

      Je viens à nouveau te solliciter

      Est il possible de mettre le logo du premier sur le podium, ainsi que le deuxième et le troisième

      Merci pour ton aide

      0
    3. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294 > JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention  
       

      Bonjour à tous,

      Essaie :

      Sub logos()
        Dim C As Range, Ligne As Variant, Sh As Shape
        Application.ScreenUpdating = False
        With Sheets("Classement Général")
          For Each Sh In .Shapes
            If Sh.TopLeftCell.Column = 6 Then
              Sh.Delete
            ElseIf Sh.TopLeftCell.Address = "$N$3" Or _
              Sh.TopLeftCell.Address = "$L$4" Or _
              Sh.TopLeftCell.Address = "$P$4" Then
              Sh.Delete
            End If
          Next Sh
          For Each C In .Range("G3", .Cells(.Rows.Count, 7).End(xlUp))
            Ligne = Application.Match(C, [photos!B:B], 0)
            If IsNumeric(Ligne) Then
              With Sheets("Photos")
                For Each Sh In .Shapes
                  If Sh.TopLeftCell.Row = Ligne Then
                    .Select
                    Sh.Select
                    Selection.Copy
                    Sheets("Classement Général").Select
                    C.Offset(, -1).Select
                    ActiveSheet.Paste
                    Selection.Top = Selection.Top + 10
                    Selection.Left = Selection.Left + 22
                    Exit For
                  End If
                Next Sh
              End With
            End If
          Next C
          'podium
          For Each C In Range("N3,L4,P4")
            Ligne = Application.Match(C, [photos!B:B], 0)
            If IsNumeric(Ligne) Then
              With Sheets("Photos")
                For Each Sh In .Shapes
                  If Sh.TopLeftCell.Row = Ligne Then
                    .Select
                    Sh.Select
                    Selection.Copy
                    Sheets("Classement Général").Select
                    C.Select
                    ActiveSheet.Paste
                    Selection.Width = C.Width + C.Offset(, 1).Width
                    Selection.Left = (C.Width + C.Offset(, 1).Width - Selection.Width) / 2 + _
                      C.Left + 1
                    Exit For
                  End If
                Next Sh
              End With
            End If
          Next C
        End With
        Application.ScreenUpdating = True
      End Sub
      

      https://www.cjoint.com/c/NKDkJy66sx4

      Daniel

      1
    4. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479 > danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention  
       

      Re Daniel

      Je te joins une photo il y a un problème de mélange dans les photos

      https://www.cjoint.com/c/NKDlgGjqCDQ

      0
    5. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294 > JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention  
       

      Je ne comprends pas ce que tu m'envoies. Ca fonctionne dans le classeur que je t'ai envoyé. Fais-moi parvenir le classeur qui donne ce résultat.

      Daniel

      1
  3. jee pee Messages postés 9450 Date d'inscription   Statut Modérateur Dernière intervention   9 994
     

    Bonjour,

    Il est toujours meilleur de donner dès le dépaart les informations sur le forum dans la question. Je les reprends ci-après.

    Bonjour

    Dans cette feuille je cherche à récupérer dans la feuille2

    les images qui correspondent aux noms qui sont en colonne H

    Merci pour votre aide


    0
    1. brucine Messages postés 25158 Date d'inscription   Statut Membre Dernière intervention   4 166
       
      0
      1. brucine Messages postés 25158 Date d'inscription   Statut Membre Dernière intervention   4 166 > brucine Messages postés 25158 Date d'inscription   Statut Membre Dernière intervention  
         

        Au passage, la syntaxe de RECHERCHEV n'est pas bonne, elle devrait être:

        =RECHERCHEV(H2;Feuil2!$A$1:$B$4;2;FAUX)

        Cette fois-ci elle ne me rend plus #REF! mais 0 parce que le cellule de destination n'est pas du texte et/ou verrouillée.

        0
      2. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479 > brucine Messages postés 25158 Date d'inscription   Statut Membre Dernière intervention  
         

        pour l'erreur de syntaxe il s'agit d'une banale faute de sélection

        0
      3. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479 > brucine Messages postés 25158 Date d'inscription   Statut Membre Dernière intervention  
         

        Bonjour brucine

        Merci pour ta réponse

        Trop compliqué à mettre en place pour mon petit niveau de bureautique

        Crdlt

        0
    2. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonjour jee pee

      Ok pour la remarque.

      Quelle solution me proposes-tu?

      Crdlt

      0
  4. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294
     

    Bonjour,

    Avec Excel 365, il suffit de mettre les images dans la cellule :

    Après, on utilise RECHERCHEV :

    (Image dans le message suivant)

    https://www.cjoint.com/c/NKBnn3KUpy4

    Daniel


    0
    1. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294
       

      Illustration suite message 7 :

      Daniel

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294
     

    ... Par contre, ça m'intéresserait de savoir pourquoi je ne peux pas sélectionner les images.

    Daniel


    0
    1. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonjour danielc0

      Ta formule ne fonctionne pas avec office 2021

      Pour la question de sélection des images rien n'est verrouillé ,je ne comprend pas que tu ne puisses pas avoir ces images

      Crdlt

      0
      1. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294 > JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention  
         

        Bonjour,

        "Ta formule ne fonctionne pas avec office 2021"

        Non, en effet, c'est une nouveauté Excel 365.

        "je ne comprend pas que tu ne puisses pas avoir ces images"

        Je les vois. Je ne peux pas les sélectionner pour les déplacer, par exemple. Ni avec Excel 365, ni avec Excel 2010. J'essaierai plus tard de redémarrer Windows...

        Par contre, je peux le faire avec une macro ?

        Daniel

        0
  7. danielc0 Messages postés 2213 Date d'inscription   Statut Membre Dernière intervention   294
     

    Outre la solution avec Excel 365 et celle proposée par brucine au message 2, à ma connaissance, il n'y a qu'une solution par macro. Si tu es intéressé, dis-le.

    Daniel


    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     

    bonsoir,

    Il n'y a pas que le VBA, mais plusieurs possibilités par formule

    avec

    =INDIRECT(RECHERCHEV(Feuil1!$H$2;Feuil2!$A$1:$C$6;2;0))

    =DECALER(Feuil2!$B$1;EQUIV(Feuil1!$H$2;Feuil2!$A$1:$A$4;0)-1;)

    =DECALER(Feuil2!$B$1;LIGNE(INDEX(Feuil2!$A$1:$A$4;EQUIV(Décaler!$H$2;Feuil2!$A$1:$A$4;0);1))-7;)

    Un exemple avec recherchev

     https://www.cjoint.com/c/NKBrC2G57OF


    0
    1. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonjour Michel

      Désolé de revenir sur le sujet

      Dans l'exemple que tu me donnes post15 je ne saisi pas comment tu fait apparaitre le chien et si je demande le velo celui-ci n'apparait pas

      Crdlt

      0
  9. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
     

    Je joins mon fichier original

    ce que je souhaite c'est mettre dans la colonne "logos" feuille Classement Général

    la photo du logo correspondant au nom ,c'est photos se trouvent dans la feuille Photos.

    Il faut bien sur que ces photos suivent le nom lors de la mise à jour du classement

    Merci pour votre  aide

    https://www.cjoint.com/c/NKCmCADSzyQ


    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     

    Re,

    Je t'ai créé les conditions pour les ligne 3, 4, 5 et 6, à toi de jouer

    https://www.cjoint.com/c/NKCq2G0hseF


    0
    1. JCB40 Messages postés 3065 Date d'inscription   Statut Membre Dernière intervention   479
       

      Bonjour Michel

      j'ai testé quand on fait une MàJ du Classement Général tout est mélangé

      Crdlt

      0