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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| Sub mettreAJour()
Dim InternetOK
Dim FtpOK
Dim FtpServeur
Dim FtpLogin
Dim FtpPass
Dim DossierLocal
Dim DossierDistant
Dim Result
Dim Internet_OK
Dim FTP_OK
Dim Select_DossierDistant
Dim fichierlocal
Dim FichierDistant
Dim succès As Boolean
Dim i As Integer
succès = False
DossierDistant = ThisWorkbook.Worksheets("Envoi FTP").Cells(7, 2).Value
FtpServeur = ThisWorkbook.Worksheets("Envoi FTP").Cells(2, 2).Value
FtpLogin = ThisWorkbook.Worksheets("Envoi FTP").Cells(3, 2).Value
FtpPass = ThisWorkbook.Worksheets("Envoi FTP").Cells(4, 2).Value
'affichage fenêtre d'attente pendant le transfert
Application.Cursor = xlWait 'affiche le sablier
Waitbox.Show vbModeless 'affiche la waitbox mais continue le traitement
'Vérifier la connection à internet
InternetOK = InternetOpen("PutFtpFile", 0, "", "", 0)
If InternetOK = 0 Then
MsgBox "connection internet impossible"
GoTo fin
End If
'Vérifier l'accès ftp
FtpOK = InternetConnect(InternetOK, FtpServeur, 21, FtpLogin, FtpPass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0)
MsgBox ("connection FTP " & " serveur : " & FtpServeur & " login : " & FtpLogin & " mdp : " & FtpPass)
If FtpOK = 0 Then
MsgBox "connection FTP impossible"
' à utiliser en mode débogage
'MsgBox ("connection FTP impossible " & " serveur : " & FtpServeur & " login : " & FtpLogin & " mdp : " & FtpPass)
GoTo fin
End If
'vérifier le dossier distant
Select_DossierDistant = FtpSetCurrentDirectory(FtpOK, DossierDistant)
If Select_DossierDistant = 0 Then
MsgBox "impossible de trouver le répertoire distant "
GoTo fin
End If
MsgBox "dossier : " & DossierDistant
' récupération de l'adresse de travail
cheminFichierSortie = ActiveWorkbook.Path
Dim liste_fichier(7) As String
'test
'succès = FtpPutFile(FtpOK, cheminFichierSortie & "\" & "test.xls", "test.xls", FTP_TRANSFER_TYPE_ASCII, 0)
'If succès Then
'Result = "Le fichier test.xls a été correctement envoyé "
'MsgBox Result
'Else
'Result = "Erreur FTP : le fichier test.xls n'a pas pu être envoyé."
'MsgBox Result
'End If
For i = 1 To 7
'récupération des adresses des fichiers à récupérer sur le serveur
liste_fichier(i) = ThisWorkbook.Worksheets("Envoi FTP").Cells(10 + i, 1).Value
fichierlocal = cheminFichierSortie & "\" & liste_fichier(i)
FichierDistant = liste_fichier(i)
MsgBox "fichier local : " & fichierlocal
MsgBox "fichier distant : " & FichierDistant
'transfert du fichier
succès = FtpGetFile(FtpOK, FichierDistant, fichierlocal, False, 0, FTP_TRANSFER_TYPE_ASCII, 0)
'fin affichage fenêtre d'attente
Waitbox.Hide 'masque la waitbox
Application.Cursor = xlDefault 'remet le curseur par défaut
If succès Then
Result = "Le fichier " & FichierDistant & " a été correctement récupéré "
MsgBox Result
Else
Result = "Erreur FTP : le fichier " & FichierDistant & " n'a pas pu être récupéré."
MsgBox Result
ShowError ("GetFile: " & FichierDistant)
GoTo fin
End If
Next
fin:
'fermer les pointeurs, ménage
InternetCloseHandle FTP_OK
InternetCloseHandle Internet_OK
[...] |
Partager