Tri de colonne Excel 2003 & Beep sonore silencieux (MsgBox)

Bonjour à tous,

J’ai un fichier de données (ci-joint) dans lequel sont inscrits des informations quelconques. J’ai une macro "Tri" associée au bouton Tri qui fonctionne parfaitement sous Excel 2007 . Grâce à cette macro, je peux, en sélectionnant une colonne de mon choix, effectuer un tri. Cependant, cette macro n’est pas opérationnelle sous Excel 2003. Quelqu’un pourrait-il m’aider afin d’adapter cette macro à Excel 2003 ?

Finalement, j’ai une macro "Imprimer" qui permet d’imprimer mon tableau. La fonction MsgBox ouvre une fenêtre "Impression" avec un beep sonore. Ma question est : Comment rendre silencieux ce beep sonore sans changer les paramètres sons de Windows ?

Merci à l’avance pour collaboration

Salutations,

Renaud

Salut,

Déjà pour le son , remplace la ligne

Rep = MsgBox("Imprimer?", vbYesNo + vbCritical + vbDefaultButton2, "Impression")

par

Rep = MsgBox("Imprimer?", vbYesNo + vbDefaultButton2, "Impression")

ça devrait suffire.

Cordialement.

Merci Yvouille pour ta réponse.

C'est fort apprécié.

Salutations,

Renaud

[u]P.S. : Est-ce quelqu'un aurait une réponse à mon problème de tri sous Excel 2003 ?

[/u]

Salut Renaud,

Je suis désolé. Peut-être que comme j’ai répondu trop vite à ton premier problème, plus aucun membre ne s’intéresse à ton fil

Personnellement je n’ai pas trop de solution à te proposer sur la base de ton code actuel. Je ne comprends cependant pas trop bien où tu veux en venir. Veux-tu vraiment que l’on puisse choisir de trier le tableau complet sur la base d’une colonne choisie par l’utilisateur ? Quelles autres conditions voudrais-tu que ce code remplisse ?

Selon tes réponses, je veux bien essayer de trouver un code de remplacement

Autre solution : Tu indiques ce fil comme « Résolu » et tu commences un autre fil avec ton deuxième problème.

A te relire.

Bonjour Yvouille,

Merci de t'intéresser encore à mon cas. J'aurais peut-être du soumettre mes deux problèmes séparément, cela aurait été plus simple.

Comme je l'ai mentionné dans ma question à l'origine. Dans Excel 2003, je veux en cliquant sur une des cinq premières colonnes, une fenêtre (voir fichier ci-joint) "Sélectionnez la colonne des valeurs à trier" s'ouvre et me demande de sélectionner une colonne (une cellule dans une colonne) . Une fois la cellule sélectionnée, j'appuie sur "OK" et le trie commence.

Au plaisir de te relire

Salutations,

Renaud

image

Bonjour

Pourquoi ne pas utiliser la fonction trier du Filtre automatique?

Cordialement

Rebonjour,

Parce que c'est conviviale et rapide d'utiliser une macro liée à un bouton pour effectuer le tri de colonnes.

Salutations,

Renaud

En lisant ton avant-dernier message, je ne comprenais plus rien. Il me semblait bien que tu avais parlé d'un problème en Excel 2003 et j'ai vu ce soir que tu avais indiqué dans ton profil que tu avais Excel 2007.

Je n'avais tout d'abord - lors de ma toute première réponse - pas trop regardé ton problème de tri car je n'avais pas de version 2003 sous la main. Ce soir par contre, j'en ai une

J'ai alors pu constater qu'en modifiant le code

    ActiveWorkbook.Worksheets("Tableau des données").Sort.SortFields.Add Key:=rng _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Par

Selection.Sort Key1:=rng, Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

tu devrais au minimum résoudre ton problème de tri.

Par contre il y a toujours un blocage au niveau des lignes

    With ActiveWorkbook.Worksheets("Tableau des données").Sort
        .SetRange Range("A6:K300")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Comme je suis ce soir sur Excel 2003, je n'arrive pas à savoir comment remplacer ces lignes.

Donc idée : Tu testes ma proposition de code pour le tri (soit en travaillant au pas à pas, soit en neutralisant le passage "With - End with") et tu m'indiques ce que devrait encore faire ce passage "With - End with" ou tu me laisses le temps de trouver sur une version 2007 (dès lundi) ce que fait ce code.

Un peu compliqué ?? J'en suis désolé.

EDIT : Salut Amadéus, Désolé, je n'avais pas vu ta question

Bonjour Yvouille,

La majorité de mes clients possède Excel 2007. Cependant, un de mes clients ne possède que Excel 2003 et cette fonction de trie (macro Excel 2007) ne fonctionne pas chez lui.

J'ai remplacé les instructions :

ActiveWorkbook.Worksheets("Tableau des données").Sort.SortFields.Add Key:=rng _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

par :

Selection.Sort Key1:=rng, Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

et en exécutant la macro, l'erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet s'affiche à la ligne :

ActiveWorkbook.Worksheets("Tableau des données").Sort.SortFields.Clear

Salutations,

Renaud

Oh, là ! J'avais également supprimé cette ligne chez moi et ai oublié de t'indiquer de le faire toi aussi.

Je ne sais pas ce qu’il en est de ton ancien code – n’ayant aujourd’hui pas Excel 2007, je ne peux pas tester – mais il y a également un problème avec le code prévu pour Excel 2003 si tu cliques sur « Annuler » lorsque la boîte de dialogue s’ouvre (le débogueur s’enclenche). J’ai également placé une instruction dans le code complet proposé ci-dessous afin d’éviter cela (code qui devrait aussi très bien fonctionner sur Excel 2007).

Sub Tri()
'   Tri des colonnes

Rows("6:300").Select

Dim rng As Range
On Error GoTo etiquette
Set rng = Application.InputBox("Sélectionnez la colonne des valeurs à trier", Type:=8)

Selection.Sort Key1:=rng, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

etiquette:
    Range("C3").Select
End Sub

De plus, je trouve que ton message "Sélectionner la colonne des valeurs à trier" prête à confusion. La première fois, j'ai essayé de cliquer dans un titre de colonne, tout en haut, et ça sélectionne alors tout le tableau. Ne vaudrait-il alors pas mieux indiquer un message du genre "Cliquez, dans le tableau, sur l’une des cellules de la colonne que vous désirez trier". A moins que ce soit toujours les mêmes utilisateurs et qu'on le leur ait expliqué une fois comment ça marche.

Cordialement.

Bonjour

Une idée en lisant ce post

Je rejoins Yvouille quand à la remarque au sujet de la sélection de la colonne

Plus simple en cliquant sur l'entête de la colonne

Mettre ce code dans le code de la feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Range("C5:F5,J5"), Target) Is Nothing And Target.Count = 1 Then
    Rows("6:300").Sort Key1:=Target, Order1:=xlAscending, Header:=xlNo, _
                       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                       DataOption1:=xlSortNormal
  End If
End Sub

Merci Yvouille pour ta réponse. La macro fonctionne très bien sous Excel 2003.

Je tiendrais compte de tes observations afin que l'utilisation de cette macro de tri soit plus conviviale pour les futurs utilisateurs.

Salutations,

Renaud

Rechercher des sujets similaires à "tri colonne 2003 beep sonore silencieux msgbox"