Recherche de la taille des feuilles de calcul individuelles (Microsoft Excel)
Maarten se demande s’il existe un moyen de connaître la taille de chaque feuille de calcul dans un classeur. Il a un classeur avec près de 100 feuilles de calcul et il souhaite réduire la taille du fichier de classeur. Cependant, il ne sait pas quelles feuilles de calcul sont les plus volumineuses.
Déterminer la «taille» des feuilles de calcul individuelles dépend, en grande partie, de ce que l’on entend par «taille». Cela signifie-t-il le nombre de cellules utilisées? Les colonnes et les lignes utilisées? Quelle quantité de texte est stockée dans la feuille de calcul? La liste des mesures pourrait s’allonger indéfiniment.
Le problème est que des questions comme celles-ci manquent la cible; une feuille de calcul peut contenir de très nombreux éléments. Par exemple, il peut contenir des commentaires, des formules, du texte, des graphiques, des fichiers audio et un certain nombre d’autres éléments. Un graphique peut être plus grand qu’un autre en termes de nombre de cellules, mais l’autre peut être plus grand en termes d’objets (tels que des graphiques ou des tableaux croisés dynamiques).
Le seul moyen réel de comparer les tailles relatives des feuilles de calcul consiste à enregistrer chaque feuille de calcul dans son propre classeur, puis à examiner la taille de chaque classeur résultant. Cela ne répond évidemment pas précisément à la taille de chaque feuille de calcul individuelle, car le fait d’enregistrer un classeur introduit une surcharge supplémentaire dans le fichier enregistré. Cependant, si chaque feuille de calcul est enregistrée de la même manière, chacune aura des frais généraux comparables et pourra donc être comparée l’une à l’autre pour voir laquelle est la plus grande.
La macro suivante ajoute une feuille de calcul au classeur en cours afin d’enregistrer les tailles de chaque classeur créé. Il parcourt ensuite chaque feuille de calcul et l’enregistre dans un classeur individuel. La taille du classeur est ensuite déterminée, enregistrée et le nouveau classeur est supprimé.
Sub WorksheetSizes() Dim wks As Worksheet Dim c As Range Dim sFullFile As String Dim sReport As String Dim sWBName As String sReport = "Size Report" sWBName = "Erase Me.xls" sFullFile = ThisWorkbook.Path & _ Application.PathSeparator & sWBName ' Add new worksheet to record sizes On Error Resume Next Set wks = Worksheets(sReport) If wks Is Nothing Then With ThisWorkbook.Worksheets.Add(Before:=Worksheets(1)) .Name = sReport .Range("A1").Value = "Worksheet Name" .Range("B1").Value = "Approximate Size" End With End If On Error GoTo 0 With ThisWorkbook.Worksheets(sReport) .Select .Range("A1").CurrentRegion.Offset(1, 0).ClearContents Set c = .Range("A2") End With Application.ScreenUpdating = False ' Loop through worksheets For Each wks In ActiveWorkbook.Worksheets If wks.Name <> sReport Then wks.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs sFullFile ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True c.Offset(0, 0).Value = wks.Name c.Offset(0, 1).Value = FileLen(sFullFile) Set c = c.Offset(1, 0) Kill sFullFile End If Next wks Application.ScreenUpdating = True End Sub
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (11112) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.
Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Finding_the_Size_of_Individual_Worksheets [Recherche de la taille des feuilles de travail individuelles]
.