Bonjour à tous,
Voici le contexte, 2 fichiers Excel, un contient le nom des salariés et le second sert à faire des demandes d'avance. Il s'avère que la liste des salariés évolue très fréquemment. Je souhaite donc créer une liste automatiquement à l'ouverture du fichier du personnel et de la récupérer dans le fichier d'avance.
Dans le fichier d'avance j'ai fait la validation de cette liste "dynamique".
Malheureusement, elle reste vide. Voici donc le code que j'ai mis à l'ouverture du fichier du personnel.
Tout se passe "à priori" bien, la liste est créée mais lorsque je regarde dans le gestionnaire de noms, je vois bien qu'elle est vide. Je me dis que cela n'est pas la bonne syntaxe "RefersTo:="=Liste!A1:Als". Mais mes différentes tentatives sont restées infructueuses.
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 Sub Lst() Dim la As Integer Dim ls As Integer la = Workbooks("personnel.xlsm").Sheets("Salaires").Range("A65536").End(xlUp).Row ls = Workbooks("personnel.xlsm").Sheets("Liste").Range("A65536").End(xlUp).Row ActiveWorkbook.Sheets("Liste").Activate Workbooks("personnel.xlsm").Sheets("Liste").Range("A:A").Select Selection.Clear ActiveWorkbook.Sheets("Salaires").Activate ActiveWorkbook.Sheets("Salaires").Range("A2:A" & la).Select Selection.Copy ActiveWorkbook.Sheets("Liste").Range("A:A").PasteSpecial xlValue ActiveWorkbook.Sheets("Liste").Names.Add Name:="Salaries", RefersTo:="=Liste!A1:Als" End Sub
J'ai essayé avec une boucle For mais j'ai une erreur sur la non définition du nom de la variable liste.additem...j'avoue que je bug là.
Alors comment la remplir ?
Merci d'avance pour toute vos suggestions.
Cordialement,
Fred
Partager