Exécuter une macro sur un pc distant d'un fichier Excel ouvert
Bonjour forum,
J'aurais besoin d'aide car là ce que j'ai fais ne fonctionne absolument pas.
J'ai crée un réseau local simple avec un dossier partagé ou j'ai mon fichier excel, j'ai accès aux deux pc et au dossier partagé via les deux pc.Je voudrais lancer une macro depuis le pc1 sur un fichier excel ouvert qui se trouve sur le pc2 , j'ai fais cette macro simple mais cela ne fonctionne pas.
Votre aide serait la bienvenue
Sub ExécuterMacroDistante()
Dim cheminFichier As String
Dim appExcel As Object
Dim classeur As Object
' Spécifiez le chemin complet vers le fichier distant
cheminFichier = "\\PCprincipal\partage\Classeur20.xlsm"
' Créez une instance de l'application Excel sur le PC distant
Set appExcel = CreateObject("Excel.Application")
' Ouvrez le classeur distant en lecture-écriture
Set classeur = appExcel.Workbooks.Open(cheminFichier, 0, True)
' Exécutez la macro Macro2
appExcel.OnTime Now + TimeValue("00:00:02"), "Macro2"
' Fermez le classeur en enregistrant les modifications
classeur.Close SaveChanges:=False
' Quittez l'application Excel sur le PC distant
appExcel.Quit
' Libérez la mémoire
Set classeur = Nothing
Set appExcel = Nothing
End Subla macro2 est un truc très simple
Sub Macro2()
'
' Macro2 Macro
'
'
Range("A1:B30").Select
Selection.ClearContents
End Sub- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Essayer plutôt cette instruction :
' Exécutez la macro Macro2
appExcel.Run classeur.Name & "!" & "Macro2"
' Fermez le classeur sans enregistrer les modifications
classeur.Close SaveChanges:=FalseBonsoir thev, merci de ta réponse cela semble fonctionner sauf que je ne sais pas si c'est possible, qu'il exécute la macro mais sur l'autre pc (pc2) car là en faite il ouvre le fichier et exécute la macro sur le pc qui commande l'action on va dire pc1. J'ai testé ça mais il dit que le fichier est introuvable.
Sub ExécuterMacroDistante()
Dim cheminFichier As String
Dim appExcel As Object
Dim classeur As Object
' Spécifiez le chemin complet vers le fichier distant
cheminFichier = "\\PCprincipal\Users\moi\Desktop\Classeur20.xlsm"
' Créez une instance de l'application Excel sur le PC distant
Set appExcel = CreateObject("Excel.Application")
' Ouvrez le classeur distant en lecture-écriture
Set classeur = appExcel.Workbooks.Open(cheminFichier, 0, True)
' Exécutez la macro Macro2
appExcel.Run classeur.Name & "!" & "Macro2"
' Fermez le classeur en enregistrant les modifications
'classeur.Close SaveChanges:=False
' Quittez l'application Excel sur le PC distant
'appExcel.Quit
' Libérez la mémoire
Set classeur = Nothing
Set appExcel = Nothing
End Sub- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
mais il dit que le fichier est introuvable.
Votre macro2 doit se trouver sur le PC2 et non sur le PC1.
En faite il dit que le fichier est introuvable car j'ai mis le fichier sur le bureau du pc2 "\\PCprincipal\Users\moi\Desktop\Classeur20.xlsm" et que le bureau je ne l'ai pas partagé mais le problème reste entier, ce que je veux c'est qu'il ouvre le fichier mais sur le pc2 et non sur le pc1 qui exécute la macro ExécuterMacroDistante. En faite dans le principe j'aimerai qu'il ouvre le fichier un peu a la façon d'une aide a distance sans pour autant ouvrir les fichiers sur le pc maître. Et le fichier n'est pas un fichier partagé car il n'aura pas le même nom ni la même fonction que celui dont je veux exécuter sur le pc1
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Si vous ne voulez pas impliquer votre PC1, vous transformez votre procédure Sub en script VBS.
' Spécifiez le chemin complet vers le fichier distant
cheminFichier = "\\PCprincipal\Users\moi\Desktop\Classeur20.xlsm"
' Créez une instance de l'application Excel sur le PC distant
Set appExcel = CreateObject("Excel.Application")
' Ouvrez le classeur distant en lecture-écriture
Set classeur = appExcel.Workbooks.Open(cheminFichier, 0, True)
' Exécutez la macro Macro2
appExcel.Run classeur.Name & "!" & "Macro2"
' Fermez le classeur en enregistrant les modifications
'classeur.Close SaveChanges:=False
' Quittez l'application Excel sur le PC distant
'appExcel.Quit
' Libérez la mémoire
Set classeur = Nothing
Set appExcel = NothingEt vous exécutez ce script.
En faite même avec ce script modifié sans macro juste ouvrir un fichier, car excel était invisible, il ouvre sur le pc qui commande et non le pc esclave, dès que je met le fichier sur un endroit non partagé mais avec la bonne adresse, il ne trouve rien et dit fichier introuvable, j'ai aussi essayé avec powershell, ça fonctionne mais ça ouvre tous sur le pc maître
On Error Resume Next
' Chemin vers un fichier Excel en réseau
cheminFichierReseau = "\\PC-Esclave\partage\FichierExcel.xlsm"
' Créez une instance de l'application Excel
Set appExcel = CreateObject("Excel.Application")
If Err.Number <> 0 Then
MsgBox "Erreur lors de la création de l'objet Excel : " & Err.Description, vbCritical, "Erreur"
WScript.Quit
End If
' Ouvrez le classeur en lecture seule
Set classeur = appExcel.Workbooks.Open(cheminFichierReseau)
If Err.Number <> 0 Then
MsgBox "Erreur lors de l'ouverture du classeur : " & Err.Description, vbCritical, "Erreur"
WScript.Quit
End If
' Rendre Excel visible
appExcel.Visible = True
' Fermez le classeur sans enregistrer les modifications
'classeur.Close False
' Quittez l'application Excel
'appExcel.Quit
' Libérez la mémoire
Set classeur = Nothing
Set appExcel = Nothing
On Error GoTo 0 ' Désac