Limiter un nombre de colonnes

Attila451

XLDnaute Occasionnel
Bonjour,
Je ne sais par quelle opération du st esprit, j'ai un tableur qui se retrouve avec des colonnes de A : XER ce qui complique un peu l'utilisation de la barre de défilement, mon tableau s'arrêtant en colonne AU...
Pareil pour les lignes ou il descend jusque 12000... Si je masque les colonnes, j'ai un message comme quoi l'opération risque d'être longue et le fichier plante. Pareil pour les filtres élaborés ou chaque requête prend tu temps...
Existe t-il une solution simple pour réduire la taille de la feuille ?
Merci d'avance pour vos lumières !
 

job75

XLDnaute Barbatruc
Re : Limiter un nombre de colonnes

Bonjour,

La feuille à nettoyer étant la feuille active, exécutez cette macro (à mettre dans VBA où vous voulez) :

Code:
Sub Nettoyage()
On Error Resume Next 'si la feuille est vide
With ActiveSheet
  .Rows(.[A1].Find("*", , xlFormulas, , xlByRows, xlPrevious).Row + 1 & ":" & .Rows.Count).Delete
  .Range(.Columns(.[A1].Find("*", , , , xlByColumns, xlPrevious).Column + 1), .Columns(.Columns.Count)).Delete
  With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : Limiter un nombre de colonnes

Bonjour,

D'après ce que j'ai compris votre fichier est vérolé par des choses (formats, textes vides "") conservées dans les plages inutilisées.

C'est pour cela qu'il faut les supprimer, il n'y a pas d'autre solution.

Voir touche F5 => Cellule => Dernière cellule, avant et après.

A+
 

job75

XLDnaute Barbatruc
Re : Limiter un nombre de colonnes

Re,

Ma macro n'était pas correcte, il fallait utiliser :

Code:
Sub Nettoyage()
On Error Resume Next 'si la feuille est vide
With ActiveSheet
  .Rows(.Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row + 1 & ":" & .Rows.Count).Delete
  .Range(.Columns(.Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1), .Columns(.Columns.Count)).Delete
  With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub
Maintenant puisque la suppression de lignes et colonnes posent problème essayez pour voir :

Code:
Sub Effacement()
Application.EnableEvents = False 'au cas où...
On Error Resume Next 'si la feuille est vide
With ActiveSheet
  .Rows(.Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row + 1 & ":" & .Rows.Count).Clear
  .Range(.Columns(.Cells.Find("*", , , , xlByColumns, xlPrevious).Column + 1), .Columns(.Columns.Count)).Clear
  With .UsedRange: End With 'actualise les barres de défilement
End With
Application.EnableEvents = True
End Sub
Si ça marche (mais ça m'étonnerait) on peut ensuite réessayer la 1ère macro.

A+
 
Dernière édition:

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof