Protocole ftp utilisé dans un code vba [Résolu]

Signaler
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012
-
medas918
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012
-
Bonjour

Je vous expose mon projet. J'ai un Code VBA qui utilisé des références OCX pour des protocole, je les remplace par du code C#. Quand j'excute mon code, il me dit erreur de compilation type défini par l'utilisateur non défini dans mon code VBA:

Private WithEvents mFtpcObj As FtpClientCtl.FtpClient


Je voudrai savoir si cela vient de mon code en C sharp le soucis ou je dois modifier dans mon code vba

merci de me répondre et de m'orienter vers la solution
si vous souhaitez plus de renseignements dites le moi
cordialement

31 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Je ne sais pas s'il est possible de faire tourner ton projet C# en pas a pas dans une telle configuration. (c'était possible en VB6)

places un MessageBox dans ton code C#, tu sera fixé...


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
14648
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 février 2020
139
Bonjour,

Erreur de compilation ou d’exécution ?
C'est sur cette ligne qu'il y a l'erreur ?
Si c'est sur une autre ligne, il faudra la voir.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

je sais bien qu'il y a l'erreur sur cette ligne il fait pas appel à mon objet ftpclient dans mon projet c#
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Je n'ai pas compris ce mix VBA / C# ...

si tu souhaites faire du FTP depuis VBA, tu peux toujours passer par l'utilitaire console 'ftp' de Windows

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

je sais bien mais en faites pourquoi je fais un ftp en C# c'est pour éviter de payer des licence dans les fichiers ocx(qui sont ativex) sinon je les aurai référencé dans mon code vba c'est .ocx donc je vais une class ftp pour qui soit utilisé dans le code vba
si tu as d'autre question qui peut t'aider à répondre à ma demande dis le moi
merci de ta réponse
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
ton composant C# doit être exposé et enregistré (COM Interop).

Est-ce le cas ?

Il semble que non, et que du coup, le "type défini par l'utilisateur non défini"

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

Je vais vous expliquer ce que je fais peut être sa donnera plus de lumière.
Je travail sous excel 2003 et j'ai réalisé une interface graphique qui me permet de faire des requêtes dans un serveur ( oracle apache ...), l'utilisateur doit se connecter par plusieurs moyen dont le protocole FTP.
Au début j'utilisai des active X mais ils sont payant, alors je me suis orienté dans le langage C# sous Microsoft Visual Studio 2010 Ultimate.
J'ai réalisé un objet FTP qui compile très bien aucune erreur, et j'ai paramétré la compilation, c'est à dire il exécute sous le fichier excel, en ouvrant sa page et normalement je dois pouvoir faire des tests simples mais il me donne une erreur de compilation sur la ligne.
Je recherche depuis hier soir l'erreur.
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

j'ai bien le composant.
Enfin si c'est cela que tu parle

using System.Runtime.InteropServices; // ComVisible

namespace nomprojet
{

    [ComVisible(true)]
    
    public class FtpClient
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Ok ...
est il bien en ce cas référencé dans ton classeur Excel ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

j'ai pas fait gaffe qu'il fallait l'ajouter en référence mais je ne trouve pas dans l'onglet .NET
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

je suis en framework 2.0 normalement je devrais le trouver
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
onglet .Net ? dans ton excel ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

la version de mon framework est elle bonne? sa peut être sa mon problème car comme référence j'ai ceci :

System.Runtime.Remoting
System.Runtime.Serialization.Formatters.Soap
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

sous visual studio
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
c'est bien Excel qui semble ne pas connaitre ton controle
ajoutes ton OCX généré par C# aux références de Excel

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

j'ai pas de controle OCX generé par C#il me donne des extensions dll, cmd ou encor tlb je vais en sorte plus avoir des contrôl active X dans mon projet être indépendant. et même en regardant dans mes références j'ai pas system.runtime.interop
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
....
Tu as bien généré un composant de type ActiveX depuis C# !
quel que soit le nom du fichier généré...

.dll c'est good
ton .tlb, c'est le TypeLib, un fichier de description d'activeX

ce que tu as généré doit être enregistré en base de registres (RegSvr32)
et ajouté dans les références de ton EXCEL
sauf si tu souhaites le jouer en Late-Binding, auquel cas seule l'opération de Registry est requise

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

non, je n'ai pas généré de composant Activex depuis C#
non, je suis early binding.
monprojet.dll est ajouter depuis le debut.
mais si je veux ajouter les autres référence il me dit impossible (comme celui ci Interop.mscoree.dll)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
Excel connait pas .Net
le ComVisible et autres jouets fait bien de ta dll un ActiveX

si ta dll est bien là, no soucy

dans excel, presse F2
et regarde si ta dll Ftp est bien chargée.

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
45
Date d'inscription
lundi 14 juin 2010
Statut
Membre
Dernière intervention
28 mai 2012

sa lance mon projet donc je lance les tests rien se passe mais si je ne fais pas F2 et que je lance mon projet à l'aide d'un onglet que j'ai créé là il me dit erreur de compilation ....
et comment je vois que ma dll est lancé?
1 2