Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

bouton de commande

  • Initiateur de la discussion Initiateur de la discussion bobjean
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

bobjean

Guest
Voila j ai créer un bouton de commande mais j'aimerai que se bouton permette d activer ceci:

Code:
Function SansDoublonsTrié(champ As Range)
  Set MonDico = CreateObject("Scripting.Dictionary")
  temp = champ
  For i = 1 To UBound(temp, 1)
    If Not MonDico.Exists(temp(i, 1)) And temp(i, 1) <> 0 Then
      MonDico.Add temp(i, 1), temp(i, 1)
    End If
  Next i
  a = MonDico.items
  j = UBound(a)
  Call tri(a, 0, j)
  SansDoublonsTrié = Application.Transpose(a)
End Function
Sub tri(a, gauc, droi)          ' Quick sort
 ref = a((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
 Loop While g <= d
 If g < droi Then Call tri(a, g, droi)
 If gauc < d Then Call tri(a, gauc, d)
End Sub

Admettons que j'appel le bouton "actualiser", j'aimerai que le tri ne se fasse que lorsque j'appuye sur le bouton, et qu'une fois le tri fini, il ne reprenne pas sans avoir appuyer sur le bouton à nouveau
 
Re : bouton de commande

Salut,

Pour faire ce que tu souhaites, il faut que tu utilises un bouton bascule (toggle button).
Ensuite, autre petit soucis concernant ton code, il s'agit d'une fonction. Donc dans le code de ton bouton, il faut que tu mettes quelques chose du genre :
Code:
Private Sub ToggleButton1_Click()
Dim champ as Range
champ = Range("A1:B15")
SansDoublonsTrié(champ As Range)
End Sub

@+
 
Re : bouton de commande

Lorsque je met se code, il m'indique ceci avec la ligne rouge
et je ne sais pas appuyer sur le toggle bouton, il veut toujours le deplacer quand je clique dessus


Code:
Private Sub ToggleButton1_Click()
Dim champ as Range
champ = Range("A1:B15")
[COLOR="Red"]SansDoublonsTrié(champ As Range)[/COLOR]
End Sub
 
Re : bouton de commande

Salut,

Excuse, je me suis un peu trop précipité en te donnant ma reponse, le code a mettre etait :
Code:
Private Sub ToggleButton1_Click()
Dim champ as Range
champ = Range("A1:B15")
SansDoublonsTrié(champ)
End Sub

Ensuite, pour ton bouton, il faut que tu click sur la petite equerre verte apres avoir placé ton bouton afin que celui-si soit déclenchable. Par contre, je ne saisie pas tres bien comment fonctionne le code de tri, donc si tu avais un exemple. Parce qu'une fois le tri effectué, tu veux pouvoir remettre tel quel, donc il faut réappliquer un code...

@+
 
Re : bouton de commande

voila j aimerai juste jsute que la colonne A se trie sans doublon a l aide d un bouton toggle comme tu m a dit

cependant ca ne marche pas et je ne sais pas envoyer un fichier car les maccro prenne plein de place
 
Re : bouton de commande

Salut,

Mais ce tri, c'est juste pour une question d'affichage alors ?
Par exemple, le tri une fois fait ne pourra pas etre défait a par si l'on rajoute une colonne avec un compteur et les lignes doublons pourront par exemple etre masquées, ca te va ?

@+
 
Re : bouton de commande

oui, enf ait ce tri ce fait sur la deuxieme feuille en se basant de donner entrer dans la premiere feuille donc si ton idée est bonne, le tric devra se faire quand je changerai ou quand j ajouterai un nom dans la premiere feuille mais seulement quand j aurai appuyer sur le bouton sinon ca fait que recalculer et c est super lent, faut a chaque fois attendre lorsque je met une donné voila pourquoi le bouton est important
 
Re : bouton de commande

Salut,

T'aurais un petit exemple de ton fichier avec des données bidons afin que je puisse adapter directement le code. C'est simplement pour savoir sur quelle colonne il faut faire le tri...

@+
 
Re : bouton de commande

j ai essayer d attacher le ficheir meme avec peu de donné mais une fois les macro placé, le fichier fait direct 10mo

je vais donc te faire un fichier sans les macro
 

Pièces jointes

Re : bouton de commande

Salut,

Voici un bout de code qui répond a ce que j'ai compris de ta demande :
Code:
Private Sub ToggleButton1_Click()
Dim coll As Collection
Dim i As Integer
Set coll = New Collection
If ToggleButton1 = True Then
    ToggleButton1.Caption = "OFF"
    With Sheets("Liste")
        .Range("A2:A" & Range("A65536").End(xlUp).Row).ClearContents
        For n = 5 To .Range("B65536").End(xlUp).Row
            On Error Resume Next
            coll.Add .Range("B" & n), CStr(.Range("B" & n))
            On Error GoTo 0
        Next n
        For i = 2 To coll.Count
            Cells(i, 1).Value = coll(i)
        Next i
        Columns("A:A").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1
    End With
Else
    ToggleButton1.Caption = "Actualiser"
End If
End Sub

Tiens moi au courant...

@+
 
Re : bouton de commande

il me met erreur de debogage ligne 9

peut etre car j ai pas tt a fait les meme nom de liste que sur l exemple que je t ai donné?

ou tu a peut etre defini un nom a une plage?
 
Re : bouton de commande

re,

L'erreur provient peut etre du fat que la variable n n'est pas déclaré. Essais de rajouter un Dim n as Integer
Si ce n'est pas ca, précise le message d'erreur ou rejoins nous ton fichier.

@+
 
Re : bouton de commande

je n arrive pas a mettre le fichier, il est trop gros

voici ce qu il indique et ce qu il affiche apres avoir cliquer sur debogage
 

Pièces jointes

  • error.jpg
    54.8 KB · Affichages: 83
  • error.jpg
    54.8 KB · Affichages: 83
  • error.jpg
    54.8 KB · Affichages: 83
Re : bouton de commande

re,

L'erreur vient du faite que tu n'as pas d'onglet dans ton classeur qui porte le nom de liste.
Il faut donc que tu remplaces With Sheets("liste") par With Sheets("le nom de ta feuille")

Voili, voilou,

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
654
Réponses
15
Affichages
765
Réponses
8
Affichages
774
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…