Autres Tri alphabétique liste d’une ComboBox, qui fonctionne mal

Jacky 17

XLDnaute Nouveau
Bonjour Forum

Je vous souhaite mes meilleurs vœux pour 2024



Tout d’abord je tiens à remercier les personnes qui m’ont déjà aidé

Dans les messages des forums j’ai trouvé des macros qui tri la liste d’une ComboBox

Celle que j’ai retenu sur XLD fonctionne, mais le seul problème :

Il y a deux listes une triée et une non triée

Comment faire pour n’avoir que la liste triée :

Dans recherche par désignation

L’enregistrement des outils n’est pas trié cela est fais au fur à mesure des enregistrements

Je tourne en rond depuis deux mois

Je ne connais toujours pas l’Anglais ni vraiment les Macro et VB,

Au petit bonheur la chance

Excel 2003

Merci d'avance pour votre aide si précieuse.

Je reste à votre disposition s’il manque des explications

Je vous souhaite une bonne fin de journée

Cordialement

Jacky



https://www.cjoint.com/c/NAlkk7f70Yf
 
Solution
Bon,
après examen plus approfondi,
Il suffit de supprimer la ligne ComboBox2.AddItem Cible
l SUB devient ainsi :
VB:
Private Sub UserForm_Initialize()
   
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
   For n = 2 To Sheets("stock").Range("B5000").End(xlUp).Row
  ComboBox2.AddItem Sheets("stock").Range("B" & n)
    Next n
With ComboBox2
    For i = 0 To .ListCount - 1
     For j = 0 To .ListCount - 1
      If .List(i) < .List(j) Then
        temp = .List(i)
        .List(i) = .List(j)
        .List(j) = temp
      End If
     Next j
    Next i
End With   ' ' '

 '...

Gégé-45550

XLDnaute Accro
Bonjour Forum

Je vous souhaite mes meilleurs vœux pour 2024



Tout d’abord je tiens à remercier les personnes qui m’ont déjà aidé

Dans les messages des forums j’ai trouvé des macros qui tri la liste d’une ComboBox

Celle que j’ai retenu sur XLD fonctionne, mais le seul problème :

Il y a deux listes une triée et une non triée

Comment faire pour n’avoir que la liste triée :

Dans recherche par désignation

L’enregistrement des outils n’est pas trié cela est fais au fur à mesure des enregistrements

Je tourne en rond depuis deux mois

Je ne connais toujours pas l’Anglais ni vraiment les Macro et VB,

Au petit bonheur la chance

Excel 2003

Merci d'avance pour votre aide si précieuse.

Je reste à votre disposition s’il manque des explications

Je vous souhaite une bonne fin de journée

Cordialement

Jacky



https://www.cjoint.com/c/NAlkk7f70Yf
Bonjour,
un petit conseil si je peux me permettre et si vous voulez avoir plus de chances d'obtenir des réponses :
joignez directement votre fichier à l'aide de la fonction dédiée de ce forum plutôt que de mettre un lien cjoint que peu de gens ouvriront ... et si possible évitez les sauts de ligne intempestifs qui allongent inutilement votre message.
Cordialement,
 

Jacky 17

XLDnaute Nouveau
Bonjour,
un petit conseil si je peux me permettre et si vous voulez avoir plus de chances d'obtenir des réponses :
joignez directement votre fichier à l'aide de la fonction dédiée de ce forum plutôt que de mettre un lien cjoint que peu de gens ouvriront ... et si possible évitez les sauts de ligne intempestifs qui allongent inutilement votre message.
Cordialement,
Re
D'abord merci d'avoir pris le temps d'analysé ma demande. Ecriture de ma demande dans Word les lignes sons les unes en dessous des autres. Et la pièce jointe fait 1.61Mo le forum est limité à 50Ko si cela na pas changer
Merci de m’avoir prévenu
Cordialement
Jacky 17
 

Jacky 17

XLDnaute Nouveau
Bonjour,


Je crois c'est plutôt dans les environs de 1 Mo.
Le forum accepte aussi les fichiers .zip.

De toute façon, ton fichier ne fait que 297 ko. ;)


Est-ce normal qu'il y ait des données en IS1:IV1 ??? 🤔
Re
Gégé-45550, TooFatBoy
Merci pour tous les renseignements pour les données en IS1:IV1 normal ce classeur fait parti de ma base de données Gestion stock outils prêt et retour
Merci de votre intervention
Cordialement
Jacky 17
 

Pièces jointes

  • CréaFiches Ajouter Modifier27_1.zip
    85.8 KB · Affichages: 3

Gégé-45550

