Comment resserrer une colonne sans trier

Résolu
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -  
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
version excel 2000

J'ai une colonne A contenant de nombreux noms,mais avec de temps en temps des cellules vides Je cherche a faire une macro qui resserrerait la colonne sans la trier,et sans passer par la suppression de lignes vides.

D'avance Merci pour tout
A+

Exemple:

Alain

Nicole

Patrick
Jean-Noël
Joseph
Marc

Nadège
Marie-Claire

Résultat:

Alain
Nicole
Patrick
Jean-Noël
Joseph
Marc
Nadège
Marie-Claire

7 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonsoir,

    ce qui m'interpelle dans ta demande c'est "et sans passer par la suppression de lignes vides"
    s'il s'agit d'un tableau avec des données dans les colonnes suivantes B, C etc
    si tu supprimes des cellules en colonne A les données en B et les suivantes ne vont plus correspondre avec celle de la colonne A
    0
    1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Bonsoir
      je veux tout simplement resserrer ma colonne A qui contient des cellules vides.
      en fait c'est ce que fait la fonction trier sauf que justement cela trie la colonne,ce que je ne veux pas
      je ne veux pas supprimer des lignes entières a cause de données éventuelles dans les autres colonnes.
      d'avance merci
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Tu insères une colonne avec 1, 2, 3, etc, tu tries, supprime les vides et re-tries par n°.
    Ca prend 30s.
    eric
    0
    1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Je comprend et je connais le système ,mais j'aurais préféré par VBA sans masquer ou supprimer les lignes vides afin de pouvoir m'en servir a partir d'une barre d'outil.
      Merci
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    RE,

    alors il faut passer par du VBA si tu as quelques connaissances, mais la ligne entière sera masquée
    0
    1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Ne serait-il pas possible par VBA de ne pas masquée ou supprimer la ligne.

      Merci.
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    non soit tu supprimes la cellule et dans ce cas les données qui se trouvent dans la cellule inférieure remonte et prend la place de la cellule supprimée et après les données des colonnes de droite comme de gauche ne correspondrons plus avec les données de la colonne modifiée

    soit tu supprimes la ligne

    soit tu masques la ligne, ce qui correspond le mieux à ta demande et qui te permettra d'afficher les lignes masquées
    le masquage d'une cellule est impossible

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
     
    Bonjour

    Ce n'est pas tout a fait ce que je cherchais mais enfin ça marche.

    Merci a tous .
    0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    un code tout simple à coller dans les propriétés d'un bouton activex pour traiter la colonne A à partir de la deuxième ligne

    Option Explicit

    Private Sub CommandButton1_Click()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    With Cells(i, 1)
    .EntireRow.Hidden = .Value = ""
    End With
    Next i
    End Sub

    0
    1. nihcoc
       
      Je te remercie Mike-31.
      ça marche,mais ça masque les lignes vides,au risque de masquer des données dans les colonnes a coté.
      Quand on se sert du bouton de tri , ça trie et ça ressert la colonne s'il y a des vides .
      J'aurais préféré la même chose sans le tri.
      Merci a toi quand même.
      0
  8. Maurice
     
    Bonjour
    peux être un truc comme ça
    Sub TestVide()
    Nlig = Range("A" & Rows.Count).End(xlUp).Row
    For L = 2 To Nlig
       If Range("A" & L).Value = "" Then
          Deb = L
          For D = Deb To Nlig
             If Range("A" & D).Value <> "" Then
                Range("A" & D).Cut Destination:=Range("A" & L)
                Exit For
             End If
          Next
       End If
    Next
    End Sub
    

    A+
    Maurice
    0
    1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Bonjour

      Merci a toi Maurice , c'est exactement ce que je cherchais.
      Merci encore pour ton travail ,c'est sympa
      0