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

Un tri un peu spécial

  • Initiateur de la discussion Initiateur de la discussion SHINTRA
  • 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 !

SHINTRA

XLDnaute Occasionnel
Hello , bonjour le Forum


je me trouve aujourd'hui confronte a un petit probleme.
j'essaye d'elaborer un fonction de tri via un bouton dans la barre d'outils pour automatiser une action recurente.

En effet j'ai des cellules contenant des 'nombres' au formats : xxx.dddd xxx etant une suite de numero de 1 a 999 et dddd correspndant a des dates ( 1999, 2001; 2005 )

j' ai reussi a faire ce que je voulais via des formules :
=DROITE(B8;4)
=GAUCHE(B8; NBCAR(B8)-5)
( B8 etant la cellule avec le Numero )
je n arrive pas a transposer en VBA pour la formule et pour le tri de tout mes tableau ( selection du tableau de taille variable , puis aplication de la fonction tri )

si quelqu'un a une idee une piste , qq chose

merci d'avance 🙂

Shintra. [file name=Exemple_shintra.zip size=6752]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_shintra.zip[/file]
 

Pièces jointes

Bonsoir Shintra, bonsoir le forum,

Étrange Shintra, avec les formules le tri sur la colonne C ne fonctionne pas ??? J'ai bidouillé un code VBA qui remplace les formules par les valeurs et effectue le tri. Ça marche. La macro s'exécute au clic sur le bouton Trier.
[file name=Exemple_shintra_2.zip size=12742]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_shintra_2.zip[/file]
 

Pièces jointes

Bonjour

une modif simple de la formule suffit pour spécifier le type de données renvoyées par la formule (à l'origine du texte) et donc le tri, pas besoin d'écraser les formules avec les valeurs.
=GAUCHE(B8; NBCAR(B8)-5)/1

Cordialement, A+

[file name=Exemple_shintra3.zip size=11668]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_shintra3.zip[/file]
 

Pièces jointes

hello

Merci a vous deux
mais en fait ce que j aurai souhaiter c'est me passer des deux colonnes qui contiennent les formules pour arriver au tri directement par le VBA

J avais penser a decouper la reference comme avec les formule ( a= xxx et b = dddd) mettre en memoire comparer ensuite avec le meme chose de la ligne du dessus etc etc .

Mais je ne suis pas assez caler en VBA pour cela.

j arrive a calculer enventuellement a comparer deux valeur, mais je n arrive pas a aplliquer un tri


en tout cas merci pour votre aide
 
En plus une idee de code
mais qui ne fonctionne pas bien entendu
:unsure: :unsure: :unsure: :unsure: :unsure: :unsure: :unsure:


Code:
Sub Tri_AP()
'
'
 Dim a, b, c, e, f
 
    a = ActiveCell
    b = Right(a, 4)
    c = Left(a, Len(a) - 5)
    d = ActiveCell('RC[1]') '(!!!!!probleme )'
    e = Right(d, 4)
    f = Left(d, Len(d) - 5)
If e <= b Then  'si le format date et plus petit'
    e.entire.Row.Select
    b.Activate
    Selection.Insert Shift:=xlDown ' tri coupe la ligne pour l'inserrer plus haut )
    Else
     If f <= c Then  'si le format nombre et plus petit'
     b.Activate
     Selection.Insert Shift:=xlDown
     Else

End Sub[code]
 
Bonjour Shintra, le forum

voici un tri sur tableau VB qui conviendra si tu n'as pas de formatage de cellules différents selon les lignes. Je pense que c'est le résultat que tu souhaites, tri sur l'année et ensuite référence.
Dis moi si j'ai bien compris et si cela te convient.

Cordialement, A+

[file name=Exemple_shintra4.zip size=12292]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_shintra4.zip[/file]
 

Pièces jointes

Merci Yeahou

c est exactement cela que je voulais.
encore un grand merci.

pour infos, j'etais arriver au code suivant :


Code:
Sub Tri_AP()

 Dim a, b, c, d, e, f
 
    a = ActiveCell
    b = Right(a, 4)
    c = Left(a, Len(a) - 5)
    d = ActiveCell.Offset(1, 0)
    e = Right(d, 4)
    f = Left(d, Len(d) - 5)
If e < b Then
    ActiveCell.Offset(0, 0).Select
    Range(ActiveCell.Offset(1, -1), ActiveCell.Offset(1, 10)).Copy
    Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 10)).Activate
    Selection.Insert Shift:=xlDown ' tri coupe la ligne pour l'inserrer plus haut )
Else
     If f < d Then
        ActiveCell.Offset(0, 0).Select
         Range(ActiveCell.Offset(1, -1), ActiveCell.Offset(1, 10)).Copy
         Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, 10)).Activate
         Selection.Insert Shift:=xlDown ' tri coupe la ligne pour l'inserrer plus haut )
     Else
     End If
End If

End Sub


Mais il me manquait la boucle qui permet de selectionner l'ensemble de la colonne



shintra
 
Yeahou

oui question ++
serait il possible d'adapter ton code pour que la plage :

Plage_Ref = ActiveSheet.Range('A3:K' & ActiveSheet.Range('A65536').End(xlUp).Row)

soit une plage que l'utilisateur selectionne.


voir mieux si possible que l'utilisateur selection la plage des cellules à trier quelques soit sa positions dans le tableau ( aie dur dur ) et que le tri prennent en compte l'integralité des lignes ( ou a default les 100 premiers valeurs )

question dur dur dsl 🙁 🙁 🙁 🙁
c juste pour abuser vraiment vraiment
tu es pas obliger de repondre c deja tres bien ce que tu m as fait

merci merci :lol: :lol:
 
Bonjour Shintra

j'ai supposé que toutes les colonnes ont des données de même type et qu'à chaque fois, le tri concernait le tableau entier.
L'utilisateur choisit en fait la colonne de tri, c'est ce que tu désirait si j'ai bien compris.

Cordialement, A+

[file name=Exemple_shintra5.zip size=14088]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_shintra5.zip[/file]

Message édité par: yeahou, à: 01/07/2005 06:36
 

Pièces jointes

Yesss yesss
ce super
ce presque sa que je souhaitais faire ( tu la fait en mieux )
mais la ligne de debut peux etre variable dans l'exemple le valeurs commence a a ligne 7 .

Mais cela est variable ( des fois le tableau commence a la ligne 3 de fois à ligne 15)
cela depend de la categorie de tableau.

donc pour resumé ce que tu as appliquer au colonne peux il aussi s appiliquer aux lignes ?

merci
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…