Bonjour,

J'ai bricolé une macro pour mettre à jour des fichier du personnel. Pour ce faire il copie le matricule dans un tableau pour le coller dans un autre tableau avec formule de vlookup qui va donner les connexions, pauses, et autres de l'employer. Ces informations sont ensuite copiées / collées valeur sur le fichier du personnel correspondant au nom à coté du matricule dans le tableau où il va le chercher.

La macro est assez imparfaite car pour l'instant je dois lui dire à chaque fois où aller copier le matricule suivant (en rouge) au lieu de lui dire de prendre le sivant dans la cellule du dessous et terminer en tapant update sur la même ligne dans une cellule du tableau (en orange). La macro est donc très volumineuse, j'ai du employer un macro d'ensemble qui lance des macros succèssiblement car l'opération doit se répéter pour bien faire +- 300 fois (300 matricules). J'aimerais faire une boucle jusqu'à ce qu'il arrive à une cellule vide (la fin du tableau).

Voici le code :

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Sub UPDATE_Accent_1()

    Sheets("Payroll UPDATE").Select
    Range("A4").Select
    Selection.Copy
    Sheets("bco UPDATE").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C9:T372").Select
    Selection.Copy
    Range("B1").Select
    Workbooks.Open Filename:= _
        Range("A6") _
        , UpdateLinks:=0
    ActiveWindow.Visible = False
    Windows(Range("B3") & "_" & Range("A2") & "_" & Range("A3") & "_Interview.xlsx").Visible = True
    Sheets("LISTING Aanwezigheid 2018").Select
    Range("J62").Select
    ActiveWindow.ScrollRow = 1
    Range("C9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D11").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Payroll UPDATE").Select
    Range("D4").Select
    ActiveCell.FormulaR1C1 = "UPDATED"
    
    Range("A5").Select
    Selection.Copy
    Sheets("bco UPDATE").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C9:T372").Select
    Selection.Copy
    Range("B1").Select
    Workbooks.Open Filename:= _
        Range("A6") _
        , UpdateLinks:=0
    ActiveWindow.Visible = False
    Windows(Range("B3") & "_" & Range("A2") & "_" & Range("A3") & "_Interview.xlsx").Visible = True
    Sheets("LISTING Aanwezigheid 2018").Select
    Range("J62").Select
    ActiveWindow.ScrollRow = 1
    Range("C9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("D11").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Payroll UPDATE").Select
    Range("D5").Select
    ActiveCell.FormulaR1C1 = "UPDATED"
etc...


D'avance merci beaucoup.