Comment lancer un script .bat depuis une macro VBA sous Excel365
Bonjour, je cherche à lancer depuis Excel365 un script .bat depuis une macro
voilà ce que je tape :
et lorsque je j'éxécute, j'ai le message d'erreur suivant :
"Argument ou appel de procédure incorrect "
Quelqu'un à une idée ?
Merci
Hufi
Merci pour votre aide;... A noter que j'ai le meme problème si je mets le chemin complet dans le premier paramètre du script .bat
Bonjour,
Aucune anomalie dans la formulation
J'ai fait un essai avec un Bat Perso et cela fonctionne sans erreur.
retval = Shell("D:\Mes Documents\Perso.bat", vbNormalFocus)
Le problème provient peut-être du fichier Bat
A+
Merci pour ta confirmation....
Je pense que c'est lié à des restrictions mises en place par ma société qui interdit des activations de scripts via des macros car dans les notifications je retrouve les messages suivants :
ce qui est étonnant car via le planificateur de tâches, je peux activer mon .bat :-)
Bonjour,
Il est possible que l'administrateur système interdise ce genre de manip dans excel. Mais il est également possible que la configuration par défaut dans ton entreprise bloque cette possibilité sans vraiment l'interdire.
Je veux dire par la qu'il est plus facile d'interdire des actions qui pourraient être exécutée à l'insu des utilisateurs que de courir après une solution réparation.
Dans cette optique, je t'invite à vérifier les options des macros dans la configuration d'excel. Il est possible qu'il s'agisse tout simplement de l'autoriser.
Si les tâches planifiées fonctionne
Function AjouterTachePlanifiee(nomTache As String, cheminProgramme As String, _
arguments As String, heureDemarrage As String, _
joursSemaine As String) As Boolean
On Error GoTo Erreur
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
' Commande pour créer la tâche planifiée
Dim commande As String
commande = "schtasks /create /tn """ & nomTache & """ /tr """ & cheminProgramme & " " & arguments & """ /sc weekly /d " & joursSemaine & " /st " & heureDemarrage & " /f"
' Exécuter la commande
WshShell.Run commande, 0, True
' Libérer les objets
Set WshShell = Nothing
' Si nous arrivons ici, tout s'est bien passé
AjouterTachePlanifiee = True
Exit Function
Erreur:
' En cas d'erreur, retourner False
AjouterTachePlanifiee = False
End FunctionTest
Sub TesterAjouterTachePlanifiee()
Dim resultat As Boolean
Dim nomTache As String
Dim cheminProgramme As String
Dim arguments As String
Dim heureDemarrage As String
Dim joursSemaine As String
nomTache = "MaTachePlanifiee"
cheminProgramme = "C:\Chemin\Vers\VotreProgramme.exe"
arguments = "" ' Ajoutez les arguments si nécessaire
heureDemarrage = "10:00" ' Format 24 heures, ex: "14:30"
joursSemaine = "MON,TUE,WED,THU,FRI" ' Jours de la semaine
resultat = AjouterTachePlanifiee(nomTache, cheminProgramme, arguments, heureDemarrage, joursSemaine)
If resultat Then
MsgBox "Tâche planifiée ajoutée avec succès.", vbInformation
Else
MsgBox "Échec de l'ajout de la tâche planifiée.", vbCritical
End If
End SubMerci beaucoup pour ce code.....J'avoue ne pas être bien sur de comprendre; En effet, mon besoin serait d'exécuter une tâche planifiée lors de l'appui sur un bouton d'un fichier excel et non d'ajouter une tâche planifiée
Merci en tout cas.