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

Comment classer par 6 lignes ???

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

Paritec

XLDnaute Barbatruc
Bonjour à Tous,
j'ai un fichier qui grossi et qui est à classer régulièrement et c'est un casse tête.
J'ai mis un modèle de ce fichier si vous pouvez m'aider merci d'avance
Le fichier joint est un raccourci avec 5 ensembles de 6 lignes, est en colonne A le départ et en G et I les deux résultats à obtenir
dans l'attente de vos réponses
merci d'avance
Papou
 

Pièces jointes

Re : Comment classer par 6 lignes ???

Bonsoir,

Voir PJ

Code:
Sub Tri()
  LigneDébut = 3
  HauteurBloc = 7
  nbcol = 1
  IndexTri = 5
  Columns("A:A").Offset(0, nbcol).Insert Shift:=xlToRight
  i = LigneDébut
  Do While i <= [a65000].End(xlUp).Row
    Cells(i, nbcol + 1).Resize(HauteurBloc, 1) = Cells(i + IndexTri, 1)
    i = i + HauteurBloc
  Loop
  Cells(LigneDébut, 1).CurrentRegion.Sort Key1:=Cells(LigneDébut + 1, 1).Offset(0, nbcol), _
      Order1:=xlAscending, Header:=xlYes
  [A:A].Offset(0, nbcol).Delete Shift:=xlToLeft
End Sub

http://boisgontierjacques.free.fr/fichiers/Tri/TriBlocs3.xls

JB
 

Pièces jointes

Dernière édition:
Re : Comment classer par 6 lignes ???

Re bonsoir JB Monique le forum,
Alors Monique je ne suis pas arrivé à faire marcher ta formule sur le fichier complet!!!
Pour le code JB il marche bien sauf que mon fichier au milieu posséde un jeu de données avec seulement deux lignes donc le tri n'était pas bon mais faute au fichier et pas au code de JB
maintenant peut on repérer ces deux lignes et les sauter?
Le deuxième tri est-il possible également celui de mon exemple colonne "I" celui ou seulement les nom entre "" sont classé et pas les première lignes?
Bref autrement chapeau bas à BoisGontier comme dab merci de tout ce que tu fais
a+
Papou
 
Re : Comment classer par 6 lignes ???

Supprimer les cellules fusionnées.

>mon fichier au milieu posséde un jeu de données avec seulement deux lignes

Que contiennent ces 2 lignes ?

JB
 

Pièces jointes

Dernière édition:
Re : Comment classer par 6 lignes ???

Bonjour Jacques BOISGONTIER, le forum,
merci de ta réponse d'hier soir, c'est parfait pour le classement, j'ai regardé le fichier de près et en fait j'ai plus que deux lignes, mais voilà exactement ce que j'ai comme donnée intermédiaire qu'il faut sauter si c'est possible. tout dans le fichier joint en A
dans l'attente de ta réponse
amicalement
Papou
 

Pièces jointes

Re : Comment classer par 6 lignes ???

Bonjour JB Le forum,
je pense qyue c'est tout bon je vais essayer dans la journée car là je dois partir chez un client et à mon retour je teste et je te dis quoi
bonne journée en attendant
a+
papou
 
Re : Comment classer par 6 lignes ???

Bonsoir JB le forum,
Bon je dois dire que c'est parfait, et que hélas j'ai pas compris ton code.
Enfin si tu peux le commenter je mourerai moins bête, car il fait tout ce que je voulais sans problème.
J'ai un autre petit problème avec une liste de mots qui commence tous par " et se finissent par " exemple "truc" et en dessous "machin" etc comment faire une boucle pour supprimer les deux " devant et derrière ?
Moi j'ai éssayé avec remplacer par mais si on ne met rien cela ne marche pas et si on met un espace, là le texte est déplacé d'un cran à gauche et se termine par un blanc et c'est interprété par excel comme un caractère !!!!
Alors une petite boucle mais avec quoi dedans là,
bonne soirée et encore un grand merci pour ton code
amicalement
Papou
 
Re : Comment classer par 6 lignes ???

Exécuter en pas à pas avec F8

Code:
Sub Tri3()
  LigneDébut = 3
  i = LigneDébut
  n = [a65000].End(xlUp).Row
  Do While i <= n          '[B] traitement de toutes les lignes[/B] 
   Columns("B:C").Insert Shift:=xlToRight
    ligne = 1
    Do                           [B]' traitement d'un groupe[/B]
      If Left(Cells(i, 1), 6) = "Value=" Then
        Cells(ligne, 2) = Cells(i, 1)
        Cells(ligne, 3) = i
        ligne = ligne + 1
[B]        '-- on cherche la fin du groupe: y a t-il 'Value=' 7 cellules plus loin
        '-- si oui on sort de la boucle[/B]
        If Left(Cells(i + 7, 1), 6) <> "Value=" Then i = i + 1: Exit Do
      End If
      i = i + 1
    Loop
    [B]'--- tri[/B]
    [B1:B1000].Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo, _
          OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ligne = 1
    Do While Cells(ligne, 3) <> ""
      p = Cells(ligne, 3)
      Cells(p, 1) = Cells(ligne, 2)
      ligne = ligne + 1
    Loop
    [B:C].Delete Shift:=xlToLeft
  Loop     [B]' groupe suivant[/B]
End Sub
 
Dernière édition:
- 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

Discussions similaires

Réponses
5
Affichages
711
Réponses
30
Affichages
862
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…