Déplacer une ligne en fin de tableau

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. 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. Bonjour M-12, tu dis cela par ce que ta boule de cristal est de mauvaise qualité ,)
      0
    2. @Utilisateur anonymeBonjour Whismeril,
      Non, mais je n'ai plus de produit pour la faire briller
      0
  2. Contributeur Ambassadeur
    bonjour, peux-tu partager ton code VBA?
    0
    1. 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. Contributeur Ambassadeur
        j'ai cru avoir lu que le tableau était trié en vba, et je ne trouve pas où se fait ce tri.
        0
    2. 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. Contributeur Ambassadeur
        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
    3. 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. Contributeur Ambassadeur
        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
    4. 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. Contributeur Ambassadeur
        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
    5. 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
      1. j'y ai pensé, mais dans mes documents "autres" j'ai des noms qui commencent par A
        0
        1. Contributeur Ambassadeur
          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
      2. 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
        1. Autre hypothèse, je peux indiquer que je souhaite la « case else » toujours en derniers?
          0
          1. Contributeur Ambassadeur
            non
            0
          2. @yg_beMerci
            Au moins je ne perd pas de temps sur cette hypothèse
            0
        2. 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