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




A voir également:

7 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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
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
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
RE,

alors il faut passer par du VBA si tu as quelques connaissances, mais la ligne entière sera masquée
0
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
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
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
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
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