XLDnaute Accro
Re
Gégé-45550, TooFatBoy
Merci pour tous les renseignements pour les données en IS1:IV1 normal ce classeur fait parti de ma base de données Gestion stock outils prêt et retour
Merci de votre intervention
Cordialement
Jacky 17
Re -
Bon, on avance ... doucement.
Maintenant, au moins, on a un fichier.
Celui-ci contient 2 usf, UserFi et UserForm1 contenant tous les deux des ComboBox.
La question est donc : De quel ComboBox de quel UserForm parle-t-on ?
Et les questions subsidiaires : quelles sont et où sont ces deux listes (triée et non triée) ?
Cordialement,
 

Jacky 17

XLDnaute Nouveau
Re -
Bon, on avance ... doucement.
Maintenant, au moins, on a un fichier.
Celui-ci contient 2 usf, UserFi et UserForm1 contenant tous les deux des ComboBox.
La question est donc : De quel ComboBox de quel UserForm parle-t-on ?
Et les questions subsidiaires : quelles sont et où sont ces deux listes (triée et non triée) ?
Cordialement,
Re
Gégé-45550, TooFatBoy
Gégé-45550
Merci de t’intéresser à mon problème
J’ai oublié d’enlever l’UserForm1
Pour mon problème il se trouve dans UserFi recherche par désignation ComboBox2 position en haut a droite de l’UserForm merci d'avance pour toute aide avancé de ta part
Je vous souhaite une bonne fin de journée
Cordialement
Jacky 17
 

Jacky 17

XLDnaute Nouveau
Du coup, ce que je voudrais savoir, c'est pourquoi aller mettre des données dans les trois dernières colonnes de la feuille, alors qu'il me semble qu'il y a des centaines de colonnes inutilisées avant ces trois colonnes.
Re
Un autre oubli la macro pour le tri se trouve à la fin de la macro dans initialise de l’UserFi
Je veux bien joindre ma base de données pour voir la structure mais 148 ko en zip le forum m’avait aidé à la finir vers 2016
Cordialement
Jacky
 

Gégé-45550

XLDnaute Accro
Re
Gégé-45550, TooFatBoy
Gégé-45550
Merci de t’intéresser à mon problème
J’ai oublié d’enlever l’UserForm1
Pour mon problème il se trouve dans UserFi recherche par désignation ComboBox2 position en haut a droite de l’UserForm merci d'avance pour toute aide avancé de ta part
Je vous souhaite une bonne fin de journée
Cordialement
Jacky 17
bonsoir,
dans la Sub Initialize de UserFi
Soit, vous triez préalablement puisque vous avez une option de tri sur la colonne B, et dans ce cas, le code suivant suffit :
VB:
Private Sub UserForm_Initialize()
    
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
   For n = 2 To Sheets("stock").Range("B5000").End(xlUp).Row
  ComboBox2.AddItem Sheets("stock").Range("B" & n)
    Next n
 AffImage
  End Sub
Soit vous ne triez pas et utilisez le code pour faire ce tri.
Dans ce cas :
Code:
Private Sub UserForm_Initialize()
    
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
With ComboBox2
    For i = 0 To .ListCount - 1
     For j = 0 To .ListCount - 1
      If .List(i) < .List(j) Then
        temp = .List(i)
        .List(i) = .List(j)
        .List(j) = temp
      End If
     Next j
    Next i
End With   ' ' '

