Erreur 1004 : Impossible de lire la propriété Insert de la classe Pictures

Bonjour à tous,

Voici mon problème, j'ai un macro pour transformer tous mes liens URL en image sur mon excel, le macro fonctionne très bien sur mon ordi (où j'ai la version Excel 2010) mais dès que je l'envoie à des collègues possédant la version Excel 2019, un message d'erreur s'affiche : "Erreur d'exécution '1004' : Impossible de lire la propriété Insert de la classe Pictures".

Voici le macro :

Sub LienImage()

    For Each cel In Selection
        cel.Offset(0, 1).Select
        cel.Offset(0, 1).RowHeight = 200
        cel.Offset(0, 1).ColumnWidth = 80

        If URLValid(cel.Value) = 0 Or HttpExists(cel.Value) = 0 Then
           cel.Offset(0, 1).Value = "Photo non dispo"
        Else
            Set Image = ActiveSheet.Pictures.Insert(cel.Value)
            With Image
                .ShapeRange.LockAspectRatio = msoTrue
                .Width = cel.Offset(0, 1).Width
                .Height = cel.Offset(0, 1).Height
                .Left = cel.Offset(0, 1).Left
                .Top = cel.Offset(0, 1).Top
            End With
        End If
    Next cel

End Sub

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

Function HttpExists(ByVal sURL As String) As Boolean
    Dim oXHTTP As Object
    Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
    On Error GoTo haveError
    oXHTTP.Open "HEAD", sURL, False
    oXHTTP.send
    HttpExists = IIf(oXHTTP.Status = 200, True, False)
    Exit Function
haveError:
    Debug.Print Err.Description
    HttpExists = False
End Function

Et quand je fais Débogage il m'indique que c'est cette ligne là qui pose problème :

Set Image = ActiveSheet.Pictures.Insert(cel.Value)

Merci d'avance !

Baroukar

Bonjour,

Quelles ont les valeurs de Cel ?

Cdlt.

Bonjour Jean-Eric,

Les Cel sont des liens URL.

Baroukar

Bonjour,

Sans grande conviction, en déclarant et en typant les variables.

Sinon, après la création fais un Select sur l'image !....

Cdlt.

Sub LienImage()
Dim Cell As Range, image As Picture

    For Each Cell In Selection
        Cell.Offset(0, 1).Select
        Cell.Offset(0, 1).RowHeight = 200
        Cell.Offset(0, 1).ColumnWidth = 80

        If URLValid(Cell.Value) = 0 Or HttpExists(Cell.Value) = 0 Then
           Cell.Offset(0, 1).Value = "Photo non dispo"
        Else
            Set image = ActiveSheet.Pictures.Insert(Cell.Value)
            With image
                .ShapeRange.LockAspectRatio = msoTrue
                .Width = Cell.Offset(0, 1).Width
                .Height = Cell.Offset(0, 1).Height
                .Left = Cell.Offset(0, 1).Left
                .Top = Cell.Offset(0, 1).Top
            End With
        End If
    Next Cell

End Sub

Bonjour,

Merci pour votre aide mais je viens de tester ce nouveau code et l'erreur 1004 est toujours présente...

Baroukar

Rechercher des sujets similaires à "erreur 1004 impossible lire propriete insert classe pictures"