Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fichier obèse

4 views
Skip to first unread message

Christian

unread,
Oct 25, 2004, 5:25:38 AM10/25/04
to
Bonjour à tous
Depuis le site Excelabo, j'ai fait un copié-collé des deux
procédures
Sub Reconstruit(NomClasseur$) 'Frédéric Sigonneau
Sub Nettoie() 'Laurent Longre
requises pour le nettoyage d'un classeur devenu obèse.
Lors de l'exécution, je reçois au démarrage de la
macro 'Sub Nettoie, le message d'erreur suivant: Erreur de
compilation : erreur de syntaxe.
Qui peut me dire ce qu'il convient de faire pour exécuter
cette macro.
Merci d'avance pour toute aide.
Christian

twinley at

unread,
Oct 25, 2004, 6:09:20 AM10/25/04
to
Bonjour,

Nettoie( ) marche bien sur XP pro et XL2003.
L'autre Reconstruit( )j'ai eu un souci, mais je ne sais plus lequel.
Quelle est ta config ?

--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de
news:129801c4ba74$96da7b50$a301...@phx.gbl...

Christian

unread,
Oct 25, 2004, 6:38:55 AM10/25/04
to
Bonjour Twinley
Ma configuration est XP Pro et XL2003
>-----Message d'origine-----
>.
>

twinley at

unread,
Oct 25, 2004, 8:44:13 AM10/25/04
to
.../...
comme moi alors.
la sub nettoie( ) tourne bien
l'autre sub reconstruit( ) a butté sur un code, autant que je me souvienne.
Tu dois avoir un truc désactivé. Pour ma part j'ai Outils-macro
complémentaire-Utilitaire d'analyseVBA coché
mais là je tâtonne. Sinon après on peut vérifier les préférences dans le
VBE.

--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de

news:0c3c01c4ba7e$d3a10f90$a501...@phx.gbl...

Christian

unread,
Oct 25, 2004, 9:07:29 AM10/25/04
to
Re bonjour Twinley
L'utilitaire d'analyse VBA est bien coché.
Je reste à ta disposition pour d'autres points de contrôle
et te remercie de bien vouloir m'aider a trouver la
solution.
Christian
>-----Message d'origine-----
>..../...
>.
>

twinley at

unread,
Oct 25, 2004, 1:44:24 PM10/25/04
to
Bonsoir,

Vérifie dans le VBE outils références. J'ai les cases cochées sur :

Visual Basic for applications
Microsoft excel 11.0 Object Library
OLE Automation
Microsoft Office 11.0 Object library

Je ne sais pas pourquoi j'ai deux fois la même références...un va dans
office11\excel.exe et l'autre
fichiers communs\microsoft Shared

Mais bon, après je n'ai plus d'idées. Dis moi le résultat.


--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de

news:133301c4ba93$94bd0170$a301...@phx.gbl...

Christian

unread,
Oct 26, 2004, 1:23:31 AM10/26/04
to
Bonjour Twinley
Merci de m'avoir répondu.
J'ai les mêmes cases de cochées + Microsoft Forms 2.0
Object Library.
Cela est vraiment bizare.
Bonne journée
Christian
>-----Message d'origine-----
>.
>

twinley at

unread,
Oct 26, 2004, 2:25:20 AM10/26/04
to
Bonjour,

Voici un copié-collé de ce qui est dans mon classeur.
La sub est dans un module standart. Vérifie ce point, au cas ou.
Efface les deux anciennes et met celle -ci.
Vérifie que tu n'as pas de ligne en rouge...

Sub Nettoie()
'Laurent Longre mpfe, mise en forme GeeDee
Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String,
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 Gee...@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


--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de

news:17ae01c4bb1b$eee28430$a301...@phx.gbl...

Christian

unread,
Oct 26, 2004, 3:27:30 AM10/26/04
to
Merci Twinley
Cela ne change rien, je reçois le même message d'erreur au
démarrage de la macro 'Sub Nettoie,
"Erreur de compilation : erreur de syntaxe".
C'est bien dommage que cela ne fonctionne pas.
Je te remercie pour ton aide.
Christian
>-----Message d'origine-----
>.
>

twinley at

unread,
Oct 26, 2004, 3:45:47 AM10/26/04
to
désolé, ça dépasse mes compétences...

--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de

news:077401c4bb2d$407c8000$a401...@phx.gbl...

Christian

unread,
Oct 26, 2004, 4:59:21 AM10/26/04
to
Merci pour ta gentillesse
Christian
>-----Message d'origine-----
>.
>

Misange

unread,
Oct 26, 2004, 7:48:28 AM10/26/04
to
Bponjour

Attention : comme cela est signalé à divers endroits dans le site, la
coupure intempestive des lignes, liée soit à la mise en forme ici même
(d'où sont copié-collé beaucoup de choses) soit à celle des pages du
site entraine des problèmes.
En l'occurence il ne faut pas qu'il te reste une seule ligne en rouge
quand tu copies dans VBE. Si c'est le cas, enlève le retour chariot qui
précède la ligne en rouge.
Il ne faut pas non plus interrompre les déclarations de variable :

Dim Sht As Worksheet, DCell As Range, Calc As Long, Rien As String,
Avant As Double, plage As Range

toute cette ligne doit être en un seul morceau.
Quand tu as une erreur de compil, excel te signale où elle se trouve.
Regarde dans ce cas si ce n'est pas une ligne coupée qui est
responsable. Je t'affirme que cette macro fonctionne très bien !
allez, retournes-y ! :-)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 25/10/2004 11:25:

twinley at

unread,
Oct 26, 2004, 8:14:05 AM10/26/04
to
Bonjour Misange

C'est sympa de lui redonner la pêche.
Le copié-collé que j'ai donné vient d'un de mes classeur. Il est compilé
sans erreur chez moi.
Donc il devrait passer chez lui. J'ai proposé cette manip pour être sur
qu'il n'y a pas de lignes rouges.
C'est vrai que Christian n'en dit pas trop sur ses manips.
Il n'a pas confirmé l'absence de ligne rouge, ni l'install dans un module
standard.

--
à+twinley
"Misange" <mis...@devinez-ou.net> a écrit dans le message de
news:e8RI5G1u...@TK2MSFTNGP09.phx.gbl...

Misange

unread,
Oct 26, 2004, 9:23:23 AM10/26/04
to
Salut Twinley,
Le problème c'est que le copié collé remet des sauts de lignes
intempestifs... regarde ton message, tu verras que la déclaration de
variables est sur deux lignes par exemple.

on 26/10/2004 14:14:

Christian

unread,
Oct 26, 2004, 11:54:20 AM10/26/04
to
Bonjour Misange
Merci pour ces conseils.
Je vérifie et espère que cela ira.
Christian
>-----Message d'origine-----
>.
>

Christian

unread,
Oct 26, 2004, 12:28:15 PM10/26/04
to
Merci à vous deux Misange et Twinley pour vos conseils.
Cela a bien fonctionné.
Effectivement, après avoir mis bout à bout le code,
Je n'ai plus eu de ligne en rouge.
Je ne vous remercierai jamais assez.
Bonne fin de journée
Christian
>-----Message d'origine-----
>.
>

twinley at

unread,
Oct 26, 2004, 12:29:39 PM10/26/04
to
Bien vu, merci Misange. J'aurais dû préciser ce que tu as rajouté pour les
césures.

--
à+twinley
"Misange" <mis...@devinez-ou.net> a écrit dans le message de

news:ebM8771u...@TK2MSFTNGP11.phx.gbl...

twinley at

unread,
Oct 26, 2004, 3:16:38 PM10/26/04
to
tu as un oeil d'aigle Misange

--
à+twinley
"Christian" <anon...@discussions.microsoft.com> a écrit dans le message de
news:09fa01c4bb78$cb41e720$a401...@phx.gbl...

sabatier

unread,
Oct 26, 2004, 3:28:21 PM10/26/04
to
conclusion : ne jamais rendre à césure ce qui ne lui appartient pas...
jps

"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:%23T6B$j3uEH...@TK2MSFTNGP09.phx.gbl...

twinley at

unread,
Oct 26, 2004, 3:41:34 PM10/26/04
to
clap clap clap

--
à+twinley
"sabatier" <biscotteUnScud...@wanadoo.fr> a écrit dans le message
de news:%23KER2H5...@TK2MSFTNGP12.phx.gbl...

0 new messages