Relier une base de donné aux photos (aded pictures to data base)

Salut tout le monde

j'ai une base de donné plus de 1000 articles.

s'il serait possible de créer un macro qui me permet de relier ma base de donné aux photos autrement dit lorsque je tape une référence dans la cellule F8 qui existe dans la base de donné (colonne B) il va m'affiche la photo de l'article dans la zone VOIR FICHIER CI-JOINT.

Cordialement

bye

25docum.xlsx (36.72 Ko)

Bonjour,

Un essai ambitieux :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Dlig As Integer
    Dim Img As String
    Dim path As String
    Dim defaultImg As String

    If Target.Count > 1 Then Exit Sub

    Dlig = Cells(Rows.Count, "a").End(xlUp).Row

    If Not Intersect(Target, Range("B3:B" & Dlig)) Is Nothing Then
        path = "C:\Temp\Ambitieux\Photos\"
        defaultImg = "PasImage"  ' Nom de l'image par défaut
        Img = ActiveCell.Value

        ' Vérifier si la cellule est vide ou si l'image n'existe pas
        If Img = "" Or Dir(path & Img & ".jpg") = "" Then
            Img = defaultImg
        End If

        ' Sélectionner et appliquer l'image
        ActiveSheet.Shapes.Range(Array("ImgRef")).Select
        With Selection
            .ShapeRange.Fill.UserPicture path & Img & ".jpg"
        End With

        Target.Select
    End If
End Sub

Bizz

Bonjour,

Adapter le chemin des photos.

Les photos devront porter le même le nom que les "Référence".

L'image par défaut "PasImage.jpg" si l'image n'est pas trouvée.

pasimage
24docum.xlsm (50.80 Ko)

Bizz

Salut

si c'est possible d'ajouter une astuce que j'ai vraiment besoin.

lorsque je tape la référence dans la cellule G9 l'image s'affiche ,sans aller à la colonne B pour chercher la référence !

Merci beaucoup

Bonsoir à tous,

Une proposition.

Cordialement

salut Zebulon2

je pense que ça marche que avec les petite base de donné.

ma base de donné est vaste ça va pas m'arranger.

Merci beaucoup

re,

C'est à dire, vaste ?

ma base de données est plus de 1000 articles vous voyez!!.ça va pas marcher.

il faut un chemin et mettre tout les photos dans un dossier ça sera mieux.

bye

Bonjour à tous,

Une version où la saisie en G9 affichera l'image ou l'image par défaut (default.jpg) s'il n'y a pas de correspondance.

Le focus reste sur G9 pour saisir un autre code.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Img As String
    Dim path As String
    Dim defaultImg As String
    Dim imgShape As Shape

    ' Exit if multiple cells are selected
    If Target.Cells.CountLarge > 1 Then Exit Sub

    If Not Intersect(Target, Range("G9")) Is Nothing Then

        ' Proceed only if the selection is within the specified range
        If Not Intersect(Target, Me.Range("G9")) Is Nothing Then
            path = "C:\Temp\Ambitieux\Photos\"
            defaultImg = "default.jpg"      ' Default image name
            Img = Target.Value & ".jpg"     ' Use the value in the selected cell

            ' Use default image if the cell is empty or the image file does not exist
            If Img = "" Or Dir(path & Img) = "" Then
                Img = defaultImg
            End If

            ' Reference the image placeholder shape by its name directly
            On Error Resume Next ' In case the shape doesn't exist
            Set imgShape = ActiveSheet.Shapes("ImgRef")
            On Error GoTo 0 ' Turn off error ignoring

            If Not imgShape Is Nothing Then
                ' Update the picture without selecting the shape
                imgShape.Fill.UserPicture path & Img
            End If
        End If
    End If
    Target.Activate
End Sub
27docum.xlsm (49.19 Ko)

Biz

Salut Bizarre

il marche bien .merci

s'il serait possible d'ajouter une option quand il s'agit d'une référence qui contient 2 ou 3 photos il va m'afficher les 2 ou 3 photos dans la zone d'affichage.

mes sincères salutations

Bonjour,

Le nom d'une référence = nom d'une image.

Oui, cela est possible ainsi :

La référence SB254K = SB254K-1.jpg et SB254K-2.jpg , éventuellement SB254K-3.jpg

Je regarde comment modifier le code.

Bizz

Si

Salut

je vous demande de bien vouloir de modifier mon fichier avec le nouveau code.

Merci

Bonjour Ambitieux,

Oui, c'est ce que je comptais faire.

Pour l'instant, cela ne fonctionne pas, une coquille qui me pose problème.

Je reviens dès que possible.

Bizz

Bonjour Ambitieux,

Désolé pour le délai.

Avant de commencer, inscrire le chemin du dossier d'images en "H1".

Depuis la saisie en "G9", il fallait traiter :

- Nom du fichier photo est présent dans le dossier des images, l'image s'affiche, son coin supérieur gauche est positionné en "H9" .
- Nom du fichier photo est absent du dossier des images, l'image "DefaultImage.jpg" s'affiche (si elle est présente dans le dossier des images, sinon rien ne s'affichera).
- Nom du fichier photo représente 2 ou 3 images, les images s'affichent l'une en dessous de l'autre.
-- -- Exemple : stylo aurait 3 images (stylo-1.jpg, stylo-2.jpg, stylo-3.jpg), pour l'instant, c'est codé ainsi.
- Avant de placer la nouvelle image "H9", le code supprime l'ancienne.

Espérant que cela puisse convenir.

31documd.xlsm (51.84 Ko)

Bizz

Rechercher des sujets similaires à "relier base donne photos aded pictures data"