Supprimer cellule vide en décalant colonne

Bonjour à tous,

Et merci d'avance à ceux qui prendront la peine de s'intéresser à mon problème.

Voila j'ai adapter un petit code vba pour pouvoir sélectionner et supprimer des cellules vides dans mes fichiers. Cela semble fonctionner assez bien.

Par contre en supprimant les cellules vides le programme remonte le texte moi j'aimerai qu'il ne remonte pas le texte mais qu'il le décale vers la gauche. pour pouvoir ainsi aligner tous mes textes dans la même colonne.

Vous trouverez une explication plus précise et illustrée dans le fichier ci dessous (ou joint à ce message)

voici le code que j'ai utilisé :

Private Sub CommandButton1_Click()

Dim p As Range, i As Long

Set p = Application.InputBox(Prompt:="Sélectionnez une plage", _

Title:=" Supprimer lignes vides", Type:=8)

With p

For i = .Cells.Count To 1 Step -1

If Application.CountA(.Cells(i)) = 0 Then _

.Cells(i).Cells.Delete

Next i

End With

End Sub

Meilleurs salutations,

15explication.xlsx (9.14 Ko)

Bonjour,

à tester,

Sub test()
Dim p As Range, i As Long
Set AL1 = CreateObject("System.Collections.ArrayList")
Set p = Application.InputBox(Prompt:="Sélectionnez une plage", _
Title:=" Supprimer lignes vides", Type:=8)

With p
    For Each c In p
        If c <> 0 Then
          AL1.Add c
        End If
    Next
End With

Range("F33").Resize(AL1.Count) = Application.Transpose(AL1.Toarray())
End Sub

Bonsoir,

Tout d'abord merci de vous être penché sur la question.

J'ai tenté le coup avec votre proposition et j'ai un message d'erreur avec la ligne suivante :

Set AL1 = CreateObject("System.Collections.ArrayList")

est-ce que l'erreur se produit aussi sur ce fichier:

édit: correction orthographe

erudess a écrit :

Bonsoir,

Tout d'abord merci de vous être penché sur la question.

J'ai tenté le coup avec votre proposition et j'ai un message d'erreur avec la ligne suivante :

Set AL1 = CreateObject("System.Collections.ArrayList")

Bonjour ,

tu es sur Mac avec ton Excel "2017" ?

P.

Oui toujours la même erreur. Voir fichier joint. Et petite info que j'ai peut être oublié de mentionner cela ne doit pas uniquement fonctionner pour le fichier envoyer dans mon message de question. Mais plus généralement avec des fichiers lus "lourd".

@ patrick1957 AH oui pardon faute de frappe ! C'est bien un excel 2016 et sur windows.

erreur

Bonjour,

Vérifie que le fichier mscorlib.tbl existe.

Il se trouve normalement sous :

C:\Windows\Microsoft.NET\Framework\v4.0.3019.

Sinon, essaie cette solution avec un dictionnaire.

Cdlt.

Sub TEST2()
Dim Dict As Object
Dim Cell As Range, rng As Range
    Set rng = Application.InputBox(Prompt:="Sélectionnez une plage", _
                                   Title:=" Supprimer lignes vides", _
                                   Type:=8)
    If rng Is Nothing Then Exit Sub
    Set Dict = CreateObject("Scripting.Dictionary")
    For Each Cell In rng
        If Not IsEmpty(Cell) Then Dict(Cell.Value) = ""
    Next
    [F33].Resize(Dict.Count, 1) = Application.Transpose(Dict.keys)
    Set Dict = Nothing: Set rng = Nothing
End Sub
Rechercher des sujets similaires à "supprimer vide decalant colonne"