Protocole ftp utilisé dans un code vba

Résolu
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012 - 9 janv. 2012 à 22:59
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012 - 10 janv. 2012 à 15:10
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 14:29
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
3
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
9 janv. 2012 à 23:39
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 01:41
je sais bien qu'il y a l'erreur sur cette ligne il fait pas appel à mon objet ftpclient dans mon projet c#
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 10:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 10:25
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 10:30
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 10:34
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.
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 10:37
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 10:40
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 10:47
j'ai pas fait gaffe qu'il fallait l'ajouter en référence mais je ne trouve pas dans l'onglet .NET
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 10:48
je suis en framework 2.0 normalement je devrais le trouver
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 10:59
onglet .Net ? dans ton excel ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 11:08
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 11:08
sous visual studio
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 11:10
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 11:18
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 11:23
....
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 11:33
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)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
10 janv. 2012 à 11:38
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
0
medas918 Messages postés 45 Date d'inscription lundi 14 juin 2010 Statut Membre Dernière intervention 28 mai 2012
10 janv. 2012 à 11:50
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é?
0
Rejoignez-nous