Function addpicture run-time error 1004 the specified value is out of range

Bonjour voici le code qui me fait perdre du temps depuis 3 jours...

en passant sur office 2019, j'ai dû remplacer la fonction INSERT par ADDPICTURE et depuis la fameuse run-time error 1004 apparait avec "value is out of range"... quand je lance la "watch expression" elle ne veut pas prendre la partie gras du code qui pose probleme... help !

Sub ButtonInsertPics()
On Error GoTo 0
Dim fd As FileDialog

Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Picture Files", "*.jpg;*.png"
.ButtonName = "Select the photo"
.AllowMultiSelect = False
.Title = "Choose the photo"
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
MsgBox ("Photo chosen is :" & .SelectedItems(1))
Else
Exit Sub
End If
End With
ActiveCell.Select

ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _
linktofile:=msoFalse, _
savewithdocument:=msoTrue, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height


End Sub

Bonjour,

Le code fonctionne correctement. Ci-joint, les références en cours :

capture

Bonjour,

merci pour votre réponse, ravi que le code fonctionne sur votre ordinateur... mais sur le mien voici les étapes illustrées jusqu'au problème.

image

La selection de photo se fait parfaitement. Et au moment de valider, le code bugs sur addpicture...

image

Voilà... si vous pouviez m'aiguiller sur le pourquoi... merci !

Vous n'avez pas accès au debug dans la fenêtre, votre projet doit être protégé par un mot de passe.

Pourriez-vous déprotéger votre projet ? Relancer et fournir un vidage d'écran là où se situe le bug (ligne en jaune).

Avez-vous les références (DLL) sélectionnées dans votre VBA ?

Oui j'ai bien toutes les références actives depuis le début... Voici le printscreen du debug VBA avec le watches expressions

on voit que les arguments sont bons (ils ne retournent pas d'erreur) mais que le "activesheet.shapes.addpicture" retourne "wrong number of argument or invalid property assignment" or j'ai le bon nombre d'argument d'après la library vba et j'ai bien mis la cellule "unprotected" car la feuille est protégée (fichier en livraison vers client). voilà...

image

bonjour,

il s'agit peut-être d'un problème de conversion lors du passage de paramètres lié à la version ...

essaie ceci

ActiveSheet.Shapes.AddPicture Filename:=fd.SelectedItems(1), _
linktofile:=msoFalse, _
savewithdocument:=msoTrue, _
Left:=csng(ActiveCell.Left), _
Top:=csng(ActiveCell.Top), _
Width:=csng(ActiveCell.Width), _
Height:=csng(ActiveCell.Height)

Ci-joint le fichier et la photo qui m'ont servi à répondre :

16images.zip (410.93 Ko)

Re-bonjour à vous deux,

Un grand merci car avec votre aide j'ai pu partiellement résoudre le problème (le déplacer) : vos solutions fonctionnent autant que la mienne (donc pas d'erreur de coding initial)... simplement vba ne fonctionne pas sur des feuilles protégées (même si les cellules concernées sont dévérouillées). Sur les versions EXCEL jusque 2016, ça fonctionne... à partir de la version d'après non...

La question est maintenant : comment faire fonctionner les codes sur des feuilles protégées (car les fichiers sont destinés à des clients) ?

Merci pour votre temps et votre retour

La question est maintenant : comment faire fonctionner les codes sur des feuilles protégées (car les fichiers sont destinés à des clients) ?

???

En déprotégeant le temps de l'import.

oui c'est ce que je vais finir par faire mais comme c'est un fichier excel "vba-based", quasiment en POINT EXE (je n'ai pas fait d'EXE car je ne maitrise pas assez la compilation pour envoyer un EXE chez un client... avec les pare-feux anti-installation...), je n'ai pas envie que le client aille mettre son nez partout...

Je ne peux pas vous aider plus.

Bon courage.

Pas de souci encore merci pour votre aide

Rechercher des sujets similaires à "function addpicture run time error 1004 specified value range"