niiiiiiiiiico
XLDnaute Occasionnel
Bonjour à tous,
N'y connaissant pas grande chose en VBA, j'ai utilisé l'enregistreur de macro pour automatiser un export de données en fonction d'un fichier. J'ai testé, ça marche bien à 2 subtilités près que j'ai indiqué en rouge dans le code vba ci-après :
1. Si l'utilisateur renomme le fichier la macro ne fonctionne plus. Comment indiquer un nom générique plutôt que le nom_du_fichier.xlm ?
2. La macro ne fonctionne qu'une fois, à chaque fois ça exporte dans un nouveau fichier dont le nom change tout le temps (classeur1, classeur2, etc. classeurn). Là aussi comment forcer un nom de fichier constant pour que la macro ne bugge pas ?
Merci
Voici le code :
Sub Export()
'
' Export Macro
'
'
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Select
Sheets("Distribution").Activate
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Copy
Windows("Elisa_MAQUETTE_V4.1.2 - LIL.xlsm").Activate
Windows("Classeur5").Activate
Cells.Select
Range("O21").Activate
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_jour").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_Prestas_J").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails péna").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dégress_CALC").Select
Sheets("Dégress_CALC").Select
Cells.Select
Range("A1").Activate
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
End Sub
N'y connaissant pas grande chose en VBA, j'ai utilisé l'enregistreur de macro pour automatiser un export de données en fonction d'un fichier. J'ai testé, ça marche bien à 2 subtilités près que j'ai indiqué en rouge dans le code vba ci-après :
1. Si l'utilisateur renomme le fichier la macro ne fonctionne plus. Comment indiquer un nom générique plutôt que le nom_du_fichier.xlm ?
2. La macro ne fonctionne qu'une fois, à chaque fois ça exporte dans un nouveau fichier dont le nom change tout le temps (classeur1, classeur2, etc. classeurn). Là aussi comment forcer un nom de fichier constant pour que la macro ne bugge pas ?
Merci
Voici le code :
VB:
Sub Export()
'
' Export Macro
'
'
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Select
Sheets("Distribution").Activate
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Copy
Windows("Elisa_MAQUETTE_V4.1.2 - LIL.xlsm").Activate
Windows("Classeur5").Activate
Cells.Select
Range("O21").Activate
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_jour").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_Prestas_J").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails péna").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dégress_CALC").Select
Sheets("Dégress_CALC").Select
Cells.Select
Range("A1").Activate
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
End Sub
Sub Export()
'
' Export Macro
'
'
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Select
Sheets("Distribution").Activate
Sheets(Array("Distribution", "Détails_jour", "Détails_Prestas_J", "Détails péna", _
"Dégress_CALC")).Copy
Windows("Elisa_MAQUETTE_V4.1.2 - LIL.xlsm").Activate
Windows("Classeur5").Activate
Cells.Select
Range("O21").Activate
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_jour").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails_Prestas_J").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Détails péna").Select
Cells.Select
Range("O21").Activate
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Dégress_CALC").Select
Sheets("Dégress_CALC").Select
Cells.Select
Range("A1").Activate
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A2").Select
End Sub
Dernière édition: