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 données fichier .bat vers fichier .xls


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut transfert données fichier .bat vers fichier .xls
    Bonjour;

    Dans ma macro, je lance un fichier .bat pour récupérer des données.
    Je voudrais avoir votre aide pour que ma macro se bloque le temps que je lance le fichier .bat et qu'elle repart une fois le fichier .bat fermé

    Pour me dépanner, j'ai fais ceci, pas terrible.......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub transfert_coros()
    'effectue le transfert de syntotal par FTP
        valeur = Shell("J:\Funf_gen\Production\Trs\bilanhebdo\fic.bat", 1)
     
    'blocque la macro jusqu'à la fin du transfert
        answer = MsgBox(" Cliquer sur OK quand la fenêtre de transfert est fermée ", vbOKCancel + vbInformation)
    End Sub
    J'ai ceci dans le fichier .bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FTP -n -s:"J:\Funf_gen\Production\Trs\bilanhebdo\FIC.FTP" 10.128.115.15
    Merci d'avance de votre aide, en espérant que mes explications sont assez claires.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Voici ce que j'utilise :

    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
     
     
    Option Compare Database
    Option Explicit
    '========================
    'Cette section doit être dans le HAUT d'un module standard.
    'C'est la déclaration des API
    Declare Function WaitForSingleObject Lib "Kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Declare Function OpenProcess Lib "Kernel32"   (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long,   ByVal dwProcessId As Long) As Long
    Public Const INFINITE = &HFFFF
     
    Function LanceEtAttendLaFin(ByVal CheminComplet As String) As Long
    Dim ProcessHandle As Long
    Dim ProcessId As Long, ret&
     
    ProcessId = Shell(CheminComplet, vbNormalFocus)
    ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId)
    LanceEtAttendLaFin = WaitForSingleObject(ProcessHandle, INFINITE)
     
    End Function
     
    Function WaitForEnd(Fichier) As Long
      Dim wsh As Object
      Set wsh = CreateObject("WScript.Shell")
     
      WaitForEnd = wsh.Run(Fichier, 1, True)
     
    End Function


    Exemple d'utilisation :


    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
     
     
    Sub ZIPMDB_DISPO(site As String, disque As String)
            Dim chemin As String
            Dim filename As String
            filename = "D:\BAT\EXTR_DISPO.bat"
            Open filename For Output As #1
            Print #1, "d:\pkzipc -extract=up -nofix " & disque  & "SAUVE\" & site & ".ZIP *.mdb D:\NMQMS\QUICKDISPO\QUICKSPE\bases\"
            Close #1
     
            chemin = "D:\BAT\EXTR_DISPO.bat"
     
            WaitForEnd chemin
     
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 65
    Points : 46
    Points
    46
    Par défaut
    Merci pour ton aide kilimanjaro.

    Voici ta proposition adapté à ma macro, c'est nickel

    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
     
    Declare Function WaitForSingleObject Lib "Kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
     
    Sub transfert_coros()
    Dim chemin As String
    Dim filename As String
     
    'effectue le transfert de syntotal par FTP
             filename = "J:\Funf_gen\Production\Trs\bilanhebdo\fic.bat"
            Open filename For Output As #1
            Print #1, "FTP -n -s:" & "J:\Funf_gen\Production\Trs\bilanhebdo\FIC.FTP" & " " & "10.128.115.15 "
            Close #1
     
            chemin = "J:\Funf_gen\Production\Trs\bilanhebdo\fic.bat"
     
            WaitForEnd chemin
    end sub
     
    Function WaitForEnd(Fichier) As Long
      Dim wsh As Object
      Set wsh = CreateObject("WScript.Shell")
     
      WaitForEnd = wsh.Run(Fichier, 1, True)
     
    End Function
    Merci encore

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Problème résolu?

    Bouton !

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/03/2010, 11h59
  2. [WD12E] données port com vers fichier txt
    Par ryaxx dans le forum WinDev
    Réponses: 18
    Dernier message: 10/03/2010, 12h15
  3. Réponses: 16
    Dernier message: 16/08/2007, 16h35
  4. Réponses: 13
    Dernier message: 29/03/2007, 12h30
  5. Transfert de données de lpt1 vers fichiers
    Par germain31121975 dans le forum C++
    Réponses: 1
    Dernier message: 20/06/2006, 18h26

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