Nettoyage en VBA Lignes/colonnes inutiles

Bonjour,

vous avez surement eu déjà le cas ou en faisant CTRL+FIN, vous vous retrouvez en bas de la page d'un tableau (1 048 576 linges !) alors que seule une infime partie de la feuille est utilisée.

De même pour les colonnes.

Je dois travailler sur un tableau qui fait dans les 70 Mo, et ce en partie à cause de ce problème.

Le fichier est tellement gros que je ne peux même pas supprimer les lignes & colonnes inutiles car Excel ne dispose pas de ressources suffisantes.

L'idéal serait un code à placer dans un module qui ferait le nettoyage de toutes les pages du tableau en auto.

Quelqu'un saurait comment faire cela ?

merci d'avance !

Alci,

Hello,

Personne n'aurait une petite idée svp ?

Merci !

Bonjour,

Un nettoyage par rapport à quoi ?

Quel critère ?

Bonjour,

ouvre le VBE (ALT-F11) insertion module et tu colles ceci puis tu le lances

Regarde avant/après par CTRL-END où est la dernière cellule

Sub NettoieEtDerniereCellule()     ' Laurent Longre 2000
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
  .Calculation = xlCalculationManual
  .StatusBar = "Nettoyage en cours..."
  .EnableCancelKey = xlErrorHandler
  .ScreenUpdating = False
End With
For Each Sht In Worksheets
  If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
    Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
    If Not DCell Is Nothing Then
      Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Clear
      Set DCell = Nothing
      Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
      If Not DCell Is Nothing Then _
         Sht.Range(DCell, Sht.[IV1]).EntireColumn.Clear
    End If
    Rien = Sht.UsedRange.Address
  End If
Next Sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub

Ok merci Patrick !!

je vais regarder cela en détail


heu...la taille a grossi !

la dernière cellule active s'est deplacée sur la droite, donc accroissement du nombre de colonnes

alcibiade a écrit :

Ok merci Patrick !!

je vais regarder cela en détail


heu...la taille a grossi !

la dernière cellule active s'est deplacée sur la droite, donc accroissement du nombre de colonnes

Tu as des objets (rectangles et autres) ou des cellules vides (enfin paraissant vides, avec un espace dedans peut être aussi) ?

Ce code fonctionne très bien et fait maigrir les fichiers plus vite que XLS Médical

Supprime les lignes ET colonnes où tu es certain qu'il ne doit rien s'y trouver et puis relance le code ...

Non toujours pas.

Sur chaque feuille, la cellule active va maintenant systématiquement sur la colonne n°256...

même si j'en ai 5 d'utilisées...

Je suis sous excel 2010 au cas où...

Merci

Tu peux envoyer le fichier en privé ? (via wetransfer ) ou mettre le lien ici pour que certains le téléchargent s'il est trop lourd

P.

j'ai testé à la maison sur un petit fichier et cela marche nickel.

avant de t'embêter je vais voir si je trouve la différence avec les fichiers du boulot,

un grand merci !

Rechercher des sujets similaires à "nettoyage vba lignes colonnes inutiles"