Aide pour excel

Résolu
Bonjour,

Voila j'ai un tableau sous excel qui décrit une liste de produit avec les colonne codes,
désignation, stock ...
Je voudrais pouvoir rajouter une colonne qui contiendrait des photos de ces articles, photos que
je stock dans un autre dossier et qui ont le même nom que le code des articles.

J'aimerais savoir si c'est fesable

MErci !!
Configuration: Windows Vista
Firefox 2.0.0.15

10 réponses

  1. Bonjour

    Au plus simple tu te positionne dans une cellule, et tu fais insertion image que tu dois redimentionner
    0
    1. Ca ne serait pas vraimen simple car c'est une liste d'environ 2500 articles lol

      Je voudrais une fonction ou un programme pour automatiser cette action!!

      Merci quand meme pour ton aide !!
      0
    2. @Mehdi_bEh une macro ne résoudrait pas ton problème
      0
  2. Tu veux vraiement les voir tes photo ou tu veux un lien ? Utilise la fonction hypertexte si tes photos sont accessibles facilement. et si le nom des photo est sequentiel tu peux commencer par faire une focntion de concaténation de texte et ensuite tu tansforme cela en formule. PAs facile à expliquer, et il faudrait tester, mais la base de la solution serait là je pense
    0
    1. Oui si possible j'aimerais les voir mais comprenez que je suis novice en Excel, je ne sais pas vraiment en quoi consiste la solution que tu me propose voila dans le lien suivant un exemple avec des photos pour que tu vois ce qu'il en ai

      Merci bcp !!

      https://authentification.site/510611320.html
      0
  3. Contributeur
    Bonsoir,

    Supposons tes codes en colonne A, tes images (.jpg) dans le répertoire C:\images\

    En colonne B tu peux te fabriquer un lien vers les images avec en B2 par exemple :
    B2: ="c:\images\" & A1 & ".jpg"
    que tu recopies vers le bas...

    Ensuite tu colles dans un module le code suivant :
    Sub AffImage2()
        ' Sélectionner les cellules contenant un lien vers une image
        ' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
        Const hDefaut = 75
        Const imgDefaut = "" ' saisir chemin complet et nom image par défaut à afficher si erreur
        Dim msg As String, r As Long, h As Long
        Dim c As Range, numfich As Integer
        msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf
        msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf
        msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés"
        r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images")
        If r = vbYes Then
            r = -1
        ElseIf r = vbNo Then
            r = 0
        Else
            r = 1
        End If
        h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut)
        For Each c In Selection
            'c.ColumnWidth = 20
            fich = c.Value
            ' test fichier
            If fich <> "" Then
                numfich = FreeFile()
                On Error GoTo errfich
                Open fich For Input As #numfich
                Close #numfich
                GoTo suite1
    errfich:
                fich = imgDefaut
    suite1:
            End If
                '
            If fich <> "" Then
                c.RowHeight = h 'fixer la hauteur de ligne
                ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
                With Selection.ShapeRange
                    .LockAspectRatio = msoTrue 'conserver les proportions
                    .Height = h - 4 'hauteur de l'image = hauteur des lignes - 4
                    .Left = c.Offset(0, r).Left + 2 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
                    .Top = c.Top + 2 'et positionner verticalement
                End With
            End If
        Next c
    End Sub


    C'est un petit programme sans prétention que j'avais fait pour qcq'un ici.
    Mais il fait ce pour quoi il est prévu : afficher des images sur une feuille excel.

    - Sélectionner la plage où sont les liens vers les images (colonne B pour toi dans cet exemple)
    - lancer la macro
    - AffImage2 affichera les images sur le lien, ou dans la colonne de gauche ou de droite.
    - la hauteur par défaut est modifiable dans Const hDefaut
    - on peut afficher une image par défaut si le lien est erroné en modifiant Const imgDefaut

    Si tu as des difficultés demande...
    eric
    0
    1. Deja merci bcp pour ton aide, je sens que j'y suis presque vu que ton programme a l'air de marcher ...

      le seul hic c ce que je dois mettre dans la colonne B (les liens vers les images) tu m'a donné comme exemple:

      B2: ="c:\tmp\" & A1 & ".jpg"

      je suppose donc que je remplace c:\tmp\ par le chemin du dossier contenant les images..

      et j copi cette ligne sur tte les autres mais ca ne marche pas vu que j'ai mis pr tester une image par defaut et c elle ki sort

      comme je te lé di je sui vraimen novice lol.

      MErci bcp
      0
  4. Contributeur
    Tu n'es pas 'obligé' de mettre les liens dans la colonne B, tout comme tes codes ne sont pas forcément en colonne A, c'est un exemple...

    Je corrige un peu la formule,
    en ligne 2, colonne que tu veux : ="c:\images\" & A2 & ".jpg" :
    - remplace ="c:\images\" par ton répertoire oui
    - remplace A2 par la cellule où est ton code article
    - ajoute & ".jpg" si tes images se terminent .jpg . Si elle seterminent par .bmp ajoute & ".bmp" etc. Ca dépend de tes images.

    Si tu as du mal dépose un fichier exemple sur www.cijoint.com et colle ici le lien fourni.

    eric
    0
    1. J'ai vraiment du mal a deposer le fichier

      Voila un lien ou il y a un exemple comme tu m'a demander

      http://www.cijoint.fr/cjlink.php?file=cj200807/cijN2XCKPr.zip

      Merci bcp eric !!
      0
      1. Contributeur
        Tes photos ne portent pas le même nom que les codes.
        J'ai modifié les codes en remplaçant le 1er 0 par un 1, et j'ai mis les photos dans le répertoire "c:\photos".
        Si c'est toujours comme ça on peut modifier la formule pour en tenir compte...
        Voilà le résultat : http://www.cijoint.fr/cjlink.php?file=cj200807/cijib8QZ9y.xls

        eric
        0
        1. re bonjour !!

          Voila toute tes indications marche parfaitement eric, merci bcp
          il me reste k'un seul petit truc c l'utilisation de l'image par defaut en effet g pa mal de codes sans photos et quand j'execute la macro ca s'arrete des qu'il trouve + d'un lien mort ce qui fai qu'il n'affiche l'image par defaut que la 1ere fois et non pa a chaque foi k'il ne trouve pa l'image

          MErcii
          0
          1. Contributeur
            Bonjour,

            Effectivement j'avais ajouté ça rapidement sans trop avoir le temps de finaliser.
            Voici donc avec une gestion des erreurs correcte (en tout cas meilleure ;-) ) :
            Sub AffImage()
                ' Sélectionner les cellules contenant un lien vers une image et appeler la macro
                ' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
                Const hDefaut = 75 ' hauteur des images
                Const imgDefaut = "" ' saisir chemin complet et le nom de l'image par défaut à afficher si erreur
                Dim msg As String, r As Long, h As Long
                Dim c As Range, numfich As Integer
                Dim fich
                msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf
                msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf
                msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés"
                r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images")
                If r = vbYes Then
                    r = -1
                ElseIf r = vbNo Then
                    r = 0
                Else
                    r = 1
                End If
                h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut)
                For Each c In Selection
                    'c.ColumnWidth = 20
                    fich = c.Value
                    ' test fichier
                    If fich <> "" Then
                        numfich = FreeFile()
                        On Error GoTo errfich
                        Open fich For Input As #numfich
                        Close #numfich
                    End If
                        '
                    If fich <> "" Then
                        c.RowHeight = h 'fixer la hauteur de ligne
                        ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
                        With Selection.ShapeRange
                            .LockAspectRatio = msoTrue 'conserver les proportions
                            .Height = h - 4 'hauteur de l'image = hauteur des lignes - 4
                            .Left = c.Offset(0, r).Left + 2 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
                            .Top = c.Top + 2 'et positionner verticalement
                        End With
                    End If
                Next c
                Exit Sub
            errfich:
                fich = imgDefaut
                Resume Next
            End Sub


            eric
            0
            1. Merci tt l monde probleme résolu
              merci spécial à éric !!
              0
              1. Contributeur
                Merci pour le retour,
                Bonne journée
                eric
                0