Vérification_tri de liste VBA
Résolu/Fermé
dubol
-
2 nov. 2011 à 10:08
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 3 nov. 2011 à 13:52
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 3 nov. 2011 à 13:52
A voir également:
- Vérification_tri de liste VBA
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste de diffusion whatsapp - Guide
- Liste site streaming illégal - Accueil - Services en ligne
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
3 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 2/11/2011 à 10:39
Modifié par Patrice33740 le 2/11/2011 à 10:39
Ne serait-il pas plus simple de faire le tri directement avec la macro ?
C'est impossible ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 3/11/2011 à 08:44
Modifié par eriiic le 3/11/2011 à 08:44
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
3 nov. 2011 à 10:20
3 nov. 2011 à 10:20
Déjà le 'ici' est en bleu, c'est donc un lien cliquable...
Patrice a répondu en commentaire de ton post, sa réponse est donc juste en dessous de ton post.
C'est vrai que les choix faits par les administrateur du site ont plutôt tendance à perdre tout le monde...
Et oui, ça ne sert à rien de perdre du temps à contrôler si le tri est fait pour demander à le faire faire par l'utilisateur.
Tu le fais d'office, au pire avec une demande de confirmation avant.
eric
Patrice a répondu en commentaire de ton post, sa réponse est donc juste en dessous de ton post.
C'est vrai que les choix faits par les administrateur du site ont plutôt tendance à perdre tout le monde...
Et oui, ça ne sert à rien de perdre du temps à contrôler si le tri est fait pour demander à le faire faire par l'utilisateur.
Tu le fais d'office, au pire avec une demande de confirmation avant.
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié par eriiic le 3/11/2011 à 10:34
Modifié par eriiic le 3/11/2011 à 10:34
Avant de passer du temps là dessus tu pourrais justifier de l'interet de procéder ainsi plutôt que de demander à l'utilisateur s'il veut que la macro fasse le tri ?
Et tu dois être convaincant... ;-)
eric
Et tu dois être convaincant... ;-)
eric
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
3 nov. 2011 à 13:42
3 nov. 2011 à 13:42
Bonjour tout le monde,
Je rejoinds, bien évidemment, les collègues, bénévoles acharnés de ce site, qui te suggèrent, à juste titre, de trier et point barre. En effet, ton code VBA se résume alors à une seule ligne.
Pour l'exemple :
Tu peux tout à fait demander à l'utilisateur si c'est nécessaire de trier.
Pour l'exemple :
Sinon, tu peux aussi boucler sur chaque donnée contenue dans tes trois premières colonnes et tester si elle est "supérieure" à celle contenue dans la cellule située en dessous...
Pour l'exemple :
Tu vois, tout est possible, mais les demandes d'explications de mes collègues bénévoles sont ici fort bien justifiées.
N'est-il pas?
PS : il s'avère que par pure fainéantise de ma part, je n'ai pas testé ces codes... Je pense que cela doit fonctionner mais j'émets toutefois des réserves sur la partie "tri" de ces différents codes VBA.
De toutes façons : à adapter...
Je rejoinds, bien évidemment, les collègues, bénévoles acharnés de ce site, qui te suggèrent, à juste titre, de trier et point barre. En effet, ton code VBA se résume alors à une seule ligne.
Pour l'exemple :
Sub Tri() Range("A1:S20").Sort Key1:=Range("A1" ), Order1:=xlAscending, Key2:=Range("B1" ), Order2:=xlAscending, Key3:=Range("C1" ), Order3:=xlAscending End Sub
Tu peux tout à fait demander à l'utilisateur si c'est nécessaire de trier.
Pour l'exemple :
Sub DemandeSiTri() Dim Reponse As Integer Reponse = MsgBox("Voulez-vous trier ?", vbYesNo + vbQuestion, "Pijaku") If Reponse = vbYes Then Range("A1:S20").Sort Key1:=Range("A1" ), Order1:=xlAscending, Key2:=Range("B1" ), Order2:=xlAscending, Key3:=Range("C1" ), Order3:=xlAscending End If End Sub
Sinon, tu peux aussi boucler sur chaque donnée contenue dans tes trois premières colonnes et tester si elle est "supérieure" à celle contenue dans la cellule située en dessous...
Pour l'exemple :
Sub TestSitri() Dim Tablo() As String Dim Lig As Long, DrLig As Long Dim j As Byte Dim Reponse As Integer With Sheets(1) 'A ADPATER!!! For j = 1 To 3 DrLig = .Columns(j).Find("*", , , , xlByColumns, xlPrevious).Row ReDim Tablo(DrLig - 1) For Lig = 1 To DrLig Tablo(Lig - 1) = Cells(Lig, j) Next Lig For Lig = 0 To UBound(Tablo) - 1 If Tablo(Lig) > Tablo(Lig + 1) Then Reponse = MsgBox("Voulez-vous trier ?", vbYesNo + vbQuestion, "Pijaku") If Reponse = vbYes Then .Range("A1:S20").Sort Key1:=.Range("A1" ), Order1:=xlAscending, Key2:=.Range("B1" ), Order2:=xlAscending, Key3:=.Range("C1" ), Order3:=xlAscending End If Exit For End If Next Lig Next j End With End Sub
Tu vois, tout est possible, mais les demandes d'explications de mes collègues bénévoles sont ici fort bien justifiées.
N'est-il pas?
PS : il s'avère que par pure fainéantise de ma part, je n'ai pas testé ces codes... Je pense que cela doit fonctionner mais j'émets toutefois des réserves sur la partie "tri" de ces différents codes VBA.
De toutes façons : à adapter...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
3 nov. 2011 à 13:52
3 nov. 2011 à 13:52
Mais de rien!
Je penses qu'aujourd'hui tu as eu ... dubol!
Bonne journée à toutes et à tous.
Je penses qu'aujourd'hui tu as eu ... dubol!
Bonne journée à toutes et à tous.