Aide excel

Résolu
Bonjour,

Je souhaite trier par ordre croissant des lignes d'un tableau excel (valeur de 1 à 560) mais également ajouter des cellules vides à chaque fois qu'une valeur n'est pas présente.

Par exemple :

2 5 3 10 15 12

j'aimerais avoir :

-- 2 3 -- 5 -- -- -- -- 10 -- 12 -- -- 15

Est-ce-possible avec excel 2007 ou un autre logiciel merci par avance de vos réponses.

6 réponses

  1. Contributeur
    bonjour,

    as tu des doublons dans ta liste de départ ?

    a te lire
    0
    1. Bonjour,

      Non aucun doublon dans la liste de départ
      0
      1. bonjour ;
        pour résoudre ce problème il faut un macro
        0
        1. Bonjour,

          Merci pour cette info par contre je suis un peu novice avec excel, trier des données je sais faire, par contre faire une macro pour rajouter des cellules il me faudrait un peu plus d'explications svp.
          0
          1. Contributeur
            ci joint proposition à adapter à ta présentation
            https://www.cjoint.com/?3EflAKDZSEl

            le code:
            Sub TriaBulle(T, Optional SensTri As Boolean = True) ' auteur:Zon/xld
                Dim Test As Boolean, I&, Temp
                 Do
                   Test = False
                   For I = LBound(T) To UBound(T) - 1
                     If (T(I) > T(I + 1) And SensTri) Or (T(I) < T(I + 1) And Not SensTri) Then
                       Temp = T(I)
                       T(I) = T(I + 1)
                       T(I + 1) = Temp
                       Test = True
                     End If
                   Next I
                 Loop Until Not Test
              End Sub
            
            Sub classer_avec_trous()
            Dim T_out(1 To 560), T_in, cptr As Integer
            T_in = Application.Transpose(Range("A1:A230").Value)
            TriaBulle T_in
            For cptr = 1 To UBound(T_in)
                 T_out(T_in(cptr)) = T_in(cptr)
            Next
            Application.ScreenUpdating = False
            With Range("C1:C560")
                 .Value = Application.Transpose(T_out)
                 .Borders.Weight = xlThin
            End With
            End Sub
            0
            1. Merci beaucoup
              çà va bien me servir.
              0