Bonjour,

je souhaite mettre une liste de données avec le nom des feuilles actuelles.

Ca fonctionne à la condition d'utiliser "selection" impossible d'utiliser ma variable passée en paramètre.

Appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    Dim Rng As Range
 
    Set Rng = Range("C2:C" & Range("C65000").End(xlUp).Row)
 
    Call CreationListeValidationNomOnglet(Rng)
    Set Rng = Nothing
Procedure
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
Sub CreationListeValidationNomOnglet(Rng As Range)
    Dim sh
    Dim Feuil As String
 
    '--- Liste des feuilles actuelles
    Feuil = ""                    'Initialise
    For Each sh In ActiveWorkbook.Sheets
        Feuil = Feuil & "," & sh.Name
    Next sh
    Feuil = Mid(Feuil, 2)         'Elimine le premier séparateur
 
    '--- Place la liste dans la liste de validation
    'Affectation sur la plage Rng
    'Debug.Print Rng.Address      >>> c'est OK
    'Rng.Select                         >> test pour provoquer une "selection"
    'DoEvents                           >> test 'temporisation"
    With Selection.Validation      '>>> Ne fonctionne pas avec Rng
        '.Delete
        .Add Type:=xlValidateList, _
             AlertStyle:=xlValidAlertStop, _
             Operator:=xlBetween, _
             Formula1:=Feuil
    End With
End Sub
Pourriez-vous me dire ce qui ce va pas ?

Merci.

ESVBA