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

Microsoft 365 Cliquer pour ouvrir des photos

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 !

Simon 1234

XLDnaute Junior
Bonjour à tous
Pour un collègue je créer un outil. On y fait la liste de machines, quand on clique sur le nom de la machine ça ouvre les photos de cette machine.
Pour une machine "toto", les photos doivent être nommées "toto1.jpg , toto2.jpg", ça me semble plus simple à retrouver.
Le fichier excel est dans un dossier "MACHINES". Les photos ont leur propre dossier "PHOTOS" dans ce même dossier "MACHINES"; donc \MACHINES\PHOTOS.

Les noms de machines sont dans la colonne A. Une macro, à l'ouverture du fichier, vérifie si des photos sont présentes et les liste, et retire ".jpg". Ainsi, avec Equiv, j'arrive à faire la correspondance entre le nom des machines et le nom des photos. La colonne B affiche une icône de lunettes si des photos sont disponibles.

Ca marche, mais bizarrement, j'ai un problème avec le compteur dans le code. Je joins le dossier parce que c'est compliqué à expliquer mais lorsqu'on clique sur des lunettes, ca ouvre les photos de la machine mais aussi celles des machines précédentes.

D'avance merci à toute personne qui m'aidera à terminer ce projet.
Bonne journée.

Le code:
 

Pièces jointes

Solution
Merci, vraiment
Une nouvelle occasion de paraître...
Bonjour Simon,
Vous avez une ré entrance dans votre macro Worksheet_SelectionChange.
Lorsque vous cliquez sur une cellule vous activez la macro. Mais comme dans la macro vous avez un "Range("B2").Select" vous relancez la macro une seconde fois.
Pour éviter ça, il faut bloquer les événements avec :
VB:
Application.EnableEvents = False  ' Stoppe les events
Application.EnableEvents = True   ' Autorise les events
 

Pièces jointes

Ah merci

Maintenant j'ai besoin de mettre ça dans une boucle pour ouvrir toutes les photos qui correspondent à un nom de machine et le tour est joué.
Encore merci, je ne trouvais pas le problème, c'est très sympa.
 
Re,
Penser à mettre le True à la fin :
VB:
Application.EnableEvents = True   ' Autorise les events
End Sub
Car sinon votre macro sera inhibée jusqu'à la fermeture du fichier.
 
Bonjour à tous
Cet exemple place l'image dans la cellule adjacente à la saisie de la colonne A a chaque fois que l'on saisie ou modifie la cellule colonne A
<a placer dans un même répertoire
 

Pièces jointes

Du coup je laisse courir le fil un peu, on sait jamais 😛
Re..
Pour faire en une fois tous ceux déjà présent
Dans un module
Code:
Sub tous()
    Dim dossier$, lig&
    dossier = ActiveWorkbook.Path & "\PHOTOS\"
    lig = Feuil1.Cells(Feuil1.Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = False
    For Each c In Feuil1.Range("a2:a" & lig)
         If Dir(dossier & c & ".jpg") <> "" Then
            With c.Offset(, 1)
                .Select
                .InsertPictureInCell (dossier & c & ".jpg")
            End With
        Else
            c.Offset(, 1) = "N/C"
        End If
    Next
End Sub
Il est évident que les photos doivent avoir comme nom celui des cellules en colonne A (toto.jpg, tata.jpg... etc...)
 
Dernière édition:
Merci, vraiment
Une nouvelle occasion de paraître intelligent 😀
 
- 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

  • Question Question
Microsoft 365 VBA insert photos
Réponses
12
Affichages
895
Réponses
4
Affichages
375
Réponses
2
Affichages
244
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…