XL 2010 [RESOLU] validation sans lignes vides

  • Initiateur de la discussion Initiateur de la discussion cathodique
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cathodique

XLDnaute Barbatruc
Bonjour🙂 me revoilà!

J'aime bien les listes de validation. Alors j'ai trouvé une astuce de Cathy ICI

J'avoue que je ne suis parvenu à mettre en place. Merci, j'ai raté quelque chose ou je ne comprends plus rien.
 

Pièces jointes

Re cath 🙂

Une autre solution, en les créant directement. Dans un module

VB:
Option Explicit

Sub TestValidations()
Dim derlig As Long, i As Long, x As Integer, plage(1 To 5) As String

    On Error Resume Next

    With Feuil1
        .Range("a2:e65536").Validation.Delete
        derlig = .Range("a" & Rows.Count).End(xlUp).Row + 1
        x = 1
        plage(1) = "=Feuil2!$A$2:$A$65536"
        plage(2) = "=Feuil2!$B$2:$B$65536"
        plage(3) = "=Feuil2!$C$2:$C$65536"
        plage(4) = "=Feuil2!$D$2:$D$65536"
        plage(5) = "=Feuil2!$E$2:$E$65536"

        For i = 2 To derlig
            x = x + 1
            With .Range("a" & x)
                .Validation.Add Type:=xlValidateList, Formula1:=plage(1)
            End With
            With .Range("b" & x)
                .Validation.Add Type:=xlValidateList, Formula1:=plage(2)
            End With
            With .Range("c" & x)
                .Validation.Add Type:=xlValidateList, Formula1:=plage(3)
            End With
            With .Range("d" & x)
                .Validation.Add Type:=xlValidateList, Formula1:=plage(4)
            End With
            With .Range("e" & x)
                .Validation.Add Type:=xlValidateList, Formula1:=plage(5)
            End With
        Next i
    End With
End Sub

Dans le module de la feuille

VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("a2:e65000")) Is Nothing Then

    If ActiveCell = "" Then
        Call TestValidations
    Else
        Exit Sub
    End If
End If
End Sub

En PJ classeur exemple
 

Pièces jointes

Dernière édition:
Merci à vous pour votre réactivité.

Cependant, avez-vous visité le lien? Moi je n'y suis pas parvenu à utiliser l'astuce de Cathy sans VBA.

@vgendron 😕: je ne voulais pas passer par une autre liste. Merci quand même.

@Lone-wolf 🙄: Tu adores le VBA n'est-ce pas. Je te remercie moi j'aime bien. Mais de temps à autres, on devrait utiliser quelques astuces assez simples natives d'Excel.

J'ai trouvé l'astuce de Cathy intéressante. Dans le sens où elle utilise 2 listes nommées et une formule.

Merci à vous.
 
Dans le cas proposé par Cathy:
Lorsque vous insérez une liste déroulante liée à une plage, et que les dernières lignes de cette plage sont vides

toi tes lignes vides sont un peu partout dans ta liste...

sinon fais une recherche sur extraction sans doublon, sans ligne vide etc etc..
va sur le site de JBoisgontier: tu devrais y trouver ton bonheur
http://boisgontierjacques.free.fr/
 
@vgendron 🙂: Je me disais bien que j'avais raté quelque chose. "Les dernières lignes vides". Elles ont fait la différences. Merci beaucoup de m'avoir éclairé; je dois changer mes binoculaires😀. Pour le site de Boisgontier, c'est ma référence. Merci quand même.

@Lone-wolf 😵 à qui tu dis! J'en bave aussi et ce, tous les tous jours.

Merci à vous bon wwek-end.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
38
Affichages
1 K
Réponses
5
Affichages
310
Retour