Erreur d'exécution objet requis sur procédure "Call"

Bonjour à tous,

J'ai créé un code vba que je souhaite ensuite appeler avec la procédure "Call" dans une macro mais quand je lance ma macro j'ai le message d'erreur "Erreur d'exécution '424' Objet requis" et je comprends pas ce qui ne va pas.

Ci dessous le début de mon code vba où je déclare les paramètres:

Sub RechercherValeurvCodeGP(ByVal codeGP As String, NumColRangeDataJuridique As String, RangeDataJuridique As String, ByVal RangeResultat As Range, Fichier As String, Feuille As String)

Et ci-dessous ma macro où j'appelle ce code:

Call RechercherValeurvCodeGP(Feuill.Range("A10"), "2", "$B$2:$DC$1000", Feuil1.Range("B10"), "SI_CMCICAM_FCPE_JURIDIQUE.csv", "SI_CMCICAM_FCPE_JURIDIQUE")

Si quelqu'un pourrait m'éclairer ça serait avec plaisir,

Merci d'avance

bonjour,

peux-tu nous mettre ton fichier avec des données anonymisées permettant de reproduire le problème ?

Voilà j'ai joint mon fichier que j'ai largement minimisé et anonymisé mais ça ne devrait rien changer à l'effet du code dessus

3exempleforum.xlsx (623.81 Ko)

bonjour,

merci de mettre le fichier contenant la macro en question

3exempleforum.xlsm (632.64 Ko)

Bonjour,

le code fourni ne permet pas de reproduire le problème sous rubrique, tu fais l'appel de ta procédure sans les paramètres.

Désolé j'ai juste refait une petite macro avec un call pour illustrer mais je viens de le refaire avec les paramètres

3exempleforum.xlsm (632.82 Ko)

bonjour,

je suppose qu'il fallait que je remplace feuil1 par feuil5.

je ne parviens pas à reproduire ton problème avec le fichier que tu as fourni. je reçois une erreur de fichier non trouvé dans la procédure, mais pour moi le call a fonctionné.

Pourquoi Feuil5 à la place de Feuil1?

En effet la macro marche à présent mais me renvoie un "#VALEUR!" dans la cellule que je veux remplir

Pourquoi Feuil5 à la place de Feuil1?

c'est le nom de code (codename) de ta feuille "Table", tu peux le voir dans l'éditeur VBA dans la fenetre explorateur de projets.

je n'utilise jamais le codename, je fais référence à la feuille par son nom ainsi :

sheets("table"). au lieu de feuil5. dans ce cas-ci.

Merci beaucoup pour cette info qui est plutôt très utile à savoir!

Dernière chose, aurais-tu une idée de pourquoi il m'affiche une erreur valeur quand je lance la macro alors qu'elle va bien chercher dans le bon fichier et que le code a l'air bon?

Désolé pour toutes ces questions, je gère bien Excel mais ai encore du mal avec VBA que je n'utilise que depuis peu...

bonjour,

il y a quelques instructions inutiles dans ta procédure, voici une simplification.

Option Explicit

Public Sub RechercherValeurvCodeGP(ByVal codeGP As String, NumColRangeDataJuridique As String, RangeDataJuridique As String, ByVal RangeResultat As Range, Fichier As String, Feuille As String)

    Dim Repertoire As String
    Repertoire = Range("A10").Value

    Workbooks.Open Filename:=Repertoire & "\" & Fichier, Origin:=xlWindows, local:=True
    temp = Application.VLookup(codeGP, Workbooks(Fichier).Sheets(Feuille).Range(RangeDataJuridique), NumColRangeDataJuridique, False)
    If IsError(temp) = False Then
        RangeResultat.Value = temp
    Else
        RangeResultat.Value = ""
    End If
    Workbooks(Fichier).Close False
End Sub
Sub Macro()
    Dim wstable As Object
    Set wstable = Sheets("table")
    Call RechercherValeurvCodeGP(Range("A10"), "2", "$B$2:$DC$1000", wstable.Range("B10"), "SI_CMCICAM_FCPE_JURIDIQUE.csv", "SI_CMCICAM_FCPE_JURIDIQUE")
End Sub

Merci beaucoup pour ton aide, ça m'a vraiment permis de gagner du temps

Bonne fin de journée à toi

Rechercher des sujets similaires à "erreur execution objet requis procedure call"