Message-ID: <385EAC8E.63214119@free.fr> Date: Mon, 20 Dec 1999 23:24:14 +0100 From: Laurent Longre Subject: Re: Nombre de lignes/colonnes par feuille Newsgroups: microsoft.public.fr.excel > Avec ces boucles, le UsedRange sera réinitialisé correctement après > chaque suppression de ligne ou colonne "parasite". De ce fait, les deux > boucles ne vont supprimer que les lignes et colonnes contenant > uniquement des cellules formatés, et non pas les lignes et colonnes à > la fois vides et non formatés. > > C'est une variante de la solution proposé par JM, mais évitant la > suppression (inutile) de plages devenues "hors UsedRange" après chaque > suppression. Dim I As Long, J As Integer Dim LastL As Long, LastC As Integer LastL = Cells.Find("*", [A1], , , , xlPrevious).Row LastC = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column Application.Calculation = xlCalculationManual With ActiveSheet.UsedRange I = .Item(.Count).Row End With Do While I > LastL Rows(I).Delete With ActiveSheet.UsedRange: I = .Item(.Count).Row: End With Loop With ActiveSheet.UsedRange J = .Item(.Count).Column End With Do While J > LastC Columns(J).Delete With ActiveSheet.UsedRange: J = .Item(.Count).Column: End With Loop Application.Calculation = xlCalculationAutomatic ----- Laurent Laurent Longre a écrit : > > Auquel cas, je pense qu'il vaut mieux procéder par une procédure de ce > type: > > Dim I As Long > Application.Calculation = xlCalculationManual > With ActiveSheet.UsedRange > I = .Item(.Count).Row > End With > Do While Application.CountA(Rows(I)) = 0 > Rows(I).Delete > With ActiveSheet.UsedRange > I = .Item(.Count).Row > End With > Loop > With ActiveSheet.UsedRange > I = .Item(.Count).Column > End With > Do While Application.CountA(Columns(I)) = 0 > Columns(I).Delete > With ActiveSheet.UsedRange > I = .Item(.Count).Column > End With > Loop > Application.Calculation = xlCalculationAutomatic >