Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Affichage photo : visible - pas visible

  • Initiateur de la discussion Initiateur de la discussion famu
  • Date de début Date de début

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 !

famu

XLDnaute Occasionnel
Bonjour à tous,
J'ai une liste d'inventaire de matériels sur une feuille ("Liste") et des photos, dans le même classeur mais sur une autre feuille ("Data Photos").
J'aimerais, via VBA, afficher la photo dans la feuille Liste en face de la référence.
J'ai fait un test (lancement de la macro "Image 1"), ça fonctionne car je fais apparaître l'image qui est déjà sur la feuille liste. Impossible pour moi de la faire apparaître si elle est sur la feuille Data Photos. Pour info, la feuille Data Photos n'est pas complète, il y aura environ une centaine de photos par la suite.
Auriez-vous une solution pour m'aider ?
D'avance merci,
Famu
 

Pièces jointes

Bonjour Famu,
Un essai en PJ avec :
VB:
Sub Image()
    For Each I In Worksheets(1).Shapes
        I.Delete
    Next
    Sheets("Data Photos").Shapes("Groupe 26").Copy
    Sheets("Liste").Range("F1").Select
    ActiveSheet.Paste
End Sub
On supprime toutes les images puis on copie celle désirée.
Reste ensuite à bien choisir l'image à copier....
( Le mieux que j'ai trouvé même si c'est fastidieux est d'appeler l'image de façon déterministe, par ex avec le contenu de la ligne colonne B. De cette façon on lit la ligne en B ce qui donne le nom de l'image à copier )
 

Pièces jointes

Fonctionne bien ! Le problème et que la macro ne fait pas la différence entre en la photo et le rectangle pour lancer la macro. Du coup, il supprime aussi le rectangle.
Mais le principe est de copier/coller et ensuite supprimer est OK.
 
Re,
Ma macro souffre d'un défaut, il supprime aussi les boutons. ( Comme vous vous en êtes aperçu )
Ceci étant dit, les boutons ne servent à rien. On peut faire plus simple pour éviter de rajouter plein de boutons.
En PJ un ex où il suffit de cliquer sur une cellule pour faire apparaitre l'image.
J'ai opté pour une colonne D donnant le N° de l'image, plus simple peut être que de renommer chaque image.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1:D100")) Is Nothing Then  ' Si clic dans colonne A:D
        Nom = "Groupe " & Cells(Target.Row, "D")                ' On extrait le N) de l'image
        L = Target.Row                                          ' On calcule le N° de ligne cliquée
        For Each I In Worksheets(1).Shapes                      ' On efface tous les shapes
            I.Delete
        Next
        If Cells(L, "D") = "" Then Exit Sub                     ' Si pas de N° image on sort
        Sheets("Data Photos").Shapes(Nom).Copy                  ' On copie l'image
        Sheets("Liste").Range("F" & L).Select                   ' On va en F, ligne cliquée
        ActiveSheet.Paste                                       ' on colle l'image
    End If
Fin:
End Sub
 

Pièces jointes

Bonsoir Famu,
Un essai en PJ.
Jamais vu ça auparavant. C'est comme si une liste déroulante était considérée comme un shape.
Pour résoudre le problème, je ne supprime le shape que si il est dans la partie droite de l'écran.
Bizarre.
 

Pièces jointes

- 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

Réponses
0
Affichages
699
Réponses
2
Affichages
978
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…