' http://groupes.codes-sources.com/article-recuperer-valeur-incrementer-afficher-dans-textbox-504553.aspx
TextBox1.Value = Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
  For Each Cible In Range("B2:B" & Range("B5000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ComboBox2.AddItem Cible
ComboBox3.RowSource = "Déroulants!D2:D50"
ComboBox4.RowSource = "Déroulants!E2:E50"
ComboBox5.RowSource = "Déroulants!C2:C10"
   Next 'Cible
 AffImage
  End Sub
Note : je n'ai pas vraiment examiné ce code en détail mais il semble fonctionnel.
Cordialement,
 

Jacky 17

XLDnaute Nouveau
bonsoir,
dans la Sub Initialize de UserFi
Soit, vous triez préalablement puisque vous avez une option de tri sur la colonne B, et dans ce cas, le code suivant suffit :
VB:
Private Sub UserForm_Initialize()
   
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
   For n = 2 To Sheets("stock").Range("B5000").End(xlUp).Row
  ComboBox2.AddItem Sheets("stock").Range("B" & n)
    Next n
 AffImage
  End Sub
Soit vous ne triez pas et utilisez le code pour faire ce tri.
Dans ce cas :
Code:
Private Sub UserForm_Initialize()
   
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
With ComboBox2
    For i = 0 To .ListCount - 1
     For j = 0 To .ListCount - 1
      If .List(i) < .List(j) Then
        temp = .List(i)
        .List(i) = .List(j)
        .List(j) = temp
      End If
     Next j
    Next i
End With   ' ' '

' http://groupes.codes-sources.com/article-recuperer-valeur-incrementer-afficher-dans-textbox-504553.aspx
TextBox1.Value = Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
  For Each Cible In Range("B2:B" & Range("B5000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ComboBox2.AddItem Cible
ComboBox3.RowSource = "Déroulants!D2:D50"
ComboBox4.RowSource = "Déroulants!E2:E50"
ComboBox5.RowSource = "Déroulants!C2:C10"
   Next 'Cible
 AffImage
  End Sub
Note : je n'ai pas vraiment examiné ce code en détail mais il semble fonctionnel.
Cordialement,
 

Gégé-45550

XLDnaute Accro
Re
Gégé-45550
Merci pour les deux macros la première laisse les deux listes du ComboBox2. La deuxième aucune ouverture de l’UserForm UserFi, me met erreur d’exécution 6 dépassement de capacité
Bonne soirée
Cordialement
Jacky
Re
La première fonctionne à la perfection chez moi (c'est la seule que j'avais testée)
Pour la seconde (qui figure à la suite de la première dans votre code d'origine, je suis d'accord, après test, elle renvoie une erreur.
Je regarderai ça de plus près.
Mais je répète, la première, la plus courte, fonctionne très bien et renvoie la liste triée si celle-ci l'a été auparavant via l'option sur la colonne B.
 

Gégé-45550

XLDnaute Accro
Re
Gégé-45550
Merci pour les deux macros la première laisse les deux listes du ComboBox2. La deuxième aucune ouverture de l’UserForm UserFi, me met erreur d’exécution 6 dépassement de capacité
Bonne soirée
Cordialement
Jacky
Bon,
après examen plus approfondi,
Il suffit de supprimer la ligne ComboBox2.AddItem Cible
l SUB devient ainsi :
VB:
Private Sub UserForm_Initialize()
    
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
   For n = 2 To Sheets("stock").Range("B5000").End(xlUp).Row
  ComboBox2.AddItem Sheets("stock").Range("B" & n)
    Next n
With ComboBox2
    For i = 0 To .ListCount - 1
     For j = 0 To .ListCount - 1
      If .List(i) < .List(j) Then
        temp = .List(i)
        .List(i) = .List(j)
        .List(j) = temp
      End If
     Next j
    Next i
End With   ' ' '

 ' http://groupes.codes-sources.com/article-recuperer-valeur-incrementer-afficher-dans-textbox-504553.aspx
TextBox1.Value = Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
  For Each Cible In Range("B2:B" & Range("B5000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
'ComboBox2.AddItem Cible
ComboBox3.RowSource = "Déroulants!D2:D50"
ComboBox4.RowSource = "Déroulants!E2:E50"
ComboBox5.RowSource = "Déroulants!C2:C10"
   Next 'Cible
 AffImage
  End Sub
Bonne soirée
 

Jacky 17

XLDnaute Nouveau
Bon,
après examen plus approfondi,
Il suffit de supprimer la ligne ComboBox2.AddItem Cible
l SUB devient ainsi :
VB:
Private Sub UserForm_Initialize()
   
     Dim Cible As Range   ' ' '
   '  https://excel-downloads.com/threads/trier-une-liste-dans-un-combobox.113901/
Dim i As Byte, j As Byte
Dim temp As String
   For n = 2 To Sheets("stock").Range("B5000").End(xlUp).Row
  ComboBox2.AddItem Sheets("stock").Range("B" & n)
    Next n
With ComboBox2
    For i = 0 To .ListCount - 1
     For j = 0 To .ListCount - 1
      If .List(i) < .List(j) Then
        temp = .List(i)
        .List(i) = .List(j)
        .List(j) = temp
      End If
     Next j
    Next i
End With   ' ' '

 ' http://groupes.codes-sources.com/article-recuperer-valeur-incrementer-afficher-dans-textbox-504553.aspx
TextBox1.Value = Range("A" & Cells(Rows.Count, 1).End(xlUp).Row) + 1
  For Each Cible In Range("B2:B" & Range("B5000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
'ComboBox2.AddItem Cible
ComboBox3.RowSource = "Déroulants!D2:D50"
ComboBox4.RowSource = "Déroulants!E2:E50"
ComboBox5.RowSource = "Déroulants!C2:C10"
   Next 'Cible
 AffImage
  End Sub
Bonne soirée
Re

Gégé-45550
Un énorme merci pour cette dernière macro qui affiche bien une seule liste dans le ComboBox2. Après un essai sur mon classeur définitif cela fonctionne très bien Avec UserFi et UserForm2 pour la sortie du matériel.une affaire rondement menée
J’aurais bien mis mon classeur a par CiJoint vu son poids
Encore Merci Merci
Bonne soirée
Cordialement
Jacky
 

Statistiques des forums

Discussions
315 095
Messages
2 116 169
Membres
112 676
dernier inscrit
little_b