"Erreur d'ouverture d'ouverture du fichier script" via un .bat

Vinc

XLDnaute Junior
Bonjour, je suis confronté à un problème qui est surement compliqué car je n'ai pas trouvé :rolleyes:

J'ai un fichier .bat qui pointe vers un .txt pour me connecter à un serveur via FTP afin d'envoyer un fichier excel.


-Quand je clique deux fois sur mon .bat, je me connecte bien au serveur et envois mon fichier Excel sans souci. J'en conclus que mon .bat et .txt sont correctement paramétrés !

-Maintenant quand je veux réaliser cette même fonction en VBA avec la commande Shell :
Code:
Dim MyAppID
MyAppID = Shell("D:\UploadFTP\FTP.bat", vbMaximizedFocus)

-Ma fenêtre DOS s'ouvre bien mais j'ai le message d'erreur suivant (Dans le fenêtre DOS):
Erreur d'ouverture d'ouverture du fichier script paramFTP.txt

-J'ai aussi essayé :
Code:
Shell (Environ $ ("COMSPEC") & "c / D:\UploadFTP\FTP.bat", vbNormalFocus)

Avez vous une piste à mon problème :confused:

Merci
 

Vinc

XLDnaute Junior
Re : "Erreur d'ouverture d'ouverture du fichier script" via un .bat

-Merci Staple1600 pour les quelques pistes... Après plusieurs essais en vbs (Dont je connais bien le langage) je me retrouve toujours avec le même problème, sa fonctionne hors de l'application et sa ne fonctionne pas par un appel via VBA... :(

-Je suis donc passé par une autre méthode que je souhaites partager avec le forum car je me suis vraiment pris la tête dessus... :eek:

-J'ai utilisé la méthode SendKey :
Code:
Sub SendFTP()
    Dim LocationFTP As String
    LocationFTP = "C:\Windows\System32\ftp.exe" ' Location du programme FTP.exe de Windows
    Dim StartFTP As Double
    If Dir(LocationFTP) = "" Then
        MsgBox "Le chemin d'accès du programme FTP n'est pas valide.", vbCritical, "Erreur"
        Exit Sub
    End If

    StartFTP = Shell(LocationFTP, vbMaximizedFocus) ' Ouverture du programme FTP
    Application.Wait Now + TimeValue("00:00:02") ' Temporisation pour attendre que le programme s'initialise
    Ecrire "open " & "ftpperso.sfr.fr" ' Ouverture de la connection au serveur FTP
    Ecrire "MonNomUtilisateur" ' Nom d'utilisateur
    Ecrire "MonMotDePasse" ' Mot de passe
    Ecrire "hash" ' Enable "progressbar" tous les 2048 octets/marque de hachage
    Ecrire "prompt" ' Disable confirmation prompts
    Ecrire "binary" 'Mode de transfert du fichier (Binaire par exemple doc/word, images, sons,etc... . Le transfert se fait octet par octet sans aucune conversion.) ou (ascii par exemple html, ps, rtf, ....).
    Ecrire "cd ../../ICI" 'Dossier sur le serveur FTP ou sera déposer le fichier
    Ecrire "put " & "MonFichier.xlsx" 'Fichier à déposer sur le serveur
    Application.Wait Now + TimeValue("00:00:08") ' Attente de l'exécution du programme
    Ecrire "bye" ' Déconnection du serveur et quitter FTP
End Sub

Code:
Sub Ecrire(MonString As String)
    SendKeys MonString, True ' Envoyer MonString
    SendKeys "~", True ' Touche ENTER
End Sub