IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transfert Fichier par FTP [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Points : 120
    Points
    120
    Par défaut Transfert Fichier par FTP
    Bonjour,

    je souhaite faire un transfert de fichier par FTP, j'ai récupéré un bout de code, et je l'ai adapté avec un collège, le problème est que avec notre même configuration Excel, même référence, chez lui cela fonctionne et chez moi non.

    référence supplémentaire intégrée : Microsoft Internet Transfer Control 6.0 (SP6)

    J'ai une Erreur 429 : Un composant ActiveX ne peut pas créer d'objet ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Function UploadFile(ByVal HostName As String, _
        ByVal UserName As String, _
        ByVal Password As String, _
        ByVal LocalFileName As String, _
        ByVal RemoteFileName As String) As String
     
        Dim FTP As INet
     
        Set FTP = New INet
        With FTP
            .Protocol = icFTP
            .RemoteHost = HostName
            .UserName = UserName
            .Password = Password
            .Execute .URL, "Put " + LocalFileName + " " + RemoteFileName
            Do While .StillExecuting
                DoEvents
            Loop
            UploadFile = (.ResponseCode = 0)
        End With
        Set FTP = Nothing
    End Function
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Conversion()
        Dim wbExcel As Workbook
        Dim rep As String
        Dim OldName, NewName
        rep = Dir("D:\*.xls", vbDirectory)
     
        Do While (rep <> "")
     
            If (GetAttr("D:\" & rep) And vbDirectory) = vbDirectory Then
            MsgBox "Répertoire " & rep
     
        Else
                rep1 = Replace(rep, "xls", "csv")
                Chemin_complet_old = "D:\*" & rep
     
                Set wbExcel = Workbooks.Open(Chemin_complet_old)
                Sheets("**").Select
     
                chemin_complet_new = "D:\*" & "*****"
                wbExcel.SaveAs Filename:=chemin_complet_new, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
                wbExcel.Close (False)
              End If
            rep = Dir
        Loop
     
     UploadFile "**.**.*.**", "*****", "*****", "D:\**.csv", "**.csv"
     
     MsgBox "Fichier Transferé "
     
    End Sub
    Par avance merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Points : 120
    Points
    120
    Par défaut
    Bonjour,

    Pour ceux qui ont lu ce post et qui ont testé, est ce que vous avez eu même problème ?

    Merci pour vos réponses

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Points : 120
    Points
    120
    Par défaut
    Solution trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
     (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
    ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
     
    Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
    (ByVal hInternetSession As Long, ByVal sServerName As String, _
    ByVal nServerPort As Integer, _
    ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, _
    ByVal lFlags As Long, ByVal lContext As Long) As Long
     
    Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
    "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
    ByVal lpszDirectory As String) As Boolean
     
    Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
    (ByVal hConnect As Long, ByVal lpszRemoteFile As String, _
    ByVal lpszNewFile As String, ByVal fFailIfExists As Long, _
    ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
    ByRef dwContext As Long) As Boolean
     
    Private Declare Function FtpPutFile Lib "wininet.dll" Alias _
    "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, _
    ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As Boolean
     
    Private Declare Function InternetCloseHandle Lib "wininet.dll" _
      (ByVal hInet As Long) As Integer
    +

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub EnvoiVersFtp(Serveur As String, User As String, Pwd As String, _
        FichierLocal As String, DossierFTP As String, FichierFTP As String)
    Dim HwndConnect As Long
    Dim HwndOpen As Long
     
    'Ouvre internet
    HwndOpen = InternetOpen("SiteWeb", 0, vbNullString, vbNullString, 0)
     
    'Connection au site ftp - On suppose que le n° de port est 21
    HwndConnect = InternetConnect(HwndOpen, Serveur, 21, _
       User, Pwd, 1, 0, 0)
     
    'positionnement du curseur dans le répertoire
    FtpSetCurrentDirectory HwndConnect, DossierFTP
     
    'Envoi du fichier
    FtpPutFile HwndConnect, FichierLocal, FichierFTP, &H0, 0
     
    InternetCloseHandle HwndConnect 'Ferme la connection
    InternetCloseHandle HwndOpen 'Ferme internet
    End Sub
    +

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        EnvoiVersFtp "**.**.*.***", "****", "****", "D:\****.csv", ".", "*****.csv"

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, un peu tardif mais il y avait ceci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Transfert fichiers par ftp entre serveurs
    Par renaud26 dans le forum Langage
    Réponses: 7
    Dernier message: 19/03/2015, 11h31
  2. Réponses: 32
    Dernier message: 21/06/2012, 15h48
  3. Transfert de fichier par FTP
    Par 12_darte_12 dans le forum Access
    Réponses: 1
    Dernier message: 05/09/2006, 09h26
  4. Transfert fichier par FTP
    Par j_bolduc dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2005, 19h59
  5. Transfert de fichier par ftp
    Par schub1015 dans le forum MFC
    Réponses: 3
    Dernier message: 14/01/2004, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo