Recherche aphabétique sur liste

  • Initiateur de la discussion Initiateur de la discussion gg13
  • 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 !

gg13

XLDnaute Occasionnel
Bonjour le forum.
Je vous explique mon problème.
Dans une colonne A17 jusqu’a A2017 par exemple j’ai 2000 noms classés par ordre alphabétique.
Cette colonne apparaît dans une zone de liste sur un USF.
Je voudrai pour éviter de dérouler toute la liste aller par exemple directement au premier nom commençant par un C et que la liste débute sur cette cellule.
Je sais faire en lisant dans chaque case, testant la première lettre et passant à la ligne suivante avec la fonction offset.
Mais en parcourant les sujets sur le forum je m’aperçois qu’il existe certainement une méthode plus rapide que je ne connais pas.
Merci aux doués des bases de données de m’indiquer comment faire.
gg13
 
Re : Recherche aphabétique sur liste

Papou net
Désolé mais ça coince sur .List_membres.Clear '
(J'ai vérifié l'orthographe de List_membres)

Sub Affiche_List_membres(Lettre As String)
With Main.MultiPage1.page1
.List_membres.Clear
For Each cel In Sheets("Data_gen").Range("A:A").SpecialCells(xlCellTypeConstants)
If UCase(Left(cel.Value, 1)) = Lettre Then .List_membres.AddItem (cel.Value)
Next
End With
End Sub

Sur ton fichier j'ai essayé de selectionner plusieurs colonnes (car en fait j'ai 170 colonnes à afficher) en modifiant Range("A:A) par Range("A😀) et mettant des valeurs dans les colonnes B,C,D mais en fait c'est toujours la première qui s'affiche dans la liste.
Je vais suivre tes conseils pour apprendre.
Merci encore
gg13
 
Re : Recherche aphabétique sur liste

Papou net
Désolé mais ça coince sur .List_membres.Clear '
(J'ai vérifié l'orthographe de List_membres)

Sub Affiche_List_membres(Lettre As String)
With Main.MultiPage1.page1
.List_membres.Clear
For Each cel In Sheets("Data_gen").Range("A:A").SpecialCells(xlCellTypeConstants)
If UCase(Left(cel.Value, 1)) = Lettre Then .List_membres.AddItem (cel.Value)
Next
End With
End Sub

gg13

Essaies en modifiant comme suit :

Code:
Sub Affiche_List_membres(Lettre As String)
   With Main
     .List_membres.Clear
  For Each cel In Sheets("Data_gen").Range("A:A").SpecialCells(xlCellTypeConstants)
    If UCase(Left(cel.Value, 1)) = Lettre Then .List_membres.AddItem (cel.Value)
  Next
End With
End Sub

Pour ajouter des colonnes à ta liste, il faut procéder comme ceci :

Code:
Sub AfficheListe(Lettre As String)
With UserForm1
  .ListBox1.Clear
  For Each cel In Sheets("Feuil1").Range("A:A").SpecialCells(xlCellTypeConstants)
    If UCase(Left(cel.Value, 1)) = Lettre Then
      .ListBox1.AddItem (cel.Value)
      For c = 1 To 3
        .ListBox1.List(.ListBox1.ListCount - 1, c) = Sheets("Feuil1").Cells(cel.Row, c + 1)
      Next
    End If
  Next
End With
End Sub

Dans cet exemple, tiré de mon fichier précédent, je n'ai considéré que 3 colonnes. Dans ton cas, il faut donc adapter les valeur de fin de la boucle à ton nombre de colonnes. Mais attention, tu ne dois pas oublier de modifier la propriété ColumnCount de ton contrôle List_membres.

Tu parles de 170 colonnes, c'est énorme!!! et je ne pense pas que ça marche (et ça risque de ne présenter aucun intérêt).

Cordialement.
 

Pièces jointes

Re : Recherche aphabétique sur liste

Papou net
Merci de ton aide.
Ca coince toujours au même endroit
.List_membres.Clear

