Liste déroulante variable VBA

Fermé
Martin123 - 26 mai 2015 à 15:12
123Martin Messages postés 6 Date d'inscription mardi 26 mai 2015 Statut Membre Dernière intervention 28 mai 2015 - 26 mai 2015 à 16:48
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

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 704
26 mai 2015 à 15:39
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 mardi 26 mai 2015 Statut Membre Dernière intervention 28 mai 2015
26 mai 2015 à 16:48
Merci beaucoup,

C'est exactement ce que je cherchais.
0