Faire apparaitre des photos dans une feuil
RésoluJCB40 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
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.
-
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
-
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 SubFichier :
https://www.cjoint.com/c/NKCqDEhEQU4
Tu peux l'intégrer au bouton "Mettre à jour le classement général.
Daniel
-
-
-
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 Subhttps://www.cjoint.com/c/NKDkJy66sx4
Daniel
-
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
-
-
-
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
-
Bonjour,
Voir par exemple là?
https://www.bonbache.fr/extraire-les-images-d-une-recherche-par-calculs-excel-282.html -
-
-
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
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
... Par contre, ça m'intéresserait de savoir pourquoi je ne peux pas sélectionner les images.
Daniel
-
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
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
-
-
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
-
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
-
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
-
Re,
Je t'ai créé les conditions pour les ligne 3, 4, 5 et 6, à toi de jouer
https://www.cjoint.com/c/NKCq2G0hseF

