Impossible de lire la propriété Insert de la classe Pictures

Bonjour à tous,

Je vous sollicite car j'ai un problème. lors de l'insertion de l'image j'ai une erreur 1004: "Impossible de lire la propriété Insert de la classe Pictures" qui apparaît. Je n'arrive pas à trouver de solution.. Comment gérer ce problème ? Je vous ai mis mon code juste en dessous

Dim ficimg As String, Ad As String
        Sheets("Fiche REX").Range("A44:I58").Select
        Ad = Selection.Address
        ficimg = Application.GetOpenFileName(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez l'image") ' choix nom du fichier
      If ficimg = "Faux" Then Exit Sub
        Sheets("Fiche REX").Pictures.Insert(ficimg).Select

merci,

bonne journée à vous,

Bonjour tvbfl.

Sans vouloir dire de bêtises, il me semple que Application.GetOpenFileName renvoie un Variant.

Essaye de déclarer ficimg en Variant.

Bonjour Benoit,

tout d'abord merci de ta réponse,

Je viens d'essayer en déclarant ficimg en Variant mais ça ne marche toujours pas...

Est ce qu'il faudrait que j'ajoute le chemin ?

Bonjour,

Le chemin est déjà inclus... De même, la variable en String n'empêche pas de fonctionner (VBA fait la conversion apparemment).

Et ton code fonctionne, (je n'y apprécie pas les Select, comme toujours inutiles, mais il fonctionne). Donc l'erreur 1004 a des causes propres à la configuration de ton fichier.

Cordialement.

Re,

Effectivement en cherchant, j'ai trouvé que c'était la prtoection de la feuille qui m'empêchait l'insertion:

Est-il possible d'écrire d'adapter mon code cela pour garder la protection ?

Private Sub
Sheets("Fiche REX").Unprotect

Dim ficimg As String, Ad As String
        Sheets("Fiche REX").Range("A44:I58").Select
        Ad = Selection.Address
        ficimg = Application.GetOpenFileName(".jpg,*.jpg,.gif,*.gif,.jpeg,*.jpeg", , "Choisissez l'image") ' choix nom du fichier
     If ficimg = "Faux" Then Exit Sub
        Sheets("Fiche REX").Pictures.Insert(ficimg).Select

Sheets("Fiche REX").Protect
End Sub

C'est ce que tu fais en déprotégeant avant et reprotégeant après.

Le problème c'est que l'utilisateur ne connaitra pas le mdp de protection de la feuille...

C'est au code de le connaître, puisque c'est lui qui agit. Pas l'utilisateur.

Et comment faire ça ?

Le mot de passe (donnée String) est à placer en argument à la suite de Protect et de Unprotect.

J'ai trouvé

.Unprotect("mdp")

.protect("mdp")

MERCI Mferrand pour tes réponses,

bonne journée

Espace entre Protect ou Unprotect et le mot de passe.

Et supprime les parenthèses.

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