2 Listes déroulantes en conflits ?

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 !

thespeedy20

XLDnaute Occasionnel
Bonjour,

j'ai deux listes déroulantes distinctes, une pour la plage B18:B63 et une pour la plage P18:63....dans la feuille Rec

Dans la plage B18:B63 j'obtiens la liste de colonne P18:63 !!!!

Les valeurs de la liste de la B18:B63 se trouve dans la feuille Profs et celle P18:63 dans la feuille Evenements.
les deux listes se retrouvent dans la feuille Rec

VB:
Dim Lst As Range
Dim Lst2 As Range
Dim Liste As String

With Worksheets("Profs")
        Set Lst = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
    End With
    ThisWorkbook.Names.Add "Liste", "=Profs!" & Lst.Address
   
With Worksheets("Rec").Range("B18:B63").Validation
        .Delete
        .Add xlValidateList, , , "=Liste"
        .InputTitle = "Sélection"
        .InputMessage = "Recherche rapide"
    End With
   
   
With Worksheets("Evenements")
        Set Lst2 = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
    End With
    ThisWorkbook.Names.Add "Liste", "=Evenements!" & Lst2.Address
   
With Worksheets("Rec").Range("P18:P63").Validation
        .Delete
        .Add xlValidateList, , , "=Liste"
        .InputTitle = "Sélection"
        .InputMessage = "Recherche rapide"
    End With
 

Pièces jointes

Bonsoir,
Vous parlez de la liste Profs ?
Si c'est ça c'est bizarre chez moi ça marche. J'ai fait un essai avec cette liste :

I1.jpg

Je reviens sur Rec puis sur Profs, et j'obtiens :
I2.jpg

Tout à suivi de N° à Situation administrative.
A vous lire.
Bonsoir.
 
Bien le bonjour,
Le bug vient de votre fonction Trier_Numeroter "Rec", "A18:B63" au lieu de Trier_Numeroter "Rec", "A18:W63" . A rectifier dans votre module.
Le problème maintenant c'est que la renumérotation ne marche plus car des cellules sont fusionnées. Sur appel de la renumérotation il dit :
3.jpg

Je suppose que vous avez fusionné des cellules à cause du Matricule établissement.
d'où deux solutions :
1- Vous modifier le module de renumérotation, mais sans passer par la fonction Sort, ce qui va ne pas être facile.
2- Vous supprimez le matricule établissement dans sa forme actuelle pour qu'il ne prenne qu'une cellule, et comme vous tenez à séparer les chiffres, en clicquant sur la cellule vous ouvrez une ComBox.
3- Idem 2 mais on entre à la main le matricule de l'établissement dans la cellule, et vous faites une macro de sécurité pour vérifier le nombre de caractères par exemple.
A vous lire.
NB : Ci joint la modif à faire pour étendre le tri:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lst As Range
Dim Lst2 As Range
Dim Liste As String
Dim Plg As Range
   If Not Intersect(Target, Range("A18:B63")) Is Nothing Then
      ' Si l'intersection entre la plage modifiée : Target
      '  et la plage utile : c15:d60
      '  n'est pas vide. On appelle donc la procédure : Trier_Numeroter
      '  avec ces deux arguments (nom de la feuiller et adresse' de la plage utile)
      Trier_Numeroter "Rec", "A18:B63"   ' A REMPLACER PAR "A18:W63" DANS LE MODULE SYLVANU/RENUMEROTATION
   End If
 
Content de savoir que cela vous sied.
Dans le module de renumérotation, vous pouvez faire une vérification de cohérence du N° établissement avec le nombre de caractères, ou mieux si vous avez la lsite des établissements faire une liste déroulante ( une de plus ) ce qui simplifierais la tache.
Cordialement.
 
- 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
16
Affichages
3 K
Réponses
4
Affichages
2 K
Retour