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