Je vais tenter d'utiliser tes infos beaucoup m'interréssent.
J'ai crée une boucle avec offset ce n'est pas super mais ça marche.
Bon week end et merci encore.
Bonsoir le forum
gg13
 
Re : Recherche aphabétique sur liste

Papou net
Juste un petit dernier conseil.
Je voudrais faire une boucle sur les 26 lettres avec la même maro en utilisant la fonction
Me.ActiveControl.Caption que tu m'as indiquée
mais
Nom = Me.ActiveControl.Caption
ne passe pas
Tui sais pourquoi ?

Private Sub CommandButton69_Click()
Application.ScreenUpdating = False
Sheets("Init").Unprotect
Sheets("Data_gen").Unprotect
Sheets("Data_gen").Select
Nom = Me.ActiveControl.Caption
' Range("C18").Select
' Nom = ActiveCell.Value

For x = 17 To 2017
If (Left(Nom, 1)) = Nom Then
Selection.Offset(0, -1).Select
Target = ActiveCell.Address
Num_lign = ActiveCell.Value
Sheets("Init").Range("C20").Value = Target
Sheets("Init").Range("C21").Value = Num_lign
List_membres.ListIndex = Num_lign
MultiPage1.Value = 1
Num_lign = ActiveCell.Value
Exit For
Else
Selection.Offset(1, 0).Select
Nom = ActiveCell.Value
End If
Next x
Sheets("Accueil").Select
Application.ScreenUpdating = True

End Sub



Merci
gg13
 
Re : Recherche aphabétique sur liste

Papou net
Juste un petit dernier conseil.
Je voudrais faire une boucle sur les 26 lettres avec la même maro en utilisant la fonction
Me.ActiveControl.Caption que tu m'as indiquée
mais
Nom = Me.ActiveControl.Caption
ne passe pas
Tui sais pourquoi ?

Comme ça, il m'est assez difficile de te répondre, bien que je pense avoir relevé quelques incohérences dans ton code.

Par ailleurs, qu'est-ce que ce commandbutton69, où se situe-t-il, et pour quelle finalité veux-tu faire une boucle sur les 26 lettres ?

Si tu pouvais joindre une copie édulcorée de ton fichier, sans données confidentielles, ça me permettrait de mieux comprendre.

A te lire.

Cordialement.
 
Re : Recherche aphabétique sur liste

En fait je veux juste récupérer le nom du bouton.
J'ai 26 boutons chaqu'un avec une lettre de l'alphabet.
Si je clique sur le bouton B le voudrai récuperer la valeur caption soit "B".
Je ne peux pas envoyer même un extrait du fichier à cause de la loi
car il s'agit d'une association....
Merci
gg13
 
Re : Recherche aphabétique sur liste

En fait je veux juste récupérer le nom du bouton.
J'ai 26 boutons chaqu'un avec une lettre de l'alphabet.
Si je clique sur le bouton B le voudrai récuperer la valeur caption soit "B".
Je ne peux pas envoyer même un extrait du fichier à cause de la loi
car il s'agit d'une association....
Merci
gg13

Et bien je ne comprends plus, c'est bien la solution que je t'ai proposée et qui semblait marcher. Sauf que je n'ai pas retrouvé, dans ton précédent message, la mention du multipage dans la référence du contrôle actif.

Tu peux envoyer une copie de ton fichier, sans aucune donnée ni logo d'association, mais avec les formulaires que tu as créés.

Autrement, je ne vois plus très bien comment t'aider.

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

B
Réponses
4
Affichages
2 K
benoitoleron
B
M
Réponses
3
Affichages
1 K
mtinard
M
E
  • Question Question
Réponses
11
Affichages
3 K
B
Réponses
3
Affichages
833
F
Réponses
11
Affichages
1 K
F
Réponses
15
Affichages
5 K
thierdau
T
M
  • Question Question
Réponses
3
Affichages
1 K
Michel C
M
D
Réponses
5
Affichages
1 K
Rénato
R
Retour