Problèmes suppression d'item dans listbox + problèmes tri

Toine45

XLDnaute Junior
Bonjour à tous
Petite compilation de mes petits problèmes :
Je n'arrive pas à enlever un ou des items d'une listbox
j'ai essayé (sans succès) : listbox1.items.remove ("toto")
et bien d'autres formules...rien à faire.

je souhaite ajouter un groupe d'items exemple (qui ne fonctionne pas)
listbox1.additem array ("toto", "titi", "truc")

je souhaite enlever un groupe d'items ; exemple (qui ne fonctionne pas):
listbox1.items.remove array ("toto", "titi", "truc")

je désire aussi Comparer 2 listBox
Si un item est présent à la fois dans Listbox1 et dans Listbox2 : le supprimer de Listbox1

Problèmes de tri dans listbox :
J'ai actuellement un module de tri qui fonctionne très bien, mais qui tient compte de la casse.
je désirerais qu'il n'en tienne pas compte (Je n'ai pas trouvé comment faire pour obtenir :)
1 - 4 - Août - autre1 - Autre 2 - Données - Février - machin - Mai - titi - Toto

Est-il possible de trier une listbox en tenant compte des dates ?
Exemple pour résultat : 1 - 4 - Février - Mai - Août - autre1 - Autre 2 - Données - machin - titi - Toto

En pièce jointe mon Userform (Les boutons gris sont ceux qui ne fonctionnent pas)
J'ai laissé dans certains, quelques uns de mes essais.
Si quelqu'un a la solution de mes problèmes, ce serait sympa

Merci d'avance
 

Pièces jointes

  • Essai suppression.xls
    102.5 KB · Affichages: 70
Dernière édition:

Paf

XLDnaute Barbatruc
Bonjour,

Ci dessous quelques indications et solutions possibles , à adapter :

1) Je n'arrive pas à enlever un ou des items d'une listbox
pour un:
Code:
For i =ListBox2.ListCount - 1 To 0 Step -1
    If ListBox2.List(i) = "Global" Then
        ListBox2.RemoveItem (i)
        Exit For
    End If
Next
pour plusieurs
Code:
With ListBox2
For i = .ListCount - 1 To 0 Step -1
    If .List(i) = "Global" Or .List(i) = "Toto" Or .List(i) = "Titi" Then .RemoveItem (i)
    End If
Next
End With


2) je souhaite ajouter un groupe d'items
Code:
ListBox2.List = Array("Global", "Toto", "Titi")

3) je désire aussi Comparer 2 listBox

deux boucles imbriquées i et j (par exemple) , si ListBox1.List(i) = ListBox2.List(j) alors on supprime

4) J'ai actuellement un module de tri qui fonctionne très bien, mais qui tient compte de la casse.

faire le test en utilisant la fonction UCase() ou LCase() . UCase transforme une chaine en majuscules, LCase, en miniscules. Deux chaines de mêmes caractères mais de casse différentes seront alors identiques.

5) Est-il possible de trier une listbox en tenant compte des dates ?
Exemple pour résultat : 1 - 4 - Février - Mai - Août - autre1 - Autre 2 - Données - machin - titi - Toto


Sûrement, au prix d'une "bidouille" et de précisions sur ce qu'on fait de ce qui n'est pas date .

Bonne suite

Edit bonsoir Bebere
 

Toine45

XLDnaute Junior
Bonsoir Bebere & Paf, ainsi qu'à tous les autres Exceliens
Merci pour vos réponses Pour l'ajout et suppression d'items ; j'ai adapté et ça fonctionne impeccable
Merci beaucoup, ça m'a épargné des heures de recherches (j'en avais déjà passé pas mal à rechercher, essayer d'adapter sans succès.)

Pour le tri j'essaierai demain, si j'arrive à adapter "Ucase " et "Lcase" dans mon module de tri.

Pour le coup du tri avec les dates, j'avais penser "Grouper" les chiffres par ordre numérique, puis les mois par ordre calendaire, puis les autres noms par ordre alphabétique.
Si quelqu'un à une idée pour ce tri, je suis preneur

Si trop compliqué, je me rabattrai sur le tri ordinaire en ne tenant pas compte de la casse.

Merci pour votre aide
Bonne soirée à tous
 

Toine45

XLDnaute Junior
Bonjour à tous
pour le tri, j'ai résolu le problème en incorporant :
If UCase(.List(i)) < UCase(.List(j)) Then

'Tri de la liste par ordre alpha
With userform1.listbox1
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If UCase(.List(i)) < UCase(.List(j)) Then
strTemp = .List(i)
.List(i) = .List(j)
.List(j) = strTemp
End If
Next j
Next i
End With
sinon, encore plus simple : il suffit d'ajouter, en haut de la macro de tri :

Option Compare Text

qui agit sur la globalité du tri.

Reste plus à trouver que le tri avec le regroupement des dates, parmi les autres noms.

Bonne journée
 

Toine45

XLDnaute Junior
Bonjour
Merci Bebere pour ta proposition de code
C'est une piste :Très bien pour les chiffres et les dates
mais ça ne m'affiche plus les autres noms

Exemple pour résultat désiré : 1 - 4 - Février - Mai - Août - autre1 - Autre 2 - Données - machin - titi - Toto

Je vais essayer de décortiquer le code pour tenter de modifier afin d'obtenir mon résultat souhaité (C'est pas gagné)

Merci et Bonne soirée
 

Toine45

XLDnaute Junior
Bonjour Bebere et le Forum

Merci pour le fichier
Avec celui-ci, ça va tout de suite mieux...
J'ai testé, ça fonctionne bien mais je retombe dans la situation où les minuscules sont triées à part des Majuscules.
J'ai essayé de modifier pour que ça ne tienne pas compte de la casse, mais sans succès pour l'instant.
à part ça, c'est bien le principe de tri que je recherchais.

Bonne soirée à tous
 

Discussions similaires

Réponses
18
Affichages
579
Réponses
3
Affichages
559

Statistiques des forums

Discussions
312 023
Messages
2 084 715
Membres
102 637
dernier inscrit
TOTO33000