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 :

Envoyer un fichier depuis mon PC vers le ftp d'un serveur


Sujet :

Macros et VBA Excel

  1. #21
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben tu lance ftp.exe , ensuite tu tape ligne à ligne les commandes contenues dans ton script excepté la première ligne (prompt) et arrivé au moment du put du utilise la commande "dir" pour afficher les fichiers présent sur ton serveur..

  2. #22
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Je vais craquer...
    D’abord le "dir" me donne une liste de fichier dans mon serveur (incompléte), je ne sais pourquoi, bref
    j'ai tout bien nettoyé des fichiers qui trainaient sur mon serveur, et j'ai fait la manip manuellement par le cmd et j'ai réussi à pousser un fichier au bon endroit dans le serveur, mais lorsque je le fait par la macro du fichier excel, il deroule bien la procédure, ( il ne me donne pas d'erreur) mais le fichier n' est pas présent dans le serveur

    S'il vous plait, quelqu'un saurait-il me modifier ça pour que ça fonctionne en 64 bits?

    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
    Option Explicit
     
    Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
    Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    ' Enumération des dossiers spéciaux
    Public Enum SpecialFoldersConstants
    CSIDL_INTERNET_CACHE = &H20
    End Enum
    ' Type
    Private Type SHITEMID
        cb As Long
        abID As Byte
    End Type
    Private Type ITEMIDLIST
        mkid As SHITEMID
    End Type
    ' Constantes
    Public Const MAX_PATH = 260
    Public Function GetSpecialFolder(SpecialFolder As SpecialFoldersConstants) As String
    ' Les variables
        Dim RC As Long
        Dim IDL As ITEMIDLIST
        Dim sPath As String
         ' Récupère le dossier spécial
        RC = SHGetSpecialFolderLocation(100, SpecialFolder, IDL)
        If RC = 0 Then
            ' Crée un tampon
            sPath = Space$(MAX_PATH)
            ' Récupère le path à partir de l'IDList
            SHGetPathFromIDList ByVal IDL.mkid.cb, ByVal sPath
            ' Supprime les chr$(0) inutiles
            sPath = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
            'If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"
        Else
            sPath = ""
        End If
        GetSpecialFolder = sPath
    End Function

  3. #23
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu devrais trouver ton bonheur ici : https://msdn.microsoft.com/fr-fr/lib...ffice.14).aspx

  4. #24
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Salut,
    effectivement je pense que la solution se trouve là, mais vu mon statut de débutant, cela me parait très compliqué malheureusement, je ne pense pas y arriver.

    Merci pour ton info, mais je pense que je vais abandonner

  5. #25
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Bonjour,
    ajouter PtrSafe après Declare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Declare PtrSafe Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As LongPublic Declare PtrSafe Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    Mais est-ce bien ta version d'Office qui est en 64 bits (auquel cas il faut alors modifier la déclaration des API) ou seulement la version de ton système d'exploitation (dans ce cas cette modification ne sera d'aucune utilité et le lancement de ta procédure provoquera un plantage) ?
    Concernant ce que tu veux faire (ou du moins ce que j'en comprends), à savoir enregistrer un fichier placé sur ton ordinateur sur un serveur, l'utilisation des API qui vont bien te le permet (cf. le lien proposé dans le message de kiki29).
    A+

  6. #26
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Salut,
    Déja lorsque je rajoutte "PtrSafe" dans excel, il n'accepte pas, il attend plutot "function" alors qu'il est écrit???
    Ensuite, je ne suis pa au boulot avant lundi, donc pas sur le pc concerné
    Merci de te pencher sur le problème

  7. #27
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Déja lorsque je rajoutte "PtrSafe" dans excel, il n'accepte pas, il attend plutot "function" alors qu'il est écrit???
    D'où mon questionnement sur le fait de savoir si ta version d'Office est bien en 64 bits.
    Quel message d'erreur obtiens-tu lorsque tu places le PtrSafe ?
    A+

  8. #28
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Alors, la version d'office serait bien en 32

    J'ai bien essayé d'adapter mon script, mais ce n'est pas du tout concluant
    Quelqu'un pourrait me guider?

    Merci

  9. #29
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    regarde ça:http://www.developpez.net/forums/d14...l/#post7886239

    si tu préfères,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    strPassword = "123456789"
    strUserName = "Testr"
    ftpServer = "o ****.**.**.***.fr"
    Script =environ("TEMP") & "\script.ftp"
            Open Script For Output As #1
            Print #1, "user"
            Print #1, strUserName
            Print #1, strPassword
            Print #1, "cd FDM/FDMRIP"
            Print #1, "put " & fdmca
            Print #1, "Quit"
            Close #1
    Shell "ftp -n -s:" & Chr(34) & Script & Chr(34) & Space(1) & ftpServer
    Dernière modification par AlainTech ; 23/05/2015 à 22h14. Motif: Fusion de 2 messages

  10. #30
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    si tu préfères,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    strPassword = "123456789"
    strUserName = "Testr"
    ftpServer = "o ****.**.**.***.fr"
    Script =environ("TEMP") & "\script.ftp"
            Open Script For Output As #1
            Print #1, "user"
            Print #1, strUserName
            Print #1, strPassword
            Print #1, "cd FDM/FDMRIP"
            Print #1, "put " & fdmca
            Print #1, "Quit"
            Close #1
    Shell "ftp -n -s:" & Chr(34) & Script & Chr(34) & Space(1) & ftpServer
    OK pour ça, mais pour que ça fonctionne, il me faut coller la fonction dans le même module?

  11. #31
    Invité
    Invité(e)
    Par défaut
    je comprends pas la question!
    pour que ça fonctionne il faut bien exécuter le shell ?????

    tu peux coller la fonction dans n'importe quel module, ces même ce que je faits dans le lien que je t'es donné (la macro ce trouvait dans Outlook à l'origine et exécute dans Excel!), j'utilise un module de classe mais c'est autre chose!

  12. #32
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    RAHHH le fichier script.ftp se crée bien dans le TEMP ( accompagné du fichier .xls à pousser), et avec les bonnes infos, mais ça ne pousse pas dans le ftp
    ??

  13. #33
    Invité
    Invité(e)
    Par défaut
    il faut te créer un fichier bat et regarder les erreurs dans la fenêtre dos!
    Code Fichier.bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ftp -n -s: "C:\Temp\script.ftp"   o ****.**.**.***.f
    pause

  14. #34
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    OK, je le met ou ce .bat?
    et question: à quoi correspond strPath = "c:\DezipFtp\"

  15. #35
    Invité
    Invité(e)
    Par défaut
    un fichier bat c'est un fichier texte avec l’extension Bat, il s'exécute en double clickant dessus comme un ficher .EXE. tu utilise Notepad++ pour le créer et tu le place ou tu veux sur le bureau par exemple.

    c'est le répertoire de sauvegarde de mon exemple cela n'est pas important!

    ton script avec Open Script For Output As #1. est largement suffisant.
    Dernière modification par AlainTech ; 23/05/2015 à 22h16.

  16. #36
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Oulhaa!!! lorsque j'active ton .bat, ça ne s’arrête pas de défiler!!!

  17. #37
    Invité
    Invité(e)
    Par défaut
    le fichier bat ne doit contenir que ça!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ftp -n -s: "C:\Temp\script.ftp"   o ****.**.**.***.f
    pause

  18. #38
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    o ****.**.**.***.f ou o ****.**.**.***.fr

  19. #39
    Invité
    Invité(e)
    Par défaut
    dans tous les cas ton serveur ftp

  20. #40
    Nouveau Candidat au Club
    Homme Profil pro
    debutant informatque
    Inscrit en
    Avril 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : debutant informatque

    Informations forums :
    Inscription : Avril 2015
    Messages : 27
    Points : 1
    Points
    1
    Par défaut
    Lorsque je l'active j'ai la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <C:\Users\xxxx\Desktop>ftp -n -s: "C:\Temp\script.ftp" o xxxx.xxxx.xxxx.xxxx.fr
    qui n’arrête pas de défiler dans la fenêtre DOS

Discussions similaires

  1. Envoyer un fichier depuis AS vers une servlet
    Par nebrass dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 16/09/2013, 17h54
  2. Envoyer des données depuis mon application android vers mysql
    Par bennour.mohamed dans le forum Android
    Réponses: 9
    Dernier message: 18/07/2011, 15h42
  3. envoyer des sms de mon programme ver un portable
    Par Nadirov dans le forum Delphi
    Réponses: 3
    Dernier message: 14/08/2006, 17h29
  4. Serveur/Client UDP: comment envoyer un fichier avec mon code
    Par danje dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 21/12/2005, 15h54
  5. Réponses: 3
    Dernier message: 29/10/2004, 14h54

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