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 :

Charger fichier sur serveur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut Charger fichier sur serveur
    Bonjour à tous!

    Ne pouvant pas stocker sur internet un fichier excel comprenant des fonctions VBA, j'ai eu l'idée de créer une interface. Le principe: charger les données d'internet, les modifier à partir de l'interface, et les recharger sur le serveur FTP.
    Jusqu'à présent, j'arrive sans difficulter à charger les données sur excel avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim strURL As String
    strURL = "http://adresse serveur/Fichier B.xls"
    Workbooks.Open Filename:=strURL
    Workbooks("Fichier B.xls").Worksheets("Listing").Range("A1:Q100").Copy _
        Workbooks("Fichier A.xls").Worksheets("Listing").Range("A6")
    Workbooks("Liste membres.xls").Close False
     
    End Sub
    Mon problème c'est que je souhaiterai faire le chemin inverse aprés modification, c'est à dire venir remplacer sur le serveur, le fichier modifié...
    Et ej n'ai trouvé aucune information jusqu'à présent sur la méthode et la façon a employer pour faire ceci...
    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    En faisant une recherche sur le forum VB avec les mots clés "client ftp" j'ai obtenu ceci
    http://www.developpez.net/forums/sea...archid=3471226

    Aucun résultat pour la même recherche sur le forum VBA Excel.

    Il faudra peut-être adapter.

    zaza

    P.S. toujours faire une recherche avant de poster.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    J'ai bien cherché partout et effectivement je n'avais rien toruvé (même sur google). Mais en continuant un peu plus longtemps, je suis tombé sur un site (un peu par hasard) qui expliquer tout celà.
    Voici toutes les informations et le code, en espérant que ça seras utile à quelqu'un d'autre!
    http://jacxl.free.fr/cours_xl/cours_...#transfert_ftp


    Voici le code, il n'y a plus qu'à changer les paramètres de connexion en fonction des votres et en déclarant un module de variable:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Attribute VB_Name = "transfert_fich"
     
     
     
    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
    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
    Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
         "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
         ByVal lpszDirectory As String) As Boolean
    Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" ( _
         ByVal hFtpSession As Long, _
         ByVal lpszLocalFile As String, _
         ByVal lpszRemoteFile As String, _
         ByVal dwFlags As Long, _
         ByVal dwContext As Long) As Boolean
    Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
     
     
    Sub ftp()
    'transfère des fichiers du disque local vers un serveur ftp (upload, mode passif)
     
    'PARAMETRES************************
    fichier = "c:\rien.doc"
    login = "zaza"
    mot_passe = "miaou"
    rép = "/"
    bin_asc=&H2 '(&H1 ascii, &H2 binaire)
    mode=&H8000000 '(&H8000000 mode passif, 0 mode actif)
    '**********************************
     
    'lancer le transfert
    internet_ok = InternetOpen("PutFtpFile", 1, "", "", 0)
        If internet_ok = 0 Then
        MsgBox "connection internet impossible"
        Exit Sub
        End If
    ftp_ok = InternetConnect(internet_ok, "ftpperso.free.fr", 21, login, mot_passe, 1, mode, 0)
        If ftp_ok = 0 Then
        MsgBox "connection  impossible"
        Exit Sub
        End If
    sélect_rép = FtpSetCurrentDirectory(ftp_ok, rép)
        If sélect_rép = 0 Then
        MsgBox "impossible de trouver le répertoire "
        Exit Sub
        End If
     
    'nom du fichier sans le chemin
        nomfich = fichier
        Do While InStr(nomfich, "\") > 0
        nomfich = Right(nomfich, Len(nomfich) - InStr(nomfich, "\"))
        Loop
     
    'transférer le fichier
         succès = FtpPutFile(ftp_ok, fichier, nomfich,bin_asc, 0)
        If succès Then
        résult = nomfich & " a été transféré "
        Else
        résult = nomfich & " n'a pas pu être transféré"
        End If
     
    'fermer les pointeurs, ménage
        InternetCloseHandle ftp_ok
        InternetCloseHandle internet_ok
     
    'annoncer le résultat de l'opération
        If résult <> "" Then
        MsgBox résult
        Else
        MsgBox "aucun fichier transféré"
        End If
     
    End Sub

    Ce code fonctionne trés bien d'ailleurs!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/02/2007, 14h36
  2. [FTP] Accès fichiers sur serveur distant
    Par Mystic eyes dans le forum Langage
    Réponses: 23
    Dernier message: 07/07/2006, 17h06
  3. existence d'un fichier sur serveur distant
    Par Fabouney dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 17/01/2006, 10h18
  4. Creer fichier sur serveur
    Par woorant dans le forum Applets
    Réponses: 1
    Dernier message: 16/01/2006, 09h54
  5. [FTP] download de fichiers sur serveur AIX
    Par han39 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2006, 16h44

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