Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Erreur de compilation avec la formule Dir

  • Initiateur de la discussion Initiateur de la discussion PORCHER
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PORCHER

XLDnaute Occasionnel
Bonjour à tous,
J'aurais besoin de vos lumières car je sèche !
J'ai dans cette macro une Erreur de compilation
Nombre d'arguments incorrect ou affectation de propriété incorrect avec la formule Dir
Voici la macros
VB:
Private Sub Txt_photo_equipement_AfterUpdate()
Dim Chemin, NomFichier         As String
Dim W As Single, h        As Single
On Error GoTo Erreur
   'chemin = ThisWorkbook.Path & "\Images\"
   Chemin = "C:\Users\jyves\OneDrive\Documents\Inventaires\PhotoPieces\"
   NomFichier = Txt_photo_equipement.Value

If Dir(Chemin & NomFichier & ".jpg") = "" Then
      PhotoPieces.Picture = LoadPicture(Chemin & "inexistante.jpg")
Else
   PhotoPieces.Picture = LoadPicture(Chemin & choix & ".jpg")
   PhotoPieces.PictureSizeMode = fmPictureSizeModeZoom
   PhotoPieces.Object.BorderColor = RGB(179, 209, 202) 'rouge
   PhotoPieces.Object.BackColor = RGB(179, 209, 202) 'vert
    W = PhotoPieces.Width
    h = PhotoPieces.Height
        With UF_Pièces.PhotoPieces
            .Picture = PhotoPieces
            .Width = W / h * 234
            .Left = 228 - (.Width / 2)
        End With
End If
Erreur:
End Sub
Pourriez-vous m'aider
Merci infiniment pour votre gentillesse
Cordialement
 
Bonsoir Porcher,
Sous XL2007 VBA 6.3, j'ai testé avec chemin correct ou non, nom de fichier correct ou non, et la ligne DIR passe correctement :



Ca coince sur PhotoPieces.Picture mais c'est normal c'est une fonction que je ne connais pas.

Coté référence j'ai ça :

Donc votre souci vient peut être d'autre part.
 
Dernière édition:
Bonsoir,
Peut-être que cela vient de la récupération du nom du fichier 🤔
VB:
NomFichier = Txt_photo_equipement.Value

Sinon essayez de passer par des "Debug.Print" et par une variable pour le Dir() pour voir ce que ça donne
Code:
Debug.Print Chemin & NomFichier & ".jpg"
sTmp = Dir(Chemin & NomFichier & ".jpg")
Debug.Print sTmp

A+
 
bonsoir
il sera peut être nécessaire d'utiliser le chemin onedrive plutot que le chemin du dossier synchro
sinon avec un peu de chance il s'agit de cette cochonnerie d'UAC due a une mise ajour recente (même win 10 en prolongation l'a pris en pleine poire)qui te masque l'accès au fichier avec un dir classique
et donc if Dir(Chemin & NomFichier & ".jpg", vbNormal Or vbSystem)

Patrick
 
Hello,

J'ai dans cette macro une Erreur de compilation
Nombre d'arguments incorrect ou affectation de propriété incorrect avec la formule Dir
Es-tu certain que c'est sur l'instruction VBA (et non la "formule") "Dir" que le compilateur plante ?

Dans ton chemin je vois un dossier nommé "OneDrive"... L'image est-elle vraiment stockée sur OneDrive ?



Est-ce normal d'avoir la variable "Choix" plutôt que "NomFichier" pour l'affectation de l'image au cadre d'image ?
Chez moi, en mettant simplement "NomFichier" à la place de "Choix", l'image se charge correctement.



Je n'ai pas compris cette partie de ton code VBA :
Enrichi (BBcode):
        With UF_Pièces.PhotoPieces
            .Picture = PhotoPieces
            .Width = W / h * 234
            .Left = 228 - (.Width / 2)
        End With
Pourquoi réaffecter une image au cadre d'image alors que tu viens de le faire quelques lignes au-dessus ?
Et la ligne me semble erronée.


[edit]
Je précise que chez moi (j'ai utilisé un chemin local et non OneDrive), il n'y a aucun problème de compilation avec ce code :
VB:
Private Sub Txt_photo_equipement_AfterUpdate()
'
Dim Chemin$, NomFichier$
Dim W As Single, h As Single

    On Error GoTo Erreur

   Chemin = ThisWorkbook.Path & "\"
'    Chemin = "C:\Users\jyves\OneDrive\Documents\Inventaires\PhotoPieces\"
    NomFichier = Txt_photo_equipement.Value

    If Dir(Chemin & NomFichier & ".jpg") = "" Then
        PhotoPieces.Picture = LoadPicture(Chemin & "inexistante.jpg")
    Else
        PhotoPieces.Picture = LoadPicture(Chemin & NomFichier & ".jpg")
        PhotoPieces.PictureSizeMode = fmPictureSizeModeZoom
        PhotoPieces.Object.BorderColor = RGB(179, 209, 202) ' Rouge
        PhotoPieces.Object.BackColor = RGB(179, 209, 202)   ' Vert
        W = PhotoPieces.Width
        h = PhotoPieces.Height
        With UF_Pièces.PhotoPieces
            .Picture = PhotoPieces
            .Width = W / h * 234
            .Left = 228 - (.Width / 2)
        End With
    End If

Erreur:

End Sub
Par contre, ça plante sur la ligne ".Picture = PhotoPieces".
[/edit]
 
Dernière édition:
Merci à vous tous de m'avoir aidé dans ce problème
J'ai changer la destination en retirant OneDrive et ensuite vous avez certainement remarqué
que l'image est nommée -PhotoPieces- et la Destination le même nom identique
Je crois que le Nombre d'arguments incorrect était ces doublons et après essai cela fonctionne.
Merci à vous tous
Très cordialement
 
Salut PatrickToulon,
non tu ne m'offenses pas, je voulais seulement présenter une possibilité qui n'est presque jamais utilisée car trop compliqué à mettre en oeuvre mais qui offre plus de possibilités et est plus moderne que les formulaires VBA. Ce n'était qu'à titre d'information.
Nullosse
 
ben fait une source moi çà m’intéresse
bien que j'ai créé déjà un outils similaire sans vsto en pur vba
au plaisir de te lire dans les ressources
ca apporterait et monterait le niveau d'un cran
juste pour demo de ce que j'ai deja fait
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
589
U
  • Question Question
Réponses
5
Affichages
2 K
P
Réponses
4
Affichages
2 K
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…