XL 2019 Supprimer millions de lignes vide après un tableau dans une feuille excel

Guillaumeg3

XLDnaute Junior
Bonjour à tous,

Je cherche un petit code VBA ou autre astuce pour supprimer le millions de lignes dans une de mes feuilles excel.
J'ai un tableau de A1 à DN10512 mais impossible de naviguer dedans proprement car la fin de ma feuille est à la ligne 1M+

Je vous remercie pour votre aide
 

patricktoulon

XLDnaute Barbatruc
Bonjour
si t ta scroll descend jusque là c'est que ton tableau s’arrête là c'est tout
tu dois avoir une cellule avec une formule renvoyant rien ou au minimum un caractère espace

essaie ça en changeant le nom de la feuil pour que ca corresponde chez toi
et dis moi quelle est la cellule qui t'ai donné
VB:
Sub test()
MsgBox Feuil1.Range("a1:Dn" & Rows.Count).Find("*", , , , , xlPrevious).Address
End Sub
 

i20100_

XLDnaute Nouveau
Bonjour,

à tester avec la macro ou en exécutant manuellement chaque ligne du code suivant,
VB:
Sub test()
    Columns("DN:XFD").Delete Shift:=xlToLeft
    Rows("10513:1048576").Delete Shift:=xlUp
    Application.Goto Range("A1")
    ThisWorkbook.Save
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Si ce qui est dit dans le message#1 est strictement vrai, alors monte le son ;)
VB:
Sub Killing_Me_Softly()
Dim Bazinga
Bazinga = ActiveSheet.Range("A1:DN10512").Value
Application.ScreenUpdating = False
ActiveSheet.Cells.Clear
Cells(1).Resize(UBound(Bazinga, 1), UBound(Bazinga, 2)).Value = Bazinga
End Sub
;)
 

Katido

XLDnaute Occasionnel
Bonsoir le fil

Si ce qui est dit dans le message#1 est strictement vrai, alors monte le son ;)
VB:
Sub Killing_Me_Softly()
Dim Bazinga
Bazinga = ActiveSheet.Range("A1:DN10512").Value
Application.ScreenUpdating = False
ActiveSheet.Cells.Clear
Cells(1).Resize(UBound(Bazinga, 1), UBound(Bazinga, 2)).Value = Bazinga
End Sub
;)
Attention, les formats seront perdus ! Mais ce n'est peut-être pas vital
Une autre solution basique sans Vba :
1) crée une nouvelle feuille (provisoire)
2) fais un copier/coller de la seule plage qui t'intéresse A1:DN10512 dans cette nouvelle feuille
3) supprime toutes les cellules de la première feuille
4) recopie la plage de la feuille provisoire
5) supprime la feuille provisoire
 

Katido

XLDnaute Occasionnel
Bonjour
si t ta scroll descend jusque là c'est que ton tableau s’arrête là c'est tout
tu dois avoir une cellule avec une formule renvoyant rien ou au minimum un caractère espace

essaie ça en changeant le nom de la feuil pour que ca corresponde chez toi
et dis moi quelle est la cellule qui t'ai donné
VB:
Sub test()
MsgBox Feuil1.Range("a1:Dn" & Rows.Count).Find("*", , , , , xlPrevious).Address
End Sub
La cellule qui contient le loup caché est plus bas.
Faire plutôt :

MsgBox activesheet.cells.find("*", , , ,xlbyrows, xlprevious).Address

pour chercher dans toute la feuille
Le xlByRows permet de trouver la cellule dans la ligne la plus basse qui contient un truc
 

Astragor

XLDnaute Nouveau
Pour moi la solution la plus rapide est de filtrer ton tableau sur le critère vide d'une des colonne (n"importe laquelle puisque si la ligne est vide toutes le sont et ensuite tu vire toute les lignes.
Je l'ai eu fait par le passer j'ai plus le code vba en tête mais en faisant enregistrer une macro tu aura ton code en 30s, il ne restera plus qu'a faire quelques petites adaptations
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil
Attention, les formats seront perdus ! Mais ce n'est peut-être pas vital
Une autre solution basique sans Vba :
1) crée une nouvelle feuille (provisoire)
2) fais un copier/coller de la seule plage qui t'intéresse A1:DN10512 dans cette nouvelle feuille
3) supprime toutes les cellules de la première feuille
4) recopie la plage de la feuille provisoire
5) supprime la feuille provisoire
Moins mes classeurs contiennent de format, mieux ils se portent ;) Une veille habitude.
Si on utilise le tableau comme un base de données, pas besoin de format
(je parle de bordures, de couleurs etc...)

Ce qu'il faut retenir avant tout dans ma réponse, c'est le nom de ma macro ;)
 

Efgé

XLDnaute Barbatruc
Bonjour à tous
Nous avons, il y a quelques temps, (2007 ça date) discuté de ce sujet avec l'ami Staple1600
Voir les post 13 à 17 de ce fil ;)
Cordialement
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki