Insertion automatique d'images sous excel

Résolu
luseve -  
 jujulaglu33 -
bonjour a tous

Sous excel 2003, je cherche à inserer des photos dans des cellules de la maniere suivante :

je dispose en B1, d'une adresse url du type http:/monsite.fr/maphoto.jpg
je souhaiterai de maniere automatique que la photo s'affiche en A1

et ainsi de suite, d'autres liens en B2,B3, .... Bn , automatiquement s'affichent en A2,A3, ... An

comment faire ? une macro ? j'y connais pas grand chose, si quelqu'un pourrait m'aiguiller ...
Configuration: Windows Vista
Internet Explorer 7.0

42 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Le problème consiste à afficher automatiquement des images à partir d’URLs listées dans B1, B2, … pour les faire apparaître en A1, A2, … sous Excel 2003.
La solution propose une macro qui lit les liens sélectionnés et insère l’image correspondante, avec trois options d’emplacement (à gauche, sur la même colonne ou à droite) et une hauteur personnalisable.
L’usage est: sélectionner la plage de liens, lancer la macro (AffImage2), répondre aux boîtes de dialogue pour le positionnement et la hauteur, puis l’image est insérée et dimensionnée; une version améliorée gère aussi un chemin par défaut en cas d’erreur.
Des précautions pratiques incluent la suppression des images existantes pour éviter l’accumulation et le fait que certaines références peuvent déclencher des messages d’erreur si l’image n’est pas accessible.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. luseve
     
    Bonjour,
    il faut tout de meme indiquer à Excel ou se trouvent vos images ! c'est pour cela que vous devez creer une colonne avec vos liens
    vers ces photos (quelles soient sur votre disque dur ou sur internet (peut importe la colonne que vous choississez, pensez à modifier l'offset en fonction de la colonne choisie)
    en colonne A mettez vos Titre , en B vos liens, en C les photos s'affichent (pensez à masquer le colonne B, afin de ne pas visualiser la colonne b)
    17
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Re,

    Bon, j'ai refait un peu la macro.
    Maintenant sélectionner les cellules où sont les liens pointant sur une image.
    En répondant à la 1ère boite de dialogue par 'oui', 'non' ou 'annuler' l'image s'affichera dans la colonne à gauche, ou dans celle du lien ou dans celle de droite (en fait bouton de gauche affiche à gauche etc).
    Puis la 2nde boite de dialogue permet de choisir la hauteur des ligne (donc des image). La hauteur par défaut (75) peut être changé en début de code en changeant la valeur de la constante hDefaut.

    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
        Dim msg As String, r As Long, h As Long
        Dim c As Range
        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
            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 proportion
                    .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


    eric
    14
    1. Kirilov Messages postés 108 Statut Membre 1
       
      Bonjour,

      Pour mon boulot je souhaite utiliser votre petit programme... Mais je n'y arrive pas ! Pour une raison que je n'arrive pas à résoudre, une fois lancé le programme affiche une seule et même image. Si vous pouvez m'expliquer...

      Merci beaucoup

      Kirilov
      0
      1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > Kirilov Messages postés 108 Statut Membre
         
        Bonjour,

        Tu n'as peut -être pas eu le courage de lire tout le fil pour savoir le principe...
        Tes liens vers des images sont dans une colonne, il faut sélectionner toutes ces cellules avant de lancer la macro. Là tu choisis si tu les veux à gauche, sur, ou à droite de ces cellules.
        Il faut savoir que sur excel 2007 un bug fait que ça ne fonctionne que pour des images sur le disque dur (et pas pour une image sur http://....)
        Et je te conseille de prendre la dernière version au post 41 vers la fin de cette discussion
        Si tu penses tout faire correctement précise les conditions
        eric
        0
      2. Kirilov Messages postés 108 Statut Membre 1 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        J'ai repris le modèle du post 41 et modifié mes liens : j'utilisais la fonction "concaténer" qui posait apparemment problème. Désormais, ça marche. Merci de votre réponse.
        Une autre question : est-il possible d'afficher les images non pas comme des objets mais "dans" la cellule de destination. Et, si oui, on pourrait alors imaginer que cette vignette soit elle-même un lien vers une version agrandie de l'image.

        Cordialement,

        Kirilov
        0
    2. Via Gum
       
      Salut!!!

      La formule fonctione super, mais!!!!

      Dans mon cas je souhaite seulement jouer la largeur de l'image et non avec la hauteur.

      Le seul hic c'est que je vois pas trop quel élément je dois modifier!!!

      Un petit coupe de main serai le bien venu

      Merci
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Le remercié te remercie :-)
    eric
    1
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    J'ai ajouté une gestion d'erreur rudimentaire pour éviter la majorité des blocages, avec la possibilité d'afficher une image par défaut si la constante imgDefaut est renseignée.
    Sinon le chamin des images peut être le résultat d'une fontion.
    Par exemple tes liens en colonne A, en B tu saisis :
    =SI(DROITE(A1,4)<>".jpg",A1&".jpg",A1)
    pour rétablir le .jpg de fin

    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 proportion
                    .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

    eric
    1
    1. cesam.m Messages postés 20 Statut Membre
       
      Bonjour,

      J'ai récupéré un Code sur internet mais j'ai également le problème de message d'erreur quand la photo n'existe pas.
      Peux tu me modifier ma macro pour quel passe à la ligne suivante.

      merci d'avance pour ton aide

      CESAM.m

      Sub machin()
      Dim sh As Shape

      For Each sh In Worksheets("Photos ").Shapes
      If sh.Type = msoPicture Then sh.Delete
      Next
      Application.Goto Reference:="Select1.Photo"
      For Each c In Selection
      fich = c.Offset(0, 2).Value
      ligne = c.Row
      ActiveSheet.Pictures.Insert(fich).Select 'Select1.Photo
      With Selection.ShapeRange
      .LockAspectRatio = msoTrue 'conserver les proportion
      .Height = 60 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
      .Left = 40 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
      .Top = c.Top + 1 'et positionner verticalement
      End With
      Next c
      End Sub
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      En supposant que l'erreur soit bien là où je pense comme tu préfères qu'on devine :
      Sub machin()
          Dim sh As Shape
      
          For Each sh In Worksheets("Photos ").Shapes
              If sh.Type = msoPicture Then sh.Delete
          Next
          Application.Goto Reference:="Select1.Photo"
          For Each c In Selection
              fich = c.Offset(0, 2).Value
              ligne = c.Row
              On Error GoTo suite
              ActiveSheet.Pictures.Insert(fich).Select    'Select1.Photo
              With Selection.ShapeRange
                  .LockAspectRatio = msoTrue    'conserver les proportion
                  .Height = 60    'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
                  .Left = 40    'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
                  .Top = c.Top + 1    'et positionner verticalement
              End With
      suite:
              On Error GoTo 0
          Next c
      End Sub

      eric
      0
    3. cesam.m Messages postés 20 Statut Membre
       
      Bonjour ERIC,

      merci pour ton travail,

      mais cela ne fonctionne toujours pas.

      Il arrive que certaines références ne correspondent à aucunes de mes photos.
      Dans ce cas il y a un message d'erreur "erreur d'exécution 1004 impossible de lire la propriété insert de la classe Pictures"

      Quand la référence correspond à une photo c'est OK mais sinon Il y a ce message d'erreur.

      Est il possible d'éviter ce message d'erreur de mettre à la place de la photo un Blanc et de passer à la ligne suivante?

      Encore merci pour tes talents.

      Cesam.m
      0
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      dépose un fichier exemple simplifié sur cijoint.fr et colle ici le lien fourni.
      Et précise ta version excel, il y a des bug sur 2010 inexistants sur 2003
      eric
      0
    5. cesam.m Messages postés 20 Statut Membre
       
      Voici le lien:

      http://www.cijoint.fr/cjlink.php?file=cj201110/cij3oH6hyH.xls

      Version : excel 2000

      Cesam.m
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. luseve Messages postés 3 Statut Membre
     
    Bonjour, je pense que c'est possible avec notamment la fonction activeSheet.Pictures.Insert (chemin du fichier)
    ce que je n'arrive pas a faire : c'est indiqué dans chemin du fichier, que le chemin est indiqué dans la cellule B1.

    autre probleme quand on insere plusieus activesheet.pictures.insert, les images se superposent sur une meme cellule.

    Je rapelle le but de la maneouvre : B1 donne le lien url d une image, en A1 s'affiche l image. et ainsi de suite.

    J'ai cherche sur pas mal de forums, mais personne ne semble savoir repondre. Je vais encore chercher ...

    Merci à popie1976 pour ses encouragements ....
    -1
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Definis déjà une même hauteur pour toutes les lignes ( ici 75)
    en B3 le chemin du fichier "C:\Documents and Settings\All Users\Documents\Mes images\Échantillons d'images\Collines.jpg"
    (je n'ai pas testé avec un URL)

    Sub test()
    fich = [B3].Value 'recup nom fichier
    ligne = [B3].Row 'en quelle ligne ?
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    ligne = 3
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With
    End Sub

    si les hauteurs de ligne et largeur de colonne ne sont pas fixes tu peux recuperer leur valeurs pour calculer .top et .left mais c'est plus lourd à gérer

    J'espère t'avoir guidé là il fallait
    eric
    0
    1. popeye
       
      Salut je me heurte au meme problème!!!

      Tu proposes de taper des lignes de code mais je ne sais pas ou pourrais-tu me dire s'il te plait?

      Un grand merci d'avance
      0
  8. luseve
     
    Merci eriiic, je progresse ... cela correspond a ce que je veux faire, mais peut on automatiser tout ca ?

    voila ce que j'ai ecrit pour voir s'afficher le resultat de 3 liens : (ci dessous) - on peut certainement eviter de devoir copier coller et manuellement de modifier le champs [B2] ... [B3] .... est ce possible de realiser une boucle ? n liens correspond à n affichages

    au fait, cela marche avec une url !!! grand merci !!!

    Sub test()
    fich = [B1].Value 'recup nom fichier
    ligne = [B1].Row 'en quelle ligne ?
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    ligne = 1
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With

    fich = [B2].Value 'recup nom fichier
    ligne = [B2].Row 'en quelle ligne ?
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    ligne = 2
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With

    fich = [B3].Value 'recup nom fichier
    ligne = [B3].Row 'en quelle ligne ?
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    ligne = 3
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With

    End Sub
    0
    1. ESCOUGER Messages postés 31 Statut Membre
       
      Bonjour,
      J'ai un problème similaire sauf que l'image (ou la forme) à recopier dans la cellule active est celle à partir de laquelle est déclenchée la macro.
      Comment paramétrer "ActiveSheet.Pictures.Insert.....' afin d'assigner l'image ou la forme sur laquelle je clique pour qu'elle se copie dans la cellule active?
      0
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Ah ben oui, c'était juste en exemple pour montrer comment placer une image où on veut mais il ne faut pas le copier 823 fois.
    (d'ailleurs je viens de voir que ' ligne = 1' est superflu car ensuite j'avais ajouté la récupération du numéro de ligne à partir des references d'une cellule avec 'ligne = [B1].Row ')

    tu pourrais faire qcq chose comme ça :

    sub machin()
    for each c in selection
    fich = c.offset(0,1).value
    ligne = c.row
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With
    next c
    end sub

    pour l'utiliser tu selectionnes en colonne A toutes les cellules où tu veux mettre l'image dont l'adresse est en colonne B puis tu appelles la macro.
    Bon, pas sûr que tout marche car là je ne peux tester
    eric
    -1
  10. luseve
     
    Merci beaucoup !!!
    cela fonctionne à merveilles ...

    je n'ose pas poussez le bouchon ... mais n'y a t il pas un moyen d'ajuster au mieux les cellules. car au bout d'une 15aine de photos, bien qu'elles soit proporionnées, il y a un decalage du certainement à des approximations ...

    en tout cas Eriiic , chapeau bas ... merci encore ...
    0
    1. popeye
       
      salut luceve franchement tu as exactement le même problème que moi sauf que je suis une merde en info, je sais même pas ou taper le programme que l'on t'as conseiller!!!!

      S'il te plait pourrait tu m'en dir une peu plus voir me transmettre ton fichier ou un truc comme ca pour que je me débrouille par analogie




      salut!!!!!!
      0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour luseve,

    peux-tu m'expliquer ce que tu appelles ajuster et comment est ce décalage...
    je viens de tester et je n'ai pas ce décalage, sans doute parce que j'utilise tjs la même et encore je ne me l'explique pas
    si tu pouvais mettre ton fichier ici via www.cijoint.com ça serait mieux
    eric

    PS: si tu le désires on peut aussi les centrer horizontalement et regler automatiquement la largeur de la colonne A en fonction de la plus grande ou d'autres trucs si tu as des idées.
    eric
    0
  12. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    une amélioration qui résoudra sans doute ton pb:
    remplace .Top = 75 * (ligne - 1) par c.top

    si c'est ok tes lignes pourront avoir n'importe quelle hauteur mais il faudra quand même que leur hauteur ne change plus après ajout de photos. Il faudrait une autre petite macro pour adapter leur position sur cet evenement
    eric
    -1
  13. siwomyel Messages postés 2 Statut Membre
     
    bonjour!

    je souhaiterais inserer des images dans une colonne (par exple une image en C1,une autre en C2, ..., une autre en Cn)
    puis-utiliser la formule preconisee, si oui ou et comment l'inserer?

    Merci davance

    SiwomYel
    -1
  14. luseve
     
    Bonjour,
    il faut creer une macro
    et taper ceci :

    sub machin()
    for each c in selection
    fich = c.offset(0,1).value
    ligne = c.row
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 72 'hauteur de l'image - un tit qcq chose pour qu'elle soient séparée
    .Left = 0 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = 75 * (ligne - 1) 'et positionner verticalement
    End With
    next c
    end sub
    merci à eriic, chez moi cela fonctionne !

    donner en B1 le chemin ou se trouve la photo , ainsi de suite (...) Bn, puis selectionner B1 à Bn, lancer la macro, les photos s'affichent en A1 (...) An, pour afficher le resultat en C1 (...) Cn il faut modifier .left= la valeur souhaitée correspondant à la position du debut de la colonne C.

    C'est tout !
    0
  15. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour tout le monde,

    Faites quand même la modif que j'avais préconisé en 8
    cad. remplacer .Top = 75 * (ligne - 1) par c.top
    (juste avant le end with)

    Comme ça on se cale vraiment sur la cellule même si la hauteur des lignes précédente a été modifiée.

    eric
    -1
  16. siwomyel Messages postés 2 Statut Membre
     
    merci beaucoup, mais je n'ai jamais creer de macros avant, dc comment ca marche.

    concretement, dans le menu Macros, j'ai ouvert Visual basic editor (par hasard) ensuite j'ai creerun nouveau fichier, mais je pense qu'il y a des phrases a changer ou a supprimer car je n'y arrive tjrs pas en recopiant simplement la reponse ke tu m'a donnee.

    Donc comment on fait concretement, que dois je ouvrir, recopier supprimer changer...

    Desolee pr toutes ces questions mais quand on debute c pas evident!

    Encore merci pr vos reponses!
    -1
  17. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Tu fais un clic-droit sur le nom de l'onglet de ta feuille et tu choisis 'Visualiser le code'
    Tu colles:

    Sub AffImage()
    For Each c In Selection
    Dim c As Range
    fich = c.Offset(0, 1).Value
    ligne = c.Row
    ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
    With Selection.ShapeRange
    .LockAspectRatio = msoTrue 'conserver les proportion
    .Height = 73 'hauteur de l'image = hauteur des lignes - 2
    .Left = 1 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
    .Top = c.Top + 1 'et positionner verticalement
    End With
    Next c
    End Sub

    dans la fenetre de droite.
    Tu retournes sur ta feuille, tu saisis le lien d'une image en B1 et tu mets la hauteur de ligne à 75.
    Tu sélectionne A1 (destination de l'image), ensuite Alt+F8, tu sélectionnes Feuil1.AffImage et executer.
    Ca devrait s'afficher.
    Quand j'aurai un peu de temps je reprendrai la macro pour la rendre parametrable plus facilement dans le choix des colonnes.
    Actuellement il faut jouer sur le 1 de fich = c.Offset(0, 1).Value

    Bon courage
    eric
    -1
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Si le lien est en colonne A, pour avoir les images en colonne B remplacer fich = c.Offset(0, 1).Value par
      fich = c.Offset(0, -1).Value
      Sélectionner toutes les cellules devant recevoir une image en colonne B et lancer la macro
      pas testé, me dire si pb
      eric
      -1
      1. siwomyel > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        Eric G essayer en vain je n'y arrive pas
        je bloque quand il faut ajouter le lien de l'image en A1. Pourquoi ajouter un lien d'image ici alors que je veux voir apparettre le nom de mon produit en A1 avec sa foto en B1. pour cette partie je fais clic droit ajouter un hyperlien est ce que c bien comme ca qu'il faut faire?
        ensuite quand je sélectionne A1 (destination de l'image), ensuite Alt+F8, puis sélection Feuil1.AffImage et executer.
        Ca ne s'afficher pas.

        px tu s'il te plait me reeexpliquer desolee si je te derange.

        SiWoMyel
        0
  18. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Je pense que luseve t'a répondu.
    Je vais modifier un peu la macro pour lui donner un peu de souplesse mais ça sera un peu plus tard.
    Sinon dans le code précédent je viens de voir qu'il faut inverser ces 2 lignes:
    For Each c In Selection
    Dim c As Range

    donc mettre
    Dim c As Range
    For Each c In Selection

    C'est peut-être ça qui te genait
    eric
    0
    1. Divu
       
      Bonjour

      J ai vu ton code que j'utilise pour visualiser des images mais je rencontre un porbleme lorsque la cellule est vide
      Comment lui indiquer de ne pas tenir compte des cellules vides ou de passer a la ligne suivante

      merci de ton aide
      0
      1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > Divu
         
        Bonsoir,

        normalement la macro en tient compte avec
         If fich <> "" Then

        Il faudrait que tu sois plus précis, et éventuellement déposer ton fichier sur cijoint.fr et coller le lien ici
        eric
        0
      2. Divu > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour

        Voila le lien http://www.cijoint.fr/cjlink.php?file=cj200804/cije8DiQBd.xls.

        Comme tu peux le constater certaines lignes sont vides ( pas de photos pas de lchemin) et je pense que c est a ce niveau que ca bloque

        merci de ton aide
        0
  19. siwomyel
     
    Bonjour,

    hO!!!!!!!!!

    MERCI BCP!!!!!!!!!!!!!! CA marche!!!!!!!!!!!!!!!!!!!!!

    Cependant j'aurai une derniere petite requete. j'ai 900 image a ajouter, y a t-il une formule ou une technique pour ajouter mes liens automatiquement? c'est a dire sans avoir a cliquer droit, ajouter un hyperlink a chaque fois s'il te plait?

    Merci d'avance!

    SiWomYel
    0
  20. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Content que tu aies pu mieux le tester.
    Pour ta dernière demande, si ce sont des fichiers sur disque dur tu peux, dans une fenetre DOS, rediriger un DIR dans un fichier texte pour avoir les noms de fichiers (dans le répertoire concerné tu saisis DIR /D >> liste.txt), ou bien il doit y avoir des logiciel sous windows qui te le font.
    Tu récupères cette liste dans excel, tu la remets un peu en forme pour avoir tes noms en colonne B par exemple. Tu saisis le chemin en A1 C:\tmp\ par exemple , et tu refabriques tout tes liens avec en C1: =$A$1 & B1 que tu étends vers le bas.
    Même si ce ne sont pas des liens hypertextes ce n'est pas un problème, le tout est que l'adresse soit complète pour que ça fonctionne.
    Pour des fichiers sur le net il y a peu de chance que tu puisses acceder au répertoire pour pouvoir extraire tous les noms de fichiers sinon le principe serait le même...

    Bon courage
    eric
    0
  21. Connyc
     
    Petite question:

    Je n'y connais pas grand chose en excel et j'apprend petit a petit en ce moment.

    La question est la suivante:

    Si je crée un colonne avec toutes les liens vers les photos et que je fais apparaître ces photos dans une celle spécifique de excel (exemple:
    Lien en B1 et photo apparaît en A1) comme mentionné dans l'exemple de la macro.

    Si par la suite dans mon fichier excelle je prend la cellule D1 et que j'y entre =B1

    La photo ce répliquera-t-elle alors dans la cellule D1 ?

    Je vais essayer de le faire mais si quelqu'un sait que de cette facon sa ne marchera pas mais qu'il y a une autre facon de le faire laisser le moi savoir !
    0
  • 1
  • 2
  • 3