Bonjour,
est il possible d'exécuter une macro a partir d'un fichier xls pour que cette macro agisse sur un autre fichier xls.
si oui, code dois-je écrire
bien cordialement
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michd
Bonjour, Oui c'est possible. A ) Tu dois d'abord ouvrir le fichier sur lequel tu veux appliquer la macro. Dim Wk As workbook Set Wk = workbooks("C:CheminNomDuFichier.xlsm") La variable Wk représente ton classeur sur lequel tu veux exécuter la macro, dans ton code, il s'agit d'utiliser cette variable plutôt que l'expression Workbooks"(NomDuFichier.xlsm") Exemple : Il faut apprendre à travailler avec les expressions With ... End With With Wk signifie que les lignes de code s'adressent à ce classeur With .Worksheets("Feuil1") 'observe le "." devant Worksheets , il est obligatoire, il signifie que la feuil1 appartient au classeur Wk .Range("A1") = 25 'C'est la même chose. La cellule A1 appartient à la feuil1 (observe le "." devant range". comme If ... End If , Lorsque l'on a terminé de travaillé avec un objet, on ferme avec End With With Wk With .Worksheets("Feuil1") .Range("A1") = 25 .Range("A1") .Interior.Color = Rgb(125,125,125) .Range("A10").value = "toto" .Range("a10").Font.Size = 25 End With End With MichD
Bonjour,
Oui c'est possible.
A ) Tu dois d'abord ouvrir le fichier sur lequel tu veux appliquer la macro.
Dim Wk As workbook
Set Wk = workbooks("C:CheminNomDuFichier.xlsm")
La variable Wk représente ton classeur sur lequel tu veux exécuter la macro,
dans ton code, il s'agit d'utiliser cette variable plutôt que l'expression
Workbooks"(NomDuFichier.xlsm")
Exemple : Il faut apprendre à travailler avec les expressions With ... End
With
With Wk signifie que les lignes de code s'adressent à ce classeur
With .Worksheets("Feuil1") 'observe le "." devant Worksheets , il est
obligatoire, il signifie que la feuil1 appartient au classeur Wk
.Range("A1") = 25 'C'est la même chose. La cellule A1 appartient à la
feuil1 (observe le "." devant range".
comme If ... End If , Lorsque l'on a terminé de travaillé avec un objet,
on ferme avec End With
With Wk
With .Worksheets("Feuil1")
.Range("A1") = 25
.Range("A1") .Interior.Color = Rgb(125,125,125)
.Range("A10").value = "toto"
.Range("a10").Font.Size = 25
End With
End With
Bonjour, Oui c'est possible. A ) Tu dois d'abord ouvrir le fichier sur lequel tu veux appliquer la macro. Dim Wk As workbook Set Wk = workbooks("C:CheminNomDuFichier.xlsm") La variable Wk représente ton classeur sur lequel tu veux exécuter la macro, dans ton code, il s'agit d'utiliser cette variable plutôt que l'expression Workbooks"(NomDuFichier.xlsm") Exemple : Il faut apprendre à travailler avec les expressions With ... End With With Wk signifie que les lignes de code s'adressent à ce classeur With .Worksheets("Feuil1") 'observe le "." devant Worksheets , il est obligatoire, il signifie que la feuil1 appartient au classeur Wk .Range("A1") = 25 'C'est la même chose. La cellule A1 appartient à la feuil1 (observe le "." devant range". comme If ... End If , Lorsque l'on a terminé de travaillé avec un objet, on ferme avec End With With Wk With .Worksheets("Feuil1") .Range("A1") = 25 .Range("A1") .Interior.Color = Rgb(125,125,125) .Range("A10").value = "toto" .Range("a10").Font.Size = 25 End With End With MichD
jeje02
Le mardi 01 Mai 2018 à 17:31 par jeje02 :
Bonjour, est il possible d'exécuter une macro a partir d'un fichier xls pour que cette macro agisse sur un autre fichier xls. si oui, code dois-je écrire bien cordialement
bonjour Michd merci d'avoir pris le temps de me répondre n'ayant pas compris toute les subtilités que tu m'as énoncé, tu trouveras ci dessous, la macro qui me permet de permuter automatiquement d'une feuille à l'autre toutes les 25 sec dans le fichier toto1 j'aimerai que cette macro puisse s'exécuter dans le fichier toto2 à partir du fichier toto1, bien sûre sans que cette macro agisse dans le fichier toto1 cordialement Option Explicit Dim T As Date Sub Ma_Sub() T = Now + TimeValue("00:00:25") Application.OnTime T, "Ma_Sub" If ActiveSheet.Name = "Feuil7" Then Worksheets("Feuil10").Select Else Worksheets("Feuil7").Select End If End Sub Sub Arrêt_procédure() Dim Message If Message = vbYes Then On Error Resume Next Application.OnTime T, "Ma_Sub", , False End If End Sub
Le mardi 01 Mai 2018 à 17:31 par jeje02 :
> Bonjour,
> est il possible d'exécuter une macro a partir d'un fichier xls pour que
> cette macro agisse sur un autre fichier xls.
> si oui, code dois-je écrire
> bien cordialement
bonjour Michd
merci d'avoir pris le temps de me répondre
n'ayant pas compris toute les subtilités que tu m'as énoncé, tu trouveras ci dessous, la macro qui me permet de permuter automatiquement d'une feuille à l'autre toutes les 25 sec dans le fichier toto1
j'aimerai que cette macro puisse s'exécuter dans le fichier toto2 à partir du fichier toto1, bien sûre sans que cette macro agisse dans le fichier toto1
cordialement
Option Explicit
Dim T As Date
Sub Ma_Sub()
T = Now + TimeValue("00:00:25")
Application.OnTime T, "Ma_Sub"
If ActiveSheet.Name = "Feuil7" Then
Worksheets("Feuil10").Select
Else
Worksheets("Feuil7").Select
End If
End Sub
Sub Arrêt_procédure()
Dim Message
If Message = vbYes Then
On Error Resume Next
Application.OnTime T, "Ma_Sub", , False
End If
End Sub
Bonjour, est il possible d'exécuter une macro a partir d'un fichier xls pour que cette macro agisse sur un autre fichier xls. si oui, code dois-je écrire bien cordialement
bonjour Michd merci d'avoir pris le temps de me répondre n'ayant pas compris toute les subtilités que tu m'as énoncé, tu trouveras ci dessous, la macro qui me permet de permuter automatiquement d'une feuille à l'autre toutes les 25 sec dans le fichier toto1 j'aimerai que cette macro puisse s'exécuter dans le fichier toto2 à partir du fichier toto1, bien sûre sans que cette macro agisse dans le fichier toto1 cordialement Option Explicit Dim T As Date Sub Ma_Sub() T = Now + TimeValue("00:00:25") Application.OnTime T, "Ma_Sub" If ActiveSheet.Name = "Feuil7" Then Worksheets("Feuil10").Select Else Worksheets("Feuil7").Select End If End Sub Sub Arrêt_procédure() Dim Message If Message = vbYes Then On Error Resume Next Application.OnTime T, "Ma_Sub", , False End If End Sub
Michd
Bonjour, Colle ce code dans un module STANDARD de ton classeur titi. On ne peut pas utiliser "Select" si le classeur toto.xlsm n'est pas le classeur actif. J'ai modifié "Select" pour "Activate" À chaque 25 secondes, il va y avoir un changement de feuille active, et c'est le classeur toto.xlsm qui va aussi s'activer! Option Explicit Dim T As Date Dim Wk As Workbook '--------------------------------------------------------------- Sub Ma_Sub() Application.ScreenUpdating = False T = Now + TimeValue("00:00:25") With Wk If .ActiveSheet.Name = "Feuil7" Then .Worksheets("Feuil10").Activate Else .Worksheets("Feuil7").Activate End If End With Application.OnTime T, "Ma_Sub" End Sub '--------------------------------------------------------------- Sub Départ_procédure() 'Si le fichier Toto est ouvert Set Wk = Workbooks("Toto.xlsm") 'ou .xlsx 'C'est l'un ou l'autre...mais le fichier toto.xlsm 'doit être ouvert 'Si le fichier toto est fermé 'Set Wk = Workbooks.Open("C:usersTonProfilDocuments" & "Toto.xlsm") 'Choisir la feuille du fichier toto qui va être sélectionné en partant. Wk.Worksheets("Feuil7").Activate Call Ma_Sub End Sub '--------------------------------------------------------------- Sub Arrêt_procédure() On Error Resume Next Application.OnTime T, "Ma_Sub", T, False End Sub '--------------------------------------------------------------- MichD
Bonjour,
Colle ce code dans un module STANDARD de ton classeur titi.
On ne peut pas utiliser "Select" si le classeur toto.xlsm n'est pas le classeur actif. J'ai modifié
"Select" pour "Activate"
À chaque 25 secondes, il va y avoir un changement de feuille active, et c'est le classeur toto.xlsm
qui va aussi s'activer!
Option Explicit
Dim T As Date
Dim Wk As Workbook
'---------------------------------------------------------------
Sub Ma_Sub()
Application.ScreenUpdating = False
T = Now + TimeValue("00:00:25")
With Wk
If .ActiveSheet.Name = "Feuil7" Then
.Worksheets("Feuil10").Activate
Else
.Worksheets("Feuil7").Activate
End If
End With
Application.OnTime T, "Ma_Sub"
End Sub
'---------------------------------------------------------------
Sub Départ_procédure()
'Si le fichier Toto est ouvert
Set Wk = Workbooks("Toto.xlsm") 'ou .xlsx
'C'est l'un ou l'autre...mais le fichier toto.xlsm
'doit être ouvert
'Si le fichier toto est fermé
'Set Wk = Workbooks.Open("C:usersTonProfilDocuments" & "Toto.xlsm")
'Choisir la feuille du fichier toto qui va être sélectionné en partant.
Wk.Worksheets("Feuil7").Activate
Call Ma_Sub
End Sub
'---------------------------------------------------------------
Sub Arrêt_procédure()
On Error Resume Next
Application.OnTime T, "Ma_Sub", T, False
End Sub
'---------------------------------------------------------------
Bonjour, Colle ce code dans un module STANDARD de ton classeur titi. On ne peut pas utiliser "Select" si le classeur toto.xlsm n'est pas le classeur actif. J'ai modifié "Select" pour "Activate" À chaque 25 secondes, il va y avoir un changement de feuille active, et c'est le classeur toto.xlsm qui va aussi s'activer! Option Explicit Dim T As Date Dim Wk As Workbook '--------------------------------------------------------------- Sub Ma_Sub() Application.ScreenUpdating = False T = Now + TimeValue("00:00:25") With Wk If .ActiveSheet.Name = "Feuil7" Then .Worksheets("Feuil10").Activate Else .Worksheets("Feuil7").Activate End If End With Application.OnTime T, "Ma_Sub" End Sub '--------------------------------------------------------------- Sub Départ_procédure() 'Si le fichier Toto est ouvert Set Wk = Workbooks("Toto.xlsm") 'ou .xlsx 'C'est l'un ou l'autre...mais le fichier toto.xlsm 'doit être ouvert 'Si le fichier toto est fermé 'Set Wk = Workbooks.Open("C:usersTonProfilDocuments" & "Toto.xlsm") 'Choisir la feuille du fichier toto qui va être sélectionné en partant. Wk.Worksheets("Feuil7").Activate Call Ma_Sub End Sub '--------------------------------------------------------------- Sub Arrêt_procédure() On Error Resume Next Application.OnTime T, "Ma_Sub", T, False End Sub '--------------------------------------------------------------- MichD
jeje02
Le mardi 01 Mai 2018 à 17:31 par jeje02 :
Bonjour, est il possible d'exécuter une macro a partir d'un fichier xls pour que cette macro agisse sur un autre fichier xls. si oui, code dois-je écrire bien cordialement
Encore merci MichD Je fais va ce soir Très cordialement
Le mardi 01 Mai 2018 à 17:31 par jeje02 :
> Bonjour,
> est il possible d'exécuter une macro a partir d'un fichier xls pour que
> cette macro agisse sur un autre fichier xls.
> si oui, code dois-je écrire
> bien cordialement
Encore merci MichD
Je fais va ce soir
Très cordialement
Bonjour, est il possible d'exécuter une macro a partir d'un fichier xls pour que cette macro agisse sur un autre fichier xls. si oui, code dois-je écrire bien cordialement
Encore merci MichD Je fais va ce soir Très cordialement