Bonjour, j'utilisais jusqu'à présent cette macro pour récupérer des données dans un fichier X afin de les mettre dans le fichier AAAA.xls. Ce fichier X est en fait un fichier mis à jour deux fois par mois tandis que le fichier AAAA.xls est un fichier de synthèse dans lequel une ligne = une donnée du fichier X.

Jusqu'à présent, je récupérais mes données dans la plage B29:T29 qui est fixe, et qui contenait des infos par sexe (colonnes B,D,F... les hommes et intercalées, les femmes)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'Copie des données
    Windows(NomFichier).Activate
    Set OngletACopier = Worksheets(NomOngletACopier)
    OngletACopier.Select
    Range("B29:T29").Select
    Application.CutCopyMode = False
    Selection.Copy
 
    'Retour au fichier récapitulatif
    Windows("AAAA.xls").Activate
 
    Set Onglet1 = Worksheets("Récap gen cumul")
    Onglet1.Select
    DerLigne = Range("B65536").End(xlUp).Row
    Onglet1.Cells(DerLigne + 1, 2).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
 
    'Paramétrage des années
    Cells(4, 2).Select
    PremiereAnnee = Cells(4, 2).Value
    DerniereAnnee = Selection.End(xlToRight).Value
    DerniereAnneeRemplie = Annee - 56
 
    'Insertion des cellules de total toutes les 3 cases (pour chaque année)
    Cells(DerLigne + 1, 1).Value = DateValue(Jour & "/" & Mois & "/" & Annee)
    For i = 1 To (DerniereAnneeRemplie - PremiereAnnee + 1)
        Cells(DerLigne + 1, 1 + 3 * i).Select
        Selection.Insert Shift:=xlToRight
        Cells(DerLigne + 1, 1 + 3 * i).Value = Cells(DerLigne + 1, 1 + 3 * i - 2).Value + Cells(DerLigne + 1, 1 + 3 * i - 1).Value
    Next
    Cells(DerLigne + 1, 3 * i - 1).Clear
    Cells(DerLigne + 1, 3 * i).Clear
    Cells(DerLigne + 1, 3 * i + 1).Clear
 
    'Mise en forme
    Rows("6:6").Select
    Selection.Copy
    Cells(DerLigne + 1, 1).Select
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Application.CutCopyMode = False

Mon problème est le suivant. Désormais la table de données n'est plus faite de la même façon, j'ai d'une part (par exemple en B29:K29) les données concernant les hommes et en B59:K59 les données concernant les femmes.
Je récupérais auparavant la ligne entière, je changeais de fichier et je collais dans mon fichier AAAA.xls puis faisais toutes mes opérations sur ce dernier (insertion de cellules pour mettre le total hommes + femmes notamment)

Est-ce que je suis "obligé" maintenant de récupérer une donnée, de changer de fichier avec un Windows("AAAA.xls").Activate de coller, puis de revenir dans le premier fichier pour chaque cellule, sachant que je veux garder ma disposition dans AAAA.xls ? Ca me semble assez couteux en temps et pas très joli... Peut-être que je peux stocker mes données de mon fichier initial dans un tableau ?

Merci d'avance pour vos conseils et réponses.