Liste déroulante variable VBA

Martin123 -  
123Martin Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'essaie de faire une liste déroulante sur des cellules multiples par VBA. Ma plage est variable et est dans un onglet séparé de ma liste.

Ma liste déroulante se trouve dans Feuil1 A10:A42 et ma plage de données dans rdp A4 jusqu'à la dernière ligne non vide...

Voici mon code, je suis assez près de la vérité, mais j'obtiens toujours une erreur dans la ligne qui commence par .add type. Je crois que ce qui ne va pas est le Formula1:=

  
Dim LCRN As Integer
Dim Range As Range
Dim ShtC As Worksheet
Dim ShtF As Worksheet

Set ShtF = ThisWorkbook.Sheets("Feuil1")
Set ShtC = ThisWorkbook.Sheets("rdp")

LCRN = ShtC.Range("$A$4").End(xlDown).Row + 1
Set Range = ShtC.Range("$A4:A" & LCRN)

With ShtF.Range(Cells(10, 1), Cells(42, 1)).Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="='" & ShtC.Name & "'!" & Range.Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub


Merci à l'avance !!

A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

manque le .Delete
pour le With, chez moi votre ligne ne marche pas mais rien a voir avec votre soucis

Sub test()
    Dim LCRN           As Integer
    Dim Range          As Range
    Dim ShtC            As Worksheet
    Dim ShtF            As Worksheet
  
    Set ShtF = ThisWorkbook.Sheets("Feuil1")
    Set ShtC = ThisWorkbook.Sheets("rdp")
  
    LCRN = ShtC.Range("$A$4").End(xlDown).Row + 1
    Set Range = ShtC.Range("$A4:A" & LCRN)

    'With ShtF.Range(Cells(10, 1), Cells(42, 1)).Validation
    With ShtF.Range("A10:A42").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="='" & ShtC.Name & "'!" & Range.Address
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
End Sub
0
123Martin Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup,

C'est exactement ce que je cherchais.
0