Fusionner deux codes VBA
Bonjour, tout le monde. N'ayant aucune connaissance en vba, je fais mes macros avec l'enregistreur de macro. Ce que je veux faire ce coup ci, c'est ouvrir un deuxieme fichier (export_données), copier des données de mon fichier sources "tdb automatisation", les recoller dans mon deuxieme fichier export_données, puis effectuer une macro (macro1) du deuxieme fichier.
Donc j'ai dejà enregistré ma macro (premier code) puis fais une deuxieme macro (codes que j'ai trouvé sur internet) qui m'effectue la macro de mon deuxieme fichier. Donc les deux séparement ca fonctionne, mais si je mets Application.Run "Export_données.xls!Module1.Macro1" après Windows("tdb automatisation.xls").Activate
, la macro de mon deuxieme fichier ne s'active pas.
Moi ce que j'aimerai c'est que la macro1 du fichier 2 (export_données) s'effectue juste après la macro enregistrée avec l'enregistreur. Vous pouvez m'aider svp?
Sub Export()
'
' export Macro
' Macro enregistrée le 03/06/2011 par bjop
'
'
ChDir "Q:\Controle de gestion\0200 Stagiaire"
Workbooks.Open Filename:= _
"Q:\Controle de gestion\0200 Stagiaire\Export_données.xls"
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-12
Range("A22:E34").Select
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-42
Range("A22").Select
ActiveWindow.SmallScroll Down:=-18
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=18
Range("A54:J201").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=36
Range("A54").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-66
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
Range("AC16").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-54
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Windows("tdb automatisation.xls").Activate
Range("AC17").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=21
Range("A36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=15
Windows("tdb automatisation.xls").Activate
End Sub
_____________________________________________________________________
Sub Export2()
Application.Run "Export_données.xls!Module1.Macro1"
End SubBonjour,
Et comme ça?
Sub Export()
'
' export Macro
' Macro enregistrée le 03/06/2011 par bjop
'
'
ChDir "Q:\Controle de gestion\0200 Stagiaire"
Workbooks.Open Filename:= _
"Q:\Controle de gestion\0200 Stagiaire\Export_données.xls"
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-12
Range("A22:E34").Select
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-42
Range("A22").Select
ActiveWindow.SmallScroll Down:=-18
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=18
Range("A54:J201").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=36
Range("A54").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-66
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
Range("AC16").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-54
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Windows("tdb automatisation.xls").Activate
Range("AC17").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=21
Range("A36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=15
Windows("tdb automatisation.xls").Activate
Application.Run "Export_données.xls!Module1.Macro1"
End Subnan ca ca marche pas j'ai essayé. En fait la Macro1 c'est masquer des lignes. Je veux qu'une fois que j'ai copié toutes les données de mon fichier source et recollé dans le fichier export_données, et bien il faut que la macro1 du fichier export_données me masque les lignes vides (une macro que j'ai deja vu avec des personnes sur ce forum).
Donc si je fais les deux macro une apres l'autre (d'abord celle enregistrée, puis Application.Run "Export_données.xls!Module1.Macro1") ca fait l'effet que je veux, mais en mettant juste derriere Application.Run "Export_données.xls!Module1.Macro1,ca ne marche pas le masque. Ca existe pas un code qui dit d'abord faire la macro enregistrée puis, après, activer la macro de l'autre fichier?
Et si tu appels Export2 dans Export?
Sub Export()
'
' export Macro
' Macro enregistrée le 03/06/2011 par bjop
'
'
ChDir "Q:\Controle de gestion\0200 Stagiaire"
Workbooks.Open Filename:= _
"Q:\Controle de gestion\0200 Stagiaire\Export_données.xls"
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-12
Range("A22:E34").Select
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-42
Range("A22").Select
ActiveWindow.SmallScroll Down:=-18
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=18
Range("A54:J201").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=36
Range("A54").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-66
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
Range("AC16").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-54
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Windows("tdb automatisation.xls").Activate
Range("AC17").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=21
Range("A36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=15
Windows("tdb automatisation.xls").Activate
Call Export2
End Sub
_____________________________________________________________________
Sub Export2()
Application.Run "Export_données.xls!Module1.Macro1"
End Subtoujours pas hélas...
C'est peut etre qu'il les execute en meme temps? Il faut faire d'abord une et apres l'autre.
Les deux séparement ca fonctionne, mais ensembe non... Je ne sais pas comment faire
Non elles ne s'exécutent pas en même temps, seulement quand tu l'appel. Essai en activant ton deuxième tableau après avoir appeler la macro :
Sub Export()
'
' export Macro
' Macro enregistrée le 03/06/2011 par bjop
'
'
ChDir "Q:\Controle de gestion\0200 Stagiaire"
Workbooks.Open Filename:= _
"Q:\Controle de gestion\0200 Stagiaire\Export_données.xls"
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-12
Range("A22:E34").Select
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-42
Range("A22").Select
ActiveWindow.SmallScroll Down:=-18
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=18
Range("A54:J201").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=36
Range("A54").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("tdb automatisation.xls").Activate
ActiveWindow.SmallScroll Down:=-66
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
Range("AC16").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=-54
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Windows("tdb automatisation.xls").Activate
Range("AC17").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Export_données.xls").Activate
ActiveWindow.SmallScroll Down:=21
Range("A36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=15
Call Export2
Windows("tdb automatisation.xls").Activate
End Sub
_____________________________________________________________________
Sub Export2()
Application.Run "Export_données.xls!Module1.Macro1"
End SubJe vais essayer de mon coter.
ah ce coup ci ca marche ! je te remercie beaucoup. a+