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 :

Importer fichier a partir d'un protocole ftp avec login et mot de passe


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Importer fichier a partir d'un protocole ftp avec login et mot de passe
    bonjour le forum,

    J'aurais besoin de vos lumières pour m'éclairer car je suis un peut perdu ca fait un petit moment que je but sur ce problème malgré que j'ai trouvé des exemple comme ce code

    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
    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 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 FtpSetCurrentDirectory Lib "wininet.dll" Alias _ 
         "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _ 
         ByVal lpszDirectory As String) As Boolean 
    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 
     
    Sub envoie_fichier() 
    internet_ok = InternetOpen("", 1, "", "", 0) 
    If internet_ok Then 
    ftp_ok = InternetConnect(internet_ok, "ftpperso.free.fr", 21, "zaza", "mdp_miaou", 1, 0, 0) 
    If FtpSetCurrentDirectory(ftp_ok, "/cours_xl/vba") Then 
    succès = FtpGetFile(ftp_ok, "applaud.wav", "c:\rien.wav", False, 0, &H0, 0) 
    End If 
    End If 
    If succès Then MsgBox ("le fichier a été transféré") 
    End Sub
    Je voudrais pouvoir telecharger un fichier csv a partir d'un reseau pour mon boulot (sujet d'alternance) et je n'arrive pas si quelqu'un peut m'aider
    le chemin pour accéder au fichier et "ftp://blvweb01.vi.fr/export_egoal_cabines/Stock_colis/"
    et le nom du fichier et STOCK_COLIS_15_01_22_DIVERS_001.CSV
    c'est que tous les jour il un nouveau fichier avec la date du jour je voudrais que ca me telecharge celui avec la date la plus recente!
    le login c'est (rtblv/r94531)
    mot de passe (4531)
    et pouvoir l'enregistrer sur le bureau C:\Users\A172243\Desktop j'adapterai le code par la suite

    Si quelqu'un à une idée je suis preneur parce que la je bloque même si j'ai trouvé pas mal d'exemple je bute soit sur la validation de la boite de dialogue ou autre voila
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    consulter le tutoriel VBA et développement Web

    Essayer aussi de directement l'ouvrir comme pour un fichier local …



    __________________________________________________________________________________________________
    Tous unis, tous Charlie
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour Marc-L

    J'ai regarder le liens que tu m'a donner c'est bien expliquer mais pas évident a comprendre surtout comment il met le mot de passe et le login dans sont lien ftp

    par contre j'ai essayé comme tu m'a dit de l'ouvrir comme un fichier local, ca marche bien mais je bloque étant donné que ça me demande un mot de passe et un login
    et par la suite lorsqu'il affiche la boite de dialogue je suis directement sur le bouton annuler et j'arrive pas a me possitionner et actionner le bouton ouvrir pour le téléchargement

    voici le code que j'ai écrit pour l'instant dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Import()
     
    Dim myIe As Object
     
        Set myIe = CreateObject("internetexplorer.application")
        myIe.navigate ("ftp://blvweb01.vi.fr/export_egoal_cabines/Stock_colis/STOCK_COLIS_15_01_22_DIVERS_001.CSV")
        'On pointe notre bouton
        myIe.Visible = True
        Application.SendKeys ("{ENTER}")
     
    Set myIe = Nothing
        End Sub
    ou est ce que je doit inseret le code et le mot de passe dans le lien ftp en faisant une concaténation?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    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
    Option Explicit
     
    Sub Import()
     
    Dim myIe As Object
    Dim Rrepertoire_source As String
    Dim Login As String
    Dim mot_de_passe As String
    Dim concatener_filename As String
     
     
        concatener_filename = Rrepertoire_source & Login & mot_de_passe
        Rrepertoire_source = "ftp://blvweb01.renaultvi.fr/export_egoal_cabines/Stock_colis/STOCK_COLIS_15_01_22_DIVERS_001.CSV"
        Login = "rtblv/r904531"
        mot_de_passe = "4531"
     
        Set myIe = CreateObject("internetexplorer.application")
        myIe.navigate = concatener_filename
        myIe.Visible = True
        Application.SendKeys "{ETAB}"
        Application.SendKeys "{TAB}"
        Application.SendKeys "{ENTER}"
     
    Set myIe = Nothing
     
        End Sub
    voila ce à quoi je pensé dans mon message d'avant mes apparemment je suis loind du compte!

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Peut-être aussi du côté de la fonction de feuille de calculs via le menu Données,
    Importer à partir du Web (QueryTable en VBA) …

    Sinon sans arriver à passer les paramètres d'identification,
    il reste effectivement la possibilité de piloter IE comme dans cette contribution

    C'est aussi possible via une requête avec une redirection. Mais sans pouvoir accéder à la source …


    __________________________________________________________________________________________________
    Tous unis, tous Charlie
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour Marc L,

    J'ai continué à chercher un peut et j'ai trouvé ce code qui je pense pourrais convenir à mes attente mais je n'arrive pas à le mettre en place et surtout le faire fonctionner peut etre pourra tu m'aider m'aider et me l'expliquer je te met le code que j'ai utilisé de base et le code une fois modifier part moi

    code utilisé
    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
    Option Explicit
    Public Login As String, Mdp As String, NumFic As String
    'Déclaration des API Windows pour permettre la récupération du fichier sur le serveur FTP
    Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
     
    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 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 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
     
     
    Public Sub ImportFTP(FicELO As string)
    On Error GoTo Err_Sub
      ' Marco développé par : Shwin - <a href="http://www.developpez.net/forums/member.php?u=26564" target="_blank">Forum des développeurs - Voir le profil: shwin</a>
      ' Source : <a href="http://access.developpez.com/sources/?page=Fichiers#EnvoiFTP" target="_blank">Access - Les Sources - Club d'entraide des développeurs francophones</a>
      Dim HwndConnect As Long
      Dim HwndOpen As Long, MyFile
      ' On récupère l'adresse IP dans les CGR
      Dim SiteFTP
      ' Définir l'adresse IP - ICI
      SiteFTP = "0.0.0.0"  ' Lance l'ouverture du site ftp
      HwndOpen = InternetOpen("ftp://" & SiteFTP & "/travail", 0, vbNullString, vbNullString, 0)
      'Connection au site ftp
      HwndConnect = InternetConnect(HwndOpen, SiteFTP, 21, Login, Mdp, 1, 0, 0)
      'positionnement du curseur dans le répertoire
      FtpSetCurrentDirectory HwndConnect, "/travail"
      ' Téléchargement du fichier ELO  
      Dim Rep
      Rep = FtpGetFile(HwndConnect, FicELO, VPathFileName, False, 0, &H0, 0)
      ' Vérifier que le fichier a bien été téléchargé
      If Rep = False Then
        InternetCloseHandle HwndConnect 'Ferme la connection
        InternetCloseHandle HwndOpen 'Ferme internet
        MsgBox "Impossible d'importer le fichier : " & FicELO & vbCrLf _
          & "Arrêt de la macro !"
        End
      End If
      ' Ferme le handle de connection puis celui d'Internet
      InternetCloseHandle HwndConnect
      InternetCloseHandle HwndOpen
     
      Exit Sub
     
    Err_Sub:
      MsgBox "Une erreur c'est produite, arrêt de la macro"
      InternetCloseHandle HwndConnect 'Ferme la connection
      InternetCloseHandle HwndOpen 'Ferme internet
      FlgErr = True
      End
    End Sub
    et voici le code une fois que je l'ai modifié
    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
    Option Explicit
     
    Public Login As String, Mdp As String, NumFic As String
    'Déclaration des API Windows pour permettre la récupération du fichier sur le serveur FTP
    Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
     
    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 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 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
     
     
    Public Sub ImportFTP(STOCK_COLIS_15_01_22_DIVERS_001 As String)
    On Error GoTo Err_Sub
      Dim HwndConnect As Long
      Dim HwndOpen As Long, MyFile
      ' On récupère l'adresse IP dans les CGR
      Dim SiteFTP
      ' Définir l'adresse IP - ICI
      SiteFTP = "blvweb01.vi.fr"  ' Lance l'ouverture du site ftp
      HwndOpen = InternetOpen("ftp://" & SiteFTP & "/export_egoal_cabines/Stock_colis", 0, vbNullString, vbNullString, 0)
      'Connection au site ftp
      HwndConnect = InternetConnect(HwndOpen, SiteFTP, 21, rtblv / r904531, 4531, 1, 0, 0)
      'positionnement du curseur dans le répertoire
      FtpSetCurrentDirectory HwndConnect, "/export_egoal_cabines/Stock_colis"
      ' Téléchargement du fichier ELO
      Dim Rep
      Rep = FtpGetFile(HwndConnect, STOCK_COLIS_15_01_22_DIVERS_001, VPathFileName, False, 0, &H0, 0)
      ' Vérifier que le fichier a bien été téléchargé
      If Rep = False Then
        InternetCloseHandle HwndConnect 'Ferme la connection
        InternetCloseHandle HwndOpen 'Ferme internet
        MsgBox "Impossible d'importer le fichier : " & STOCK_COLIS_15_01_22_DIVERS_001 & vbCrLf _
          & "Arrêt de la macro !"
        End
      End If
      ' Ferme le handle de connection puis celui d'Internet
      InternetCloseHandle HwndConnect
      InternetCloseHandle HwndOpen
     
      Exit Sub
     
    Err_Sub:
      MsgBox "Une erreur c'est produite, arrêt de la macro"
      InternetCloseHandle HwndConnect 'Ferme la connection
      InternetCloseHandle HwndOpen 'Ferme internet
      FlgErr = True
      End
    End Sub
    je voudrais savoir aussi faut il le placer dans un module de classe et faire appel ou autre???

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Pour l’explication du code voir avec son auteur ! Sinon toute la documentation se trouve sur le site MSDN …

    Ne voyant pas le rapport avec une classe, un module normal semble approprié.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour Marc L,

    Oui je comprend bien j'ai essayé de demander à la personne concerné on verra si j'ai un retour!
    Concernant le module de classe c'est à titre d'information, car la je suis vraiment bloqué j'ai parcouru pas mal de site mais sans resultat

    si jamais quelqu'un à une idée la je but carrément!!!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour Marc L,

    J'ai continué à chercher de mon côter et je suis pas loin du résultat il me reste quand même 2/3 petit problèmes

    1. Je voudrais pouvoir intégré dans le nom du fichier que je télécharge une variable de la date du jour qui me permette de toujours téléchargé le fichier le plus récent et non en dur

    c'est à dire rendre variable ce nom de fichier "STOCK_COLIS_15_01_26_DIVERS_001.CSV" qui contient la date et qui change tous les jours

    2. j'ai un problémes quand je suis déjà connecté il m'ouvre directement la fenêtre de telechargement du fichier donc je voudrais pouvoir déclaré une variable pour distinguer mes deux boite de dialogue l'une quand c'est celle de connexion et l'autre quand c'est celle de windows mais je ne sais pas comment les appéllées (les distingués) après il me suffirais de faire une fonction "si" je pense

    cette partie si il faut ce connecté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("rtblv/r904531")
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("4531")
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{ENTER}"
    et cette partie si je suis déjà connecté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{LEFT}"
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{LEFT}"
    Application.SendKeys "{ENTER}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{RIGHT}"
    Application.SendKeys "{ENTER}"
    Si tu peut m'aidé, je te mets le code avec ce que j'ai reussi à faire jusqu'a maintenant, en ésperant que tu me comprendra

    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
    Option Explicit
     
    Sub connexion()
     
    'Déclaration des variables
    Dim ie As Object
    Dim nom As String
    Dim Dialogs(xlDialogOpen) As Object
     
    'variables nom de fichier à la date du jour
    nom = "STOCK_COLIS_" & "TODAY()" & Format(Date, "dd_mm_yyy") & "_DIVERS_001" & ".CSV"
     
    'lancement de l'ouverture du serveur ftp pour récuperer le fichier au format csv
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.Navigate ("ftp://blvweb01.vi.fr/export_egoal_cabines/Stock_colis/STOCK_COLIS_15_01_26_DIVERS_001.CSV")
     
    'fonction "si" pour gerer la fenetre de connexion si néccessaire ou le télechargement direct
    ' Si la fenetre de connexion de souvre on se connect et télécharge le fichier sinon
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("rtblv/r904531")
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("4531")
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{ENTER}"
     
    'sinon
    'si on est déja connecté on on télécharge le fichier directement et l'enregistre dans le repertoir téléchargement
     
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{LEFT}"
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{ENTER}"
    Application.SendKeys "{LEFT}"
    Application.SendKeys "{ENTER}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys "{RIGHT}"
    Application.SendKeys "{ENTER}"
     
    End Sub

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Concernant la variable pour la date j'ai reussi à trouver avec un peu de bon sens grâce à ce code

    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
    Sub connexion()
     
    'Déclaration des variables
    Dim ie As Object
    Dim nom As String
    Dim Dialogs(xlDialogOpen) As Object
    Dim Annee As String
     
    Annee = Format(Date - 1, "yy_mm_dd")
     
    'variables nom de fichier à la date du jour
    nom = "STOCK_COLIS_" & Annee & "_DIVERS_001" & ".CSV"
     
    'lancement de l'ouverture du serveur ftp pour récuperer le fichier au format csv
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.Navigate "ftp://blvweb01.renaultvi.fr/export_egoal_cabines/Stock_colis/" & nom & "
    par contre il me reste la question des boites de dialogues à régler, je n'arrive toujours pas à trouver le moyen de les distinguer!
    Je continue mes recherches et je te fait un retour pour pouvoir faire profiter le forum de mon problème et solutions ça peut toujours servir!

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Comme tu pilotes une instance d'IE indépendante, la connexion devrait être systématique !

    Sinon repérer un élément dans la page source pour différencier le statut de connecté ou pas …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Bonjour le Forum, Marc L,

    J'ai finalement reussi grâce à des SendKeys qui est bien sympa et en bidoulliant un peut je m'est mon code au cas ou ça peut toujours servir du moins c'est bon pour moi encore merci pour t'es conseillés

    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
       Sub Importation()
     
    'Déclaration des variables
    Dim ie As Object
    Dim nom As String
    Dim Dialogs(xlDialogOpen) As Object
    Dim Annee As String
     
    Annee = Format(Date - 1, "yy_mm_dd")
     
    'variables nom de fichier à la date du jour
    nom = "STOCK_COLIS_" & Annee & "_DIVERS_001" & ".CSV"
     
    'lancement de l'ouverture du serveur ftp pour récuperer le fichier au format csv
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    ie.Navigate "ftp://blvweb01.tvi.fr/export_egoal_cabines/Stock_colis/" & nom & ""
     
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("login")
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:02")
    Application.SendKeys ("passwprd")
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{TAB}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{ENTER}"
     
    End Sub

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

Discussions similaires

  1. [AC-2013] production d'un fichier HTML à partir d'un etat access avec la commande outputto
    Par alpha_du_centaure dans le forum Access
    Réponses: 0
    Dernier message: 06/02/2015, 17h55
  2. Importation fichier données à partir de l'explorateur
    Par olive_ronron dans le forum Octave
    Réponses: 2
    Dernier message: 03/03/2011, 11h44
  3. phpmyadmin : importer fichier .txt à partir d'un fichier excel
    Par marveljojo75 dans le forum Administration
    Réponses: 2
    Dernier message: 05/12/2008, 16h33
  4. Importation des données à partir d'un serveur FTP
    Par kargero dans le forum Langage
    Réponses: 24
    Dernier message: 31/10/2007, 14h33
  5. Réponses: 2
    Dernier message: 20/07/2007, 10h10

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