Bonjour,
Je débute en macros et je dois en réaliser une permettant ceci:
- activée depuis le fichier Excel 1, elle doit permettre l'ouverture d'un fichier Excel 2 que l'utilisateur doit pouvoir choisir sur son disque dur
- elle doit permettre la récupération de données sur le fichier 2, informations réparties sur 10 onglets différents, pour les insérer au fichier 1
- elle doit fermer le fichier 2 une fois finie l'extraction
En farfouillant sur le forum j'ai réussi à trouver la solution pour proposer à l'utilisateur d'ouvrir un fichier Excel de son choix.
Cependant, je bloque dans la mesure où je ne sais pas comment modifier le code pour que dans la suite du code la référence au fichier 2 se fasse en fonction du fichier ouvert (quel qu'il soit).
Je ne sais également pas comment faire fermer le fichier 2 par la macro.
Je vous colle ci-dessous où j'en suis arrivé, c'est sommaire mais c'est un début:
En rouge, l'endroit où ça bloque pour le nom du fichier
Merci d'avance de votre aide!
Pierre
Je débute en macros et je dois en réaliser une permettant ceci:
- activée depuis le fichier Excel 1, elle doit permettre l'ouverture d'un fichier Excel 2 que l'utilisateur doit pouvoir choisir sur son disque dur
- elle doit permettre la récupération de données sur le fichier 2, informations réparties sur 10 onglets différents, pour les insérer au fichier 1
- elle doit fermer le fichier 2 une fois finie l'extraction
En farfouillant sur le forum j'ai réussi à trouver la solution pour proposer à l'utilisateur d'ouvrir un fichier Excel de son choix.
Cependant, je bloque dans la mesure où je ne sais pas comment modifier le code pour que dans la suite du code la référence au fichier 2 se fasse en fonction du fichier ouvert (quel qu'il soit).
Je ne sais également pas comment faire fermer le fichier 2 par la macro.
Je vous colle ci-dessous où j'en suis arrivé, c'est sommaire mais c'est un début:
En rouge, l'endroit où ça bloque pour le nom du fichier
Merci d'avance de votre aide!
Pierre
Code:
Sub CalculETPs()
'
' CalculETPs Macro
'
'
'ouverture du fichier source (dernière version de la fiche programme)
Dim Fichier, NomFichier$
Fichier = Application.GetOpenFilename("Fichiers Microsoft Office Excel, *.xlsx")
If Fichier = False Then Exit Sub
If Fichier Like "*\" & ThisWorkbook.Name Then MsgBox "Ouverture non autorisée.": Exit Sub
On Error Resume Next
Workbooks.Open Fichier
On Error GoTo 0
NomFichier = Dir(Fichier)
Workbooks(NomFichier).Activate
'récupération des données une par une par copier coller
Windows( _
[COLOR="#FF0000"] "NomFichier" _[/COLOR]
).Activate
Sheets("CA01 Ecarts Techniques").Select
Range("H14:AK16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Workbooks(NomFichier).Activate
Range("H28:AK30").Select
Range("AK28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"Dir(Fichier)" _
).Activate
Sheets("CA02 Modèle Technique").Select
ActiveWindow.SmallScroll Down:=-6
Range("H14:AN16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F12").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AN30").Select
Range("AN28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA03 Infrastructure").Select
Range("H14:AT16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F18").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AT30").Select
Range("AT28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA05 Sécurité").Select
Range("H14:AT16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F24").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AT30").Select
Range("AT28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F27").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA06 System Management").Select
Range("H14:AK16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F30").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AK30").Select
Range("AK28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F33").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA07 Service Management").Select
Range("H14:AK16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F36").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=12
Windows( _
"NomFichier" _
).Activate
Range("H28:AK30").Select
Range("AK28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F39").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA08 Intégration").Select
Range("H14:AH16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F42").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AH30").Select
Range("AH28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F45").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA09 Env. de Migration").Select
Range("H14:AT16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX1 - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F48").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=15
Windows( _
"NomFichier" _
).Activate
Range("H28:AT30").Select
Range("AT28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F51").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
ActiveWindow.SmallScroll Down:=6
Sheets("CA10 Pilotage Projet Prod.").Select
Range("H14:AT16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F54").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Range("H28:AT30").Select
Range("AT28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F57").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows( _
"NomFichier" _
).Activate
Sheets("CA11Org. Build Prod.Run").Select
Range("H14:AK16").Select
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F60").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=6
Windows( _
"NomFichier" _
).Activate
Range("H28:AK30").Select
Range("AK28").Activate
Application.CutCopyMode = False
Selection.Copy
Windows( _
"XXX - Calcul des ETP CC du 20 Juin à fin Avril avec Avenant (Vue par CA) 20120613 V0.o.xls" _
).Activate
Range("F63").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-39
Range("F6").Select
Application.CutCopyMode = False
Calculate
Sheets("XXX").Select
'ici, manque un code pour faire fermer le fichier 2 par la macro
End Sub