Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 
@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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…