Résolu Problème avec CallByName()

  • Auteur de la discussion kyoku59
  • Date de début

kyoku59

Nouveau membre
Bonjour,

Je voudrai utiliser CallByName() mais je ne la comprend pas très bien.
Le but est d'utilisé un argument passé en paramétré et de faire le rapprochement avec une fonction de ma classe. Dur à expliquer :pt1cable:

Mon code :

Classe Dossier
[cpp]Public Property Get lire_chemin_fichier_FR() As String
lire_chemin_fichier_FR = lire_emplacement_racine + templates + "\" + fiche_Renseignement
End Property

Public Property Get lire_chemin_fichier_FC() As String
lire_chemin_fichier_FC = lire_emplacement_racine + templates + "\" + fiche_Competition
End Property

Public Property Get lire_chemin_fichier_FAE() As String
lire_chemin_fichier_AE = lire_emplacement_racine + templates + "\" + fiche_auto_evaluation
End Property[/cpp]

Maintenant je voudrai faire appel a l'une des 3.
Je procéde ainsi :

Fonction
[cpp]
Sub gene_fiche(fiche As String)
Dim wDossier As New Dossiers
Dim procedure as string
dim fonc as string

procedure = "lire_chemin_fichier_" & fiche
fonc = CallByName(wDossier, procedure, VbMethod)
end sub
[/cpp]

Appel de ma fonction :
[cpp]
Dim nom_fonc As String
nom_fonc = "FR"

gene_fiche (nom_fonc)
[/cpp]

Si quelqu'un peut m'éclairer SVP :cry:
 

zeb

Modérateur
Salut,

Attention, pas de parenthèse pour l'appel des sub (ligne 4 du dernier code.)
Tu déclares des méthodes Get et tu les appelles avec vbMethod, c'est peu cohérent.

Ta méthode va s'appliquer sur l'objet wDossier. Qu'est-ce donc ? (Mais est-ce si important pour nous de le savoir ?)

Sinon, quel est le problème ?
 

kyoku59

Nouveau membre
Meilleure réponse
Merci d'avoir répondu

wDossier est un objet de la classe Dossier. En gros je voulais faire :
wDossier.[[[ lire_chemin_fichier_ & fiche ]]]] pour obtenir wDossier.lire_chemin_fichier_FR par exemple.
J'avais un jolie message d'erreur lors de l'exécution et j'ai essayé tous les paramètres qu'il me proposé.

J'ai contourné mon problème en utilisant un select case. Mais j'aimerai quand même savoir le fin mot de cette histoire lol
 

zeb

Modérateur
Oki pour la soluce de contournement.
Oki aussi pour savoir pourquoi ça ne marche pas.

Alors j'ai deviné que Dossier était une classe (tu pouvais pas le dire, non ?)
Mais je ne peux pas deviner le message d'erreur dont tu parles.

Pour moi, ça devrait fonctionner sans erreur.
Mais bon, à ta place, je ferais de gene_fiche une fonction qui renvoie un String plutôt qu'une Sub qui ne renvoie rien.
 

kyoku59

Nouveau membre
Oupsss désolé pour la classe :whistle:

Je vais cherché si j'ai gardé une sauvegarde de mon programme avec la fonction callbyname() et je testerai de changer ce Sub.
Pour le message d'erreur c'était "objet non définie"

Voili voilou

Merci bien Zeb !
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 850
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut