Déplacer une ligne en fin de tableau

guillaume gdco Messages postés 75 Statut Membre -  
guillaume gdco Messages postés 75 Statut Membre -
Bonjour,

J'ai un tableau de donné qui est trié en vba avec des titres de chapitre.
Je souhaiterai que le titre "autre" se retrouve en fin de classement.

Merci pour votre aide

Configuration: Windows / Internet Explorer 11.0

12 réponses

  1. M-12 Messages postés 1349 Statut Membre 285
     
    Bonjour,

    Sans savoir comment est agencé votre tableau et dans quel colonne se trouve les titres,
    C'est "mission impossible"

    Un p’tit classeur avec 10/15 données serait mieux pour régler le soucis

    Allez dans https://www.cjoint.com/
    Cliquez sur "PARCOURIR" pour sélectionner le classeur
    Clic le bouton "CREER LE LIEN"
    Clic droit quand le lien est créé "COPIER LE LIEN"
    Sur le post Clic droit "Coller".

    ou dans https://mon-partage.fr/
    0
    1. Utilisateur anonyme
       
      Bonjour M-12, tu dis cela par ce que ta boule de cristal est de mauvaise qualité ,)
      0
      1. M-12 Messages postés 1349 Statut Membre 285 > Utilisateur anonyme
         
        Bonjour Whismeril,
        Non, mais je n'ai plus de produit pour la faire briller
        0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peux-tu partager ton code VBA?
    0
  3. guillaume gdco Messages postés 75 Statut Membre
     
    avec le code c'est mieux effectivement, voici la partie concernée

    les données sont extraites d'un tableau csv puis classé par ordre alphabétique, ensuite j'y ajoute les titres et je souhaite classer le autre en dernier

    Dim ligne As Long, texte As String, ancientexte As String, ex As Worksheet, titre As String
    ancientexte = ""
    Set ex = ThisWorkbook.Sheets("Export")
    For ligne = ex.Cells(ex.Rows.Count, 1).End(xlUp).Row To 1 Step -1
        'je travaille sur la colonne a
        'Rows.count permet de retourner le nombre de ligne de la plage range
        texte = Left(ex.Cells(ligne, 1).Value, 5)
        If Left(texte, 2) = "TT" Then
            texte = "TT"
        End If
        
        If Left(texte, 2) = "VO" Then
            texte = "VO"
        End If
       
        If Left(texte, 3) = "EIC" Then
            texte = "FDD"
        End If
        
        If texte <> ancientexte Then
            If ancientexte <> "" Then
                ex.Rows(ligne + 1).Insert Shift:=xlUp
                ex.Rows(ligne + 1).Insert Shift:=xlUp
                Select Case ancientexte
                    Case "TT":
                        titre = "ref"
                    Case "VO":
                        titre = "Référentiels 1(VO)"
                    Case "FDD":
                        titre = "Fiches 2(FDD)"
                    Case "DTER ":
                        titre = "Direction 1"
                    Case Else:
                        titre = "Autres Documents"
                End Select
                    ex.Cells(ligne + 2, 2) = titre
                    ex.Cells(ligne + 2, 2).Font.Bold = True
            End If
            ancientexte = texte
        End If
    Next ligne
    
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      j'ai cru avoir lu que le tableau était trié en vba, et je ne trouve pas où se fait ce tri.
      0
  4. guillaume gdco Messages postés 75 Statut Membre
     
    Bonjour
    Je me suis mal exprimé, il n’y a pas de tri.

    Mon tableau de données est mise en forme avec une macro qui en fonction du nom, le classe dans une catégorie.

    J’ai une catégorie autre que je souhaiterai avoir en dernier dans ma liste.

    Pour le moment la ligne « autre » est positionnée dès qu’un doc allant dans cette catégorie est rencontré

    
    Dim ligne As Long, texte As String, ancientexte As String, ex As Worksheet, titre As String
    ancientexte = ""
    Set ex = ThisWorkbook.Sheets("Export")
    For ligne = ex.Cells(ex.Rows.Count, 1).End(xlUp).Row To 1 Step -1
        'je travaille sur la colonne a
        'Rows.count permet de retourner le nombre de ligne de la plage range
        texte = Left(ex.Cells(ligne, 1).Value, 5)
        If Left(texte, 2) = "TT" Then
            texte = "TT"
        End If
        
        If Left(texte, 2) = "VO" Then
            texte = "VO"
        End If
       
        If Left(texte, 3) = "EIC" Then
            texte = "FDD"
        End If
        
        If texte <> ancientexte Then
            If ancientexte <> "" Then
                ex.Rows(ligne + 1).Insert Shift:=xlUp
                ex.Rows(ligne + 1).Insert Shift:=xlUp
                Select Case ancientexte
                    Case "TT":
                        titre = "ref"
                    Case "VO":
                        titre = "Référentiels 1(VO)"
                    Case "FDD":
                        titre = "Fiches 2(FDD)"
                    Case "DTER ":
                        titre = "Direction 1"
                    Case Else:
                        titre = "Autres Documents"
                End Select
                    ex.Cells(ligne + 2, 2) = titre
                    ex.Cells(ligne + 2, 2).Font.Bold = True
            End If
            ancientexte = texte
        End If
    Next ligne
    
    
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      tu continues à ne pas être compréhensible.
      essaie d'être factuel et concret.

      je vois que la macro ne fait qu'une seule chose, c'est modifier le contenu de la colonne B de certaines lignes.

      tu utilises des mots tels que "mise en forme", "classe", "catégorie", "liste", je ne vois pas le rapport avec ce que fait la macro.

      donne un exemple de ce que tu obtiens, et de ce que tu voudrais obtenir.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. guillaume gdco Messages postés 75 Statut Membre
     
    Cette macro créé un titre en fonction du début de chaque référence texte.
    exemple: si des textes commencent par TT, ils sont regroupés ensemble et un titre "texte TT" est ajouté.
    et ainsi de suite avec les textes qui commencent par VO, EIC etc...

    les textes qui ne peuvent être classés, sont regroupés et un titre "autres doc" ajouté.

    seulement, les titres ne sont pas classés, ils sont créés en fonction de l'ordre dans lesquels les textes apparaissent dans le dossier .csv

    je me retrouve donc avec le titre "autres doc" en milieu de listes et je souhaiterai qu'il apparaisse à la fin

    c'est un peu plus claire j'espère..
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      quand tu écris "ils sont regroupés ensemble", que veux-tu dire en réalité? qu'est-ce qui change, à part la colonne B?

      quand tu écris "les textes qui ne peuvent être classés, sont regroupés": est-ce le résultat de la macro, ou bien ce que tu souhaites obtenir?

      donne un exemple de ce que tu obtiens, et de ce que tu voudrais obtenir.

      comment imagines-tu classer les titres sans classer les données des autres colonnes?

      peux-tu partager in fichier exemple, avec la macro incluse?
      0
  7. guillaume gdco Messages postés 75 Statut Membre
     
    Les textes sont par ordres alphabétique dans la colonne A.

    et je souhaite que ça reste ainsi sauf pour "autre document" qui apparaitra en dernier

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      donne un exemple de ce que tu obtiens, et de ce que tu voudrais obtenir.
      peux-tu partager in fichier exemple, avec la macro incluse?

      si les textes étaient par ordres alphabétique dans la colonne A, les lignes avec une case vide seraient regroupées.

      tes explications sont floues et incohérentes.
      0
  8. guillaume gdco Messages postés 75 Statut Membre
     
    Je veux que le titre ( en colonnes B) « autre document » soit en positionné en dernière position, en fin de tableau.

    Que le titre « autre document » et les lignes qui vont avec soit en bas de tableau
    0
  9. guillaume gdco Messages postés 75 Statut Membre
     
    Tu m’avais déjà aidé sur cette question, c’est là que je souhaite avoir la ligne « case else » en dernier

    https://forums.commentcamarche.net/forum/affich-36087093-trier-et-inserer-des-titres
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      ce serait sans doute plus simple de faire le tri avant d'insérer les lignes de titre.
      0
  10. guillaume gdco Messages postés 75 Statut Membre
     
    j'y ai pensé, mais dans mes documents "autres" j'ai des noms qui commencent par A
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      moi je commencerais par remplir toute la colonne B avec le titre, puis je ferais un tri sur la colonne B, puis je viderais la colonne B et commencerais le travail d'insertion des titres.
      0
  11. guillaume gdco Messages postés 75 Statut Membre
     
    J’insère les titres après la mise en page de mon tableau, et certains titres n’apparaissent que si certains documents sont présent, l’export du tableau en .csv change chaque semaine

    Je peux commencer par couper les lignes dont la cellule de la colonne A est remplie.
    Faire un tri de la colonne B en mettant « autre doc » en dernier et enfin re coller les lignes couper.
    0
  12. guillaume gdco Messages postés 75 Statut Membre
     
    Autre hypothèse, je peux indiquer que je souhaite la « case else » toujours en derniers?
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      non
      0
      1. guillaume gdco Messages postés 75 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci
        Au moins je ne perd pas de temps sur cette hypothèse
        0
  13. guillaume gdco Messages postés 75 Statut Membre
     
    je vous joins le fichier exporté

    Référence
    VO00866
    VO00867
    VO00869
    VO00925
    VO00983
    VO00984
    VO11667
    VO11668
    TT00021
    TT00057
    TT00057
    TT00065
    TT00325
    TT00326
    TT00327
    TT00408
    TT00429
    TT00430
    TT00510
    TT00511
    TT00511
    TT00512
    TT00512
    TT00513
    TT00514
    TT00514
    TT00515
    TT00515
    TT00516
    TT00516
    TT00780
    TT00828
    TT00874
    TT00956
    TT00991
    TT01004
    TT01191
    TT01193
    TT01200
    TT01511
    TT10510
    TT10510
    TT57001
    TT57002
    TT70506
    TT95601
    TT95602
    OP52754
    OP98091
    GRH00808
    LT EPT4 TT00116
    LT EPT4 TT00177
    LT EPT4 TT00924
    LT EPT4 TT00925
    TER AURA TT01004
    TER AURA TT15054
    TER AURA TT15072
    TER AURA TT15073
    TER AURA TT15074
    TER AURA TT15077
    TER AURA TT15079
    TER AURA TT15105
    TER AURA TT15106
    TER AURA TT15107
    TER AURA TT15120
    TER AURA TT15121
    TER AURA TT15130
    TER AURA TT15131
    TER AURA TT15132
    TER AURA TT15133
    TER AURA TT15134
    TER AURA TT15151
    TER AURA TT15152
    TER AURA TT15153
    TER AURA TT15154
    TER AURA TT15155
    TER AURA TT15170
    TER AURA TT15403
    TER AURA TT15410
    TER AURA TT15450
    TER AURA TT15452
    TER AURA TT15453
    TER AURA TT15601
    TER AURA TT15970
    TER AURA TT15971
    TER GE TT03000
    TER GE TT03001
    TER GE TT03002
    TER GE TT11012
    TER GE TT11013
    TER GE TT11015
    TER GE TT11022
    TER GE TT11028
    TER GE TT11100
    TER GE TT11101
    TER GE TT11102
    TER GE TT11103
    TER GE TT11104
    TER GE TT11131
    TER GE TT11132
    TER GE TT11161
    TER GE TT11162
    TER GE TT11200
    TER GE TT11201
    TER GE TT11301
    TER GE TT11302
    TER GE TT11303
    TER GE TT11304
    TER GE TT11305
    TER GE TT11331
    TER GE TT11341
    TER GE TT11351
    TER GE TT11371
    TER GE TT11400
    TER GE TT11401
    TER GE TT11402
    TER GE TT11404
    TER GE TT11406
    TER GE TT11501
    TER GE TT11600
    TER GE TT11701
    TER GE TT11702
    TER GE TT11703
    TER GE TT11721
    TER HDF TT09003
    TER HDF TT12003
    TER HDF TT12005
    TER HDF TT12006
    TER HDF TT12008
    TER HDF TT12033
    TER HDF TT12047
    TER HDF TT12100
    TER HDF TT12101
    TER HDF TT12110
    TER HDF TT12200
    TER HDF TT12201
    TER HDF TT12202
    TER HDF TT12203
    TER HDF TT12204
    TER HDF TT12210
    TER HDF TT12211
    TER HDF TT12212
    TER HDF TT12213
    TER HDF TT12214
    TER HDF TT12215
    TER HDF TT12221
    TER HDF TT12222
    TER HDF TT12223
    TER HDF TT12225
    TER HDF TT12300
    TER HDF TT12301
    TER HDF TT12310
    TER HDF TT12400
    TER HDF TT12600
    TER HDF TT12601
    TER HDF TT12700
    TER HDF TT12701
    TER HDF TT12702
    TER HDF TT12703
    TER HDF TT12900
    TER HDF TT12935
    TER NA TT14037
    TER NA TT14038
    TER NA TT14105
    TER NA TT14106
    TER NA TT14107
    TER NA TT14124
    TER NA TT14141
    TER NA TT14202
    TER NA TT14203
    TER NA TT14204
    TER NA TT14600
    TER NA TT14602
    TER NA TT14936
    TER NA TT14945
    TER OC TT10502
    TER OC TT14205
    TER OC TT14207
    TER OC TT14208
    TER OC TT14603
    TER OC TT15122
    TER OC TT15300
    TER OC TT15303
    TER OC TT15604
    TER SUD TT15108
    TER SUD TT15190
    TER SUD TT15200
    TER SUD TT15602
    TER SUD TT15920
    DJ TT15011
    DJ TT15101
    DJ TT15102
    DJ TT15103
    DJ TT15104
    DJ TT15110
    DJ TT15111
    DJ TT15113
    DJ TT15114
    DJ TT15402
    DJ TT15600
    DJ TT15603
    DJ TT15611
    RN TT13065
    RN TT13065
    RN TT13601
    RN TT13607
    RN TT13607
    RN TT13707
    RN TT13707
    DTER PDL TT13411
    DTER PDL TT13605
    DTER PDL TT13605
    DTER PDL TT13701
    DTER PDL TT13703
    DTER PDL TT13703
    DTER PDL TT13705
    DTER PDL TT13711
    DTER PDL TT13711
    EIC BFC DC00055
    EIC BFC DC00056
    EIC BFC TT95603
    EIC BFC TT95604
    EIC PE DC00010
    EIC PE DC00101
    EIC PE DC00104
    EIC PE DC00107
    EIC PE DC00108
    EIC PSE DC00009
    EIC PSE DC00010
    EIC RA DC01180
    EIC RA DC01181
    EIC RA DC01182
    EIC RA DC01183
    ET HDF TT00801
    E TGV N TT85002
    E TGV N TT85003
    E TGV N TT85003
    ETIT MT01006
    ERLN TT13031
    ERLN TT13031
    ERLN TT13039
    ERLN TT13103
    ERLN TT13106
    ERLN TT13107
    ERLN TT13107
    ERLN TT13109
    ERLN TT13111
    ERLN TT13115
    ERLN TT13121
    ERLN TT13202
    ERLN TT13301
    ERLN TT13303
    ERLN TT13303
    ERLN TT13321
    ERLN TT13321
    ERLN TT13403
    ERLN TT13412
    ERLN TT13412
    ERLN TT13932
    ERLN TT13932
    ERLN TT13934
    ERLN TT13934
    ETER CVL TT00122
    ETER CVL TT13041
    ETER CVL TT13041
    ETER CVL TT13401
    ETER CVL TT13401
    ETER CVL TT13600
    ETER CVL TT13600
    ETER CVL TT13602
    ETER CVL TT13603
    ETER CVL TT14101
    ETER CVL TT14103
    ETER CVL TT14103
    ETER CVL TT14104
    ETER CVL TT14104
    ETER CVL TT14111
    ETER CVL TT14201
    ETER CVL TT14301
    ETER CVL TT14301
    ETER CVL TT14302
    ETER CVL TT14302
    ETER CVL TT14303
    ETER CVL TT14502
    ETER CVL TT14503
    0