Excel comment insérer une image depuis un lien url (macro)

Résolu
hamidmarseille -  
 hamidmarseille -
bonjour, SVP j'ai besoin d'aide

sur excel o j'affiche des photo dans des cellule qui sont stocké dans un dossier donc j'utilise le chemin pour les afficher avec cette macro suivante:
ce que je veux avoir c'est c'est d'affichier la photo si elle existe si non afficher "image non dispo"
---------------------------------------------------------------------------

Function sNomFichier(NomFichier As String) As Boolean
If InStr(NomFichier, "png") > 0 Then
sNomFichier = True
ElseIf InStr(NomFichier, "jpg") > 0 Then
sNomFichier = True
ElseIf InStr(NomFichier, "jpeg") > 0 Then
sNomFichier = True
ElseIf InStr(NomFichier, "bmp") > 0 Then
sNomFichier = True
Else
sNomFichier = False
End If
End Function

Sub image2()
For Each cel In Selection
cel.Offset(0, 2).Select
cel.Offset(0, 2).RowHeight = 100
cel.Offset(0, 2).ColumnWidth = 40
Dim sNomFichier As String
sNomFichier = "M:\CELLULE ETUDES\Temporaire\Pdv code Adh"
If ExistenceFichier(sNomFichier) Then
cel.Offset(0, 2).Value = "image non dispo"
Else
Set image = ActiveSheet.Pictures.Insert(Cells(3, 1).Value)
With image
.ShapeRange.LockAspectRatio = msoTrue
.Width = cel.Offset(0, 2).Width
.Height = cel.Offset(0, 2).Height
.Left = cel.Offset(0, 2).Left
.Top = cel.Offset(0, 2).Top
End With
End If
Next cel
End Subl
End Sub
---------------------------------------------------------------------

le problème est que si la photo existe dans le dossier le code passe directement vers la commande SET image =
si la photo existe pas le code ne vérifie pas la commande cel.offset(0, 2).value = "non disponible" donc il passe directement vers set image et il m'affiche une erreur.

alors svp aidez moi a résoudre ce blem je suis vraiment dans la merde. Merci d'avance

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    tu parles d'URL ?

    d'après ton code les photos ne sont pas sur le Web mais dans un de tes dossiers....

    dans l'attente....
    0
    1. hamidmarseille
       
      salut michel_m
      oui exactement elle sont dans un dossier partagé. donc Apple ça URL mais normalement je dosi dire chemin.
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > hamidmarseille
         
        un exemple mais sur Windows

        http://www.cjoint.com/c/FFbpdii12jt
        0
      2. hamidmarseille > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        je vien d'essayé mais il me dis comme erreur :

        propriété ou méthode non gérée par cet objet

        et l’erreur c'est au niveau du :

        Sheets(1).Cellule.Picture = LoadPicture("")
        0
      3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > hamidmarseille
         
        bonjour,
        Comme tu es sur Mac...

        ca marche sur Win
        0
      4. hamidmarseille > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        salut et désolé pour le retard. en fait je suis aussi sous windows. cette érreur que je vien de cité je l'a comprend meme pas. je suis trop nulle en vb va falloir m'aider STP.
        0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    un nouvel envoi avec "enlever les photos" et un inconnu à la fin
    http://www.cjoint.com/c/FFcjkWdlzRt

    important:
    il faut extraire le zip et non l'ouvrir
    0
    1. hamidmarseille
       
      oh super franchement je te remercie beaucoup.
      une dernière question !! le chemin ou se trouve mes photos est comme ca:
      M:\CELLULE ETUDES\Temporaire\Pdv code Adh

      et moi j'aurais dans la colone A 2 lien comme ça:

      M:\CELLULE ETUDES\Temporaire\Pdv code Adh\.007601.jpg
      M:\CELLULE ETUDES\Temporaire\Pdv code Adh\.002301.jpg

      et dans la colone C il m'affiche les photos

      alors eceque je peux remplacer ton chemin par mon chemin comme suit ?

      M:\CELLULE ETUDES\Temporaire\Pdv code Adh
      0
    2. hamidmarseille
       
      enfin ton code marche super bine laisse tombé ma première question. maintenant ce que je cherche c'est quand le photo n'existe pas dans mon dossier je veux qu'il met "photo non dispo" a la place de la photo elle même. merci beaucoup pour ton aide.
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > hamidmarseille
         
        et voila,voila....

        modif du code en gras
        Option Explicit
        '--------------------------------------
        Sub incorporer_image()
        Dim Derlig As Integer, Design As String, Cptr As Integer, Chemin As String
        Dim Fichier As String, Image As Picture, Cellule As Range, Rapport As Byte, Numero As Integer
        'initialisations
        Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
        Application.ScreenUpdating = False
        'parcours la liste

        '.... RIEN DE CHANGE


        Set Cellule = Cells(Cptr, "D")

        '.... RIEN DE CHANGE

        Name = "numphoto" & Numero
        End With
        Numero = Numero + 1
        suite: Next
        Exit Sub

        inconnu:
        Cells(Cptr, "D") = "photo non dispo"
        GoTo suite
        End Sub


        d'ailleurs, je vais garder cette option plutôt que la msgbox :o)
        0
    3. hamidmarseille
       
      Ohhhhhhh Merci Merci merci beaucoup tu ma sauvé la vie. il marche super bien. Thanks
      0