DecoupeEcran

Retour vers Excel

Que ce qui est utile à l'écran

On peut travailler sur une feuille tout ce qui a de classique, c'est à dire avec 256 colonnes et 65636 lignes.

Mais doit-on les avoir toutes à l'écran ? On pourrait par clarté de lecture, n'afficher que la plage de cellules réellement utilisées, comme ceci :

Le code pour obtenir cela 

Public derCol As Integer 
Sub MasquerLignesColonnesVides()
  On Error Resume Next
  Dim derLi, areaCount As Integer
  Application.ScreenUpdating = False
  With ActiveSheet.UsedRange
    derLi = .Row + .Rows.Count - 1 
  End With
  Call GetRealLastCell
  Range(Cells(derLi + 1, 1), Cells(65536, 1)).Select 
  Selection.EntireRow.Hidden = True
  Range(Cells(1, derCol + 1), Cells(1, 256)).Select
  Selection.EntireColumn.Hidden = True
End Sub
Sub GetRealLastCell()
  Dim lRealLastRow As Long 
  Dim lRealLastColumn As Long
  Range("A1").Select
  On Error Resume Next
  lRealLastRow = Cells.Find("*", Range("A1"), xlFormulas, , xlByRows, _ xlPrevious).Row
  lRealLastColumn = Cells.Find("*", Range("A1"), xlFormulas, , _ xlByColumns, xlPrevious).Column
  Cells(lRealLastRow, lRealLastColumn).Select
  derCol = Selection.Column
End Sub

Bien sûr à tout moment on peut ré afficher la feuille complète

Sub RetablirTout()
  On Error Resume Next
  Dim derLi, i As Integer 

  Application.ScreenUpdating = False
  With ActiveSheet.UsedRange 
    derLi = .Row + .Rows.Count - 1 
  End With 
  Range(Cells(derLi, 1), Cells(65536, 1)).Select 
  Selection.EntireRow.Hidden = False 
  Range("A1").Select
  For i = 1 To 256
    If Columns(i).EntireColumn.Hidden = True Then 
       Columns(i).EntireColumn.Hidden = False 
    End If
  Next
End Sub

Cliquez ici pour télécharger le fichier exemple

FIN