bonjour,
j'ai cree une frame qui regroupe mes differente options de trie qui comporte 2 optionbutton pour les trie croissant et decroissant et 3 commandboutton pour le choix des collones à trier.
Voici mon code pour chaque commandboutton: [i]Private Sub CommandButton_Click()
Sheet("Bases_Containers").Activate
Range("A2":A6000).Select
Selection.Sort Key1:=Range("A2"),Order1:=xlAscending
[A2].Select
End Sub/i
1)Quand je lancele trie je demmande que celui ci commance à la ligne A2 (ligne A1 = Intitulé colonne)
je ne comprend pas le trie inclu toujours la ligne A1 dans sa selection comment faire pour interdire la ligne A1.
2)J'ai ajouté 2 optionboutton pour un trie croissant ou decroissant mais je sais pas ou les integrers dans mon code.
Bonjour,
Commence s'il te plait :
1) par poster dans la bonne section (Langages dérivés > VBA) et non :
Forum > Visual Basic 6 > Windows
2) par présenter ton code indenté et entre balises codes (3ème icône en partant de la droite)
3) par nous montrer le code tel que tu l'as écrit (par copier/coller). Celui que tu montres n'est manifestement pas dans ce cas !
Pour ton info : bien que maladroit (tes Activate, Select puis Selection ...), ce code devrait faire son travail proprement(sur la feuille "Bases_Containers"), pour autant qu'il soit placé dans l'évènement click d'un bouton existant. Et le tri s'effectuerait sur la feuille "Bases_Containers"), à partir de la ligne 2.
Alors ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Si tu avais enregistré une macro pendant que tu fais un tri à la main, tu aurais vu qu'il existe plusieurs paramètres, notamment le Header qui détermine s'il y a un titre (header) à la zone à trier.
Pour ta seconde question, je pense que tu sais où intégrer ce choix mais que tu ne sais pas comment.
Ça se passe dans le paramètre Order, bien sûr.
Sachant que ce paramètre accepte les constantes :
xlAscending qui a la valeur 1, et
xlDescending qui a la valeur 2,
il te suffit de transformer ton OptionButton en un chiffre, 1 ou 2.
Autre solution : Créer 2 blocs de lignes de programme (un avec xlAscending, l'autre avec xlDescending) que tu exécuteras dans un If-Then-Else en fonction de ton OptionButton
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
J'espère vraiment que tu n'as pas réellement écrit une procédure évènementielle :
Private Sub CommandButton_Click()
en croyant qu'un click sur CommandButton1 la déclencherait !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
salut excuser moi pour les erreur mais sa fait tout juste 2 mois que je programme en VBA.
Ci joint mon code comme demandé
Private Sub CommandButton8_Click()
Sheets("Bases_Containers").Activate
Range("A2:A660").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending
[A2].Select
End Sub
mais il me selectionne toujours la ligne A1 quand il fait un trie
SALUT
j'ai pu resoudre tous mes problemes grace a vous merci baucoup.
ci joint le code que j'ai réalisé toute vos critique sont le bien venue.
Private Sub CommandButton8_Click()
Sheets("Bases_Containers").Activate
Range("A2:A660").Select
If OptionButton3 = True Then Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess
If OptionButton4 = True Then Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess
[A2].Select
End Sub