XL 2019 décalage cellule si vide

gg13

XLDnaute Occasionnel
Bonjour,
Je voudrais faire un tri dans une colonne (celle de gauche) en supprimant toutes les cellule contenant "* " et en décalant vers le haut pour avoir
une suite continue sans "trou" comme ci dessous à droite.
Il est possible de faire une boucle sur l'ensemble des cellules mais il doit exister une formule plus rapide et efficace mais je ne la connais pas.
Merci de votre aide si vous connaissez la solution.
GG13

A1A1
A2A2
*A4
A4A6
*A7
A6A8
A7A9
A8A13
A9A14
*A15
*A19
*A20
A13
A14
A15
*
*
*
A19
A20
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @gg13 :), @vgendron ;),

Une méthode très rapide qui ne trie pas les éléments.
Un exemple dans le classeur joint (20 000 lignes). Cliquez sur le bouton Hop!
Le code est dans Module1:
VB:
Sub Asterisque()
Dim i&, t, n&
   With Sheets("Feuil1")
      i = .UsedRange.Row + .UsedRange.Rows.Count: t = Range("a1").Resize(i)
      For i = 1 To UBound(t)
         If t(i, 1) <> "" And t(i, 1) <> "*" Then n = n + 1: t(n, 1) = t(i, 1)
      Next i
      .Range("a1").EntireColumn.ClearContents
      If n > 0 Then .Range("a1").Resize(n) = t
   End With
End Sub
 

Pièces jointes

  • gg13- 36 étoiles- v1.xlsm
    129 KB · Affichages: 8

Discussions similaires

Réponses
1
Affichages
604

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin