Afficher Image à partir du chemin contenu ds une cellule TCD

Bonjour,

j'essaye de trouver un code VBA me permettant d'afficher dans un TCD les images qui se trouve sur mon HDD suivant un chemin spécifié par une cellule....

J'upload un fichier rar contenant tous les éléments.

A la base, j'ai un fichier excel "SalesPos.xlsx" dans lequel les données sont collectées et synchronisée sous Dropbox. J'ai créé un autre fichier TCD.xlsx qui va me recherche les infos désirée ds le fichier "SalesPos - Copie.xlsx" onglet "Service Log" du tableau que j'ai nommé "Tableau2". N'arrivant pas faire mon TCD à partir d'un autre fichier s'il n'est pas ouvert.... je crée une copie de mon fichier initiale qui lui pourra être ouvert AVANT que je n'ouvre mon TCD et que celui-ci soit rafraichi au démarrage. En effet mon fichier initiale étant sous Dropbox ne peut plus être updaté si celui-ci est ouvert... soit mon TCD est formaté afin qu'à chaque mise à jour, les tailles des colonnes, dispo des filtres en obliques restent tel quel...

J'aimerai que dans les colonnes(V W) où il y a un chemin qui apparaît ex:

Service Log_Images/02-17-2017Gaston Lagaffe.Photo entrée.093610.jpg

Qu'en cliquant sur un bouton, un code se lance pour rechercher l'image présente dans le répertoire adjacent. En sachant que le repertoire "Service Log_Images" se trouve ici "C:\Users\Fabrice\Dropbox\appsheet\data\GenTCD-298764"

Il faudrait faire cela pour chaque ligne de V W présente dans le TCD.

J'ai volontairement défini la largeur des colonnes Excel à 250 et Hauteur 150. Et aimerait donc que l'image s'affiche au dessus du lien et seulement pour les éléments présentdans le TCD. Quand il n'y a pas de lien, pas d'image. J'ai aussi mis une photo qui a été faite de façon vertical. Le but est que l'image prenne le maximum de la cellule où sont contenus les liens.

Le but final de tout ceci est de pouvoir exporter en PDF sur A3 par exemple afin d'illustrer le tout..

J'ai mis une photo "Résultat Désiré" expliquant plus ou moins ce que je recherche Je n'ai pas fait toutes les lignes

Je me tiens à votre disposition pour complément d'info et remercie déjà la ou les personnes qui pourront m'aider.

bien à vous

resultat desire
74gentcd-298764.rar (921.78 Ko)

Bonjour,

N'ayant pas de réponses , j'ai bien entendu continué de chercher. J'ai trouvé un bout de code (mais je sais plus où, désolé pour la source) que j'ai adapté avec un ami qui s'y connaît mieux que moi dans ce domaine.

Voici donc pour celui ou celle qui serait intéressé. Attention il reste des commentaires du code initiale qui s'appliquait sur les case A3 à A5. Ici c'est défini sur les colonnes qui ont un bout de l'url... et la recherche doit s'arrêter quand dans ma colonne B, il n'y a plus de contenu. ainsi cela évite d'appliquer le code à une colonne très longue pour rien... Il y a avait sans doute un autre moyen tel que lui dire qu'il devait faire la recherche dans le TCD qui porte le nom "...." dans toute la colonne qui contient les Url mais pas trouvé comment....

Le truc que j'ai pas compris c'est que lorsque je fais un fichier xlsm, mon TCD dans lequel je dis pourtant qu'il doit conserver la largeur des colonnes et donc ne pas modifier la mise en forme, oublie toute mise en forme sur la ligne 3 qui sont les entêtes de colonne. J'ai donc ajouter un bout de code pour qu'à chaque fois que je clique sur le bouton pour rechercher les images, il agrandisse en hauteur la ligne 3( Feuil1.Rows("3:3").RowHeight = 145)... J'ai également ajouté le fait qu'il devait effacer toute image avant de refaire une recherche des nouvelles images(ActiveSheet.Pictures.Delete).

Sub SearchImage()

    Application.ScreenUpdating = False

Dim pic As String ' File path of a picture
Dim cl As Range

ActiveSheet.Pictures.Delete

Feuil1.Rows("3:3").RowHeight = 145

Set Rng = Range("U:V") ' Defining input range

For Each cl In Rng

    If cl.Row > 3 Then

        If cl <> "" And cl <> "(vide)" Then

            pic = "C:\Users\indiquer votre  chemin ici\" & cl.Offset(0, 0) ' Location of the picture file:
                                             ' "C:\Images" folder, with particular image name
                                             ' Located in the same row, third column from A, i.e. column D

            Set myPicture = ActiveSheet.Pictures.Insert(pic) ' Inserting picture from address in D column
                                                             ' into column A
                With myPicture ' Setting picture properties
                    .ShapeRange.LockAspectRatio = msoTrue ' Keep aspect ratio
                    .Height = 100 ' Set your own size
                    .Top = Rows(cl.Row).Top
                    .Left = Columns(cl.Column).Left
                End With

        End If
        If Cells(cl.Row, "B").Value = "" Then
            Exit For
        End If
    End If

Next    ' Looping to the Nth row, defined in:
        ' " Set Rng = Range("A3:A5") "

Set myPicture = Nothing

Application.ScreenUpdating = True

End Sub

Bonjour,

j'ai un autre problème une fois que j'applique la macro. En effet, j'ai ajouté ce code

Feuil1.Rows("3:200").RowHeight = 112.5

Ceci me fixe donc toutes mes lignes à une hauteur de 112.5. Hauteur qui doit être minimum pour pouvoir insérer une photo.

cependant quand j'ai du texte TRES TRES long qui revient à la ligne dans une autre colonne, celui-ci n'est pas visible dans son entièreté vu que ma ligne est fixéeà 112.5.

Par quel ligne de code pourrais-je dire que toutes les lignes doivent être minimum de 112.5 de haut sauf pour les lignes qui nécessite d'afficher plus de contenu?

J'espère que quelqu'un pourra m'aider

Merci.

Bonjour,

et bravo à vous !

Vous venez ici avec un problème et c'est vous qui vous vous répondez pour la solution !

En plus vous faites comme beaucoup, vous revenez sur le post avec d'autre questions !!!! Un Forum à vous tout seul !

Vraiment bravo !

Je plaisante, vous me connaissez, non ?

Pour ce nouveau problème il existe "l'auto Fit" qui permet de régler la hauteur des lignes en fonction du contenu :

Rows("1:1").EntireRow.AutoFit

@ bientôt

LouReeD

Bonjour LouReed,

merci pour le retour

Par contre j'ai toujours un problème. En effet si je mets

Feuil1.Rows("3:200").EntireRow.AutoFit

Feuil1.Rows("3:200").RowHeight = 112.5

Toutes mes lignes de 3 à 200 auront la même taille de 112.5

Si je mets:

Feuil1.Rows("3:200").RowHeight = 112.5

Feuil1.Rows("3:200").EntireRow.AutoFit

Toutes mes lignes seront en autoFit MAIS si une de mes lignes n'a pas assez de contenu avec son retour à la ligne, celle-ci sera plus petite que ma taille de ligne minimum que je désire. A savoir 112.5

Comment ajouter la condition qu'après avoir fait un autofit, si la ligne est inférieur à 112.5 alors celle-ci doit s'adapter à la hauteur de 112.5. Et cela pour autant de ligne qu'il existe dans le tableau?

Merci

Rechercher des sujets similaires à "afficher image partir chemin contenu tcd"