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 :

création répertoire sur serveur ftp [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut création répertoire sur serveur ftp
    bonjour le phorum
    une âme charitable sait elle comment créer un répertoire sur un serveur ftp via une macro excel
    j'arrive a déplacer un fichier sur le serveur en utilisant wininet.dll mais pas à créer des sous répertoire
    j'ai essayé avec le scripting runtime et le createfolder mais le ftp ne semble pas aimé....

    merci d'avance

    munity

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Avec l'API wininet, la commande est ftpCreateDirectory.

    Détail :
    FtpCreateDirectory
    '
    ' Minimum Availability : Internet Explorer 3.0
    '
    ' Parameters:
    ' ¯¯¯¯¯¯¯¯¯¯¯
    ' hConnect [in] Valid HINTERNET handle returned by a previous call to InternetConnect using INTERNET_SERVICE_FTP.
    ' lpszDirectory [in] Address of a null-terminated string that contains the name of the directory to create on the remote system. This can be either a fully qualified path or a name relative to the current directory.
    '
    ' Return:
    ' ¯¯¯¯¯¯¯
    ' Returns TRUE if successful, or FALSE otherwise. To get a specific error message, call GetLastError . If the error message indicates that the FTP server denied the request to create a directory, use InternetGetLastResponseInfo to determine why.
    ' ____________________________________________________________________________________________________________
    ' BOOL FtpCreateDirectory (HINTERNET hConnect, LPCTSTR lpszDirectory);
    '=============================================================================================================
    Public Declare Function FtpCreateDirectory Lib "WININET.DLL" Alias "FtpCreateDirectoryA" (ByVal hConnect As Long, ByVal lpszDirectory As String) As Long 'BOOL
    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut
    merci beaucoup pgz
    j'avoue que j'étais en train de chercher de mon coté mais à des années lumières...
    cela fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    succ = FtpCreateDirectory(ftp_ok, "/toto/titi/test/") & Format(Date, "yyyy") & "/" & Format(Date, "mmmm"))
    rép = "/toto/titi/test/") & Format(Date, "yyyy") & "/" & Format(Date, "mmmm")
    sélect_rép = FtpSetCurrentDirectory(ftp_ok, rép)
        If sélect_rép = 0 Then
    la commande ne veut pas créer le répertoire si je lui ajoute des formats de date
    si je ne mets pas les variables de création sur les dates pour créer un dossier année et mois cela fonctionne
    il me crée bien mon répertoire test
    y a t'il un string ou autre à ajouter pour que le répertoire se crée correctement

    merci encore
    munity

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 772
    Points : 319
    Points
    319
    Par défaut
    a force de chercher on trouve
    la solution s'apparente au problème du mkdir ou du createfolder
    ce problème est qu'il faut créer sous répertoire par sous répertoire sinon le nouveau chemin n'est pas pris en compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    année = Format(Date, "yyyy")
    mois = Format(Date, "mmmm")
    jour = Format(Date, "dd")
    succ = FtpCreateDirectory(ftp_ok, "/toto/titi/test/" & année & "/")
    rép = "/toto/titi/test/" & année & "/"
    succ1 = FtpCreateDirectory(ftp_ok, rép & "/" & mois & "/")
    rép1 = rép & mois & "/"
    succ2 = FtpCreateDirectory(ftp_ok, rép1 & "/" & jour & "/")
    rép2 = rép1 & jour & "/"
    sélect_rép = FtpSetCurrentDirectory(ftp_ok, rép2)
    et donc créer une variable par dossier à créer
    pffff

    un peu fastidieux mais bon ce n'est à faire qu'une seule fois....

    merci encore gpz pour ta réponse sinon je serais encore en train de chercher
    enfin si une solution plus simple existe, je suis preneur quand meme

    munity

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

Discussions similaires

  1. [FTP] Gestion fichier PHP sur serveur FTP
    Par cdrik59 dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2006, 16h00
  2. Pb de loging sur serveur FTP
    Par dede92 dans le forum Développement
    Réponses: 1
    Dernier message: 21/10/2006, 18h24
  3. Création répertoire sur un serveur
    Par foreal dans le forum Windows
    Réponses: 2
    Dernier message: 27/06/2006, 11h40
  4. Réponses: 5
    Dernier message: 30/11/2005, 09h48

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