Ctrl + fin

Y

ya_v_ka

Guest
salut tout le monde

j'avais lu la semaine passée un truc sur Ctrl+fin pour définir la dernière celulle contenant quelque chose...

la moitié de mes feuilles me renvoient a IV65536 d'autres me laissent au milieu... mais quoi que je fasses... effacer le contenu, supprimer les celulles, cela me renvoie toujours sur la même...

comment faire pour vraiment éliminer (ou définir) les celulles inutiles mais mémorisées...

merci d'avance

ya'v
 
G

galopin01

Guest
Bonjour,
Tu peux toujours essayer cà :
( Avec les réserves d'usage... )
Sub Dégraissage() '... de classeurs !
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String
Dim Avant As Double, plage As Range
On Error Resume Next
Calc = Application.Calculation ' ---- mémorisation de l'état de recalcul
'------------------------------------------------------------
MsgBox "Pour le classeur actif : " _
& Chr(10) & ActiveWorkbook.FullName _
& Chr(10) & "dans chaque feuille de calcul" _
& Chr(10) & "recherche la zone contenant des données," _
& Chr(10) & "réinitialise la dernière cellule utilisée" _
& Chr(10) & "et optimise la taille du fichier Excel", _
vbInformation, _
"d'après LL par GeeDee@m6net.fr"
'-------------------------------------------------------------
MsgBox "Taille initiale de ce classeur en octets" _
& Chr(10) & FileLen(ActiveWorkbook.FullName), _
vbInformation, ActiveWorkbook.FullName
'------------------------------------------------------------
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = True
End With
'-------------------- le traitement
For Each Sht In Worksheets
Avant = Sht.UsedRange.Cells.Count
Application.StatusBar = Sht.Name & "-" & Sht.UsedRange.Address
'-------------------Traitement de la zone trouvée
If Sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(Sht.[A1]) Then
Set DCell = Sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
'----------------Suppression des lignes inutilisées
If Not DCell Is Nothing Then
Sht.Range(DCell, Sht.Cells([A:A].Count, 1)).EntireRow.Delete
Set DCell = Nothing
Set DCell = Sht.Cells.Find("*", , , , xlByColumns, xlPrevious) _
(, 2)
'----------------Suppression des colonnes inutilisées
If Not DCell Is Nothing Then Sht.Range(DCell, Sht.[IV1]) _
.EntireColumn.Delete
End If
Rien = Sht.UsedRange.Address
End If
ActiveWorkbook.Save
'---------------------Message pour la feuille traitée
MsgBox "Nom de la feuille de calcul :" _
& Chr(10) & Sht.Name _
& Chr(10) & Format(Sht.UsedRange.Cells.Count / Avant, "0.00%") _
& " de la taille initiale", _
vbInformation, ActiveWorkbook.FullName
Next Sht
'--------------------Message fin de traitement
MsgBox "Taille optimisée de ce classeur en octets " & Chr(10) _
& FileLen(ActiveWorkbook.FullName), _
vbInformation, _
ActiveWorkbook.FullNameActive
'--------------------
Application.StatusBar = False
Application.Calculation = Calc
End Sub
 
Y

ya_v_ka

Guest
salut galopin, le forum

le code marche à merveille... sur une seule feuille
mais j'ai un tableau sur une feuille qui va de A1 à V80 et en faisant ctrl+end il m'ammene en IV65536...

je ne comprends pas, d'autres idées complémentaires... ? merci

ya'v
 
G

galopin01

Guest
Bonsoir :
C'est curieux parce que chez moi il passe bien en revu toutes les feuilles...
Au fait il fait combien de Ko ton classeur ?
Tu pourrais peut-être essayer de copier cette feuille dans un nouveau classeur, faire le nettoyage et rapatrier ta feuille ensuite après avoir supprimer l'ancienne...
A+
 
G

galopin01

Guest
Bonsoir,
C'est quand même déjà pas mal... On a vu des classeur moins lours commencer à fatiguer !
As-tu essayer de faire le ménage en passant par l'exportation dans un nouveau classeur.
A mon avis tu peux aussi consulter avec intéret ce genre de fil :
http://www.excel-downloads.com/html/French/forum/messages/1_142148_142148.htm
Il n'y a pas de limite stricte tout dépent du comportement de l'utilisateur.
Un fil récent signalait un utilisateur en difficulté avec 1,7 Mo je crois...
A+
 
Y

ya_v_ka

Guest
re Galopino, le Forum,

merci encore pour les liens et solutions...

mais je ne m'en sors pas, j'ai déprotégé chaque formulaire de mon classeur, réaffiché toutes les colonnes masquées (qui limitent mes formulaires), effacé et supprimé toutes les colonnes "vides", éliminé les couleurs inutiles, simplifié les feuilles restant masquées, simplifié les formats, remasqué, reprotégé... et mon fichier à changé de 0.5 Mo ... malheureusement c'est en grossissant....... ???????

je crois que je vais faire mienne la devise LE MIEUX EST L'ENNEMI DU BIEN...

ya'v
 

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 319
Membres
103 515
dernier inscrit
Cherbil12345