@TonyNiort79 : c'est un peu plus compliqué, je le lance d'un serveur (une VM) vers un autre serveur (une autre VM). Sinon oui ton Shell est ce que je cherche à faire.
@Jean Philippe : je passe par une fonction trouvé sur le net:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Public Function OuvrirFichier(MonFichier As String)
On Error GoTo OuvertureFichierErreur
'vérifie si le fichier existe
If Len(Dir(MonFichier)) = 0 Then
OuvrirFichier = False
Exit Function
Else
End If
'ouvre le fichier dans son application associée
Dim MonApplication As Object
Set MonApplication = CreateObject("Shell.Application")
MonApplication.Open (MonFichier)
OuvrirFichier = True
Set MonApplication = Nothing
Exit Function
OuvertureFichierErreur:
Set MonApplication = Nothing
OuvrirFichier = False
End Function |
Et je lance la fonction le plus simplement du monde à la manière d'un Shell
OuvrirFichier ("\\IP_ServeurB\MonChemin\MonFichier.bat")
Sur un fichier classique (type Word sans droits particuliers) le fichier est bien ouvert donc le chemin est reconnu.
*J'ajoute qu'avec mon .bat j'ai une fenêtre d'avertissement de sécurité qui s'ouvre me demandant si je suis sûr du fichier à ouvrir. Preuve qu'il va jusqu'au bout!
Mais le job du .bat n'est pas réalisé.
Et oui je penche plus (j'espère ne pas tomber...
) à une histoire de droit d'où mon laïus sur le compte admin de domaine.
Alors oui le scheduler pourrait me sauver la vie, mais du coup si j'empreinte cette voie, comment(en VBA) lancer une tâche scheduler depuis un serveur vers un autre serveur? Je vais essayer de chercher ça déjà.
Donc si je récap depuis mon Serveur_A de partage de fichiers :
1. au lancement d'Excel mon VBA lancerait une commande qui lancerait une tâche schedulée sur mon Serveur_B.
2. cette tâche schedulée n'aurait d'autre fonction que de lancer MonFichier.bat, qui lui-même lance un Fichier.sql.
3. le résultat de ce SQL ( Fichier.LST ou csv peu importe) sera dans un dossier de mon Serveur_B que je dois importer dans mon Excel (ça je sais faire normalement)
Voilà en essayant d'être le plus exhaustif possible.
Partager