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 !!

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. 123Martin Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci beaucoup,

      C'est exactement ce que je cherchais.
      0