j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
Bonjour André,
Une réponse que j'ai déjà donnée ici :
Excel à la méchante habitude de conserver en mémoire comme la plage de cellules utilisée, la cellule A1 et la cellule la
plus éloignée dans laquelle tu as pu placé une information ou une formule. Si par exemple, tu effaces le contenu des
dernières lignes ou les dernières colonnes en trop parce que tu les as utilisées par exemple pour tester des trucs, des
expériences de toutes sortes ou simplement parce que tu avais des données désuètes , pour excel, l'étendue des cellules
qu'il garde en mémoire demeure la même. En excel, comme dans les autres logiciels, le texte (contenu des cellules), les
formules ou un module de code (macros), ne prennent pas beaucoup d'espace mémoire, mais la grandeur de la plage de
cellules que tu utilises dans chacune des feuilles requiert beaucoup d'espace. Comme excel conserve les lignes et les
colonnes en mémoire qui ne servent plus à rien parce qu'elles sont vides, tu peux te retrouver avec un gros fichier même
si le contenu est très limité.
Pour solutionner le problème des fichiers obèses, il s'agit de supprimer obligatoirement à l'aide de la commande du menu
édition / supprimer (à ne pas confondre avec le fait d'effacer le contenu des cellules), en sélectionnant dans toutes
les dernières lignes complètes et les dernières colonnes complètes qui contenaient des informations et qui n'en
contiennent plus et en utilisant la commande suggérée "Supprimer" . Tu peut faire la manoeuvre manuellement ou tu peux
utiliser la macro suivante.
Tu copies cette macro dans un module standard et tu l'exécutes.
Cela devrait faire le travail pour toutes les feuilles de ton classeur.
Cette macro est inspirée de celle de jacxl ...
'-------------------------------
Sub ménage()
Dim sh As WorkSheet
On Error Resume Next
For Each sh In Worksheets
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
'-----------------------------------------
En supplément,
Lorsque tu élabores ton classeur, si tu veux faire des expériences ( peu importe la nature) c'est une très mauvaise idée
d'utiliser les "Scrollbar" (les ascenseurs) et effectuer tes test en bas ou à droite de ta zone de travail. Lorsque tu
effaces les données de ton test, tu pourrais oublier quelques cellules qui ont par exemple seulement un espace (fait pas
la barre d'espacement) ou une formule qui retourne "", donc non visible à l'oeil, et, cela pourrait être suffisant pour
rendre certaines macros inopérantes à cause de cela. Il n'est pas facile par la suite de trouver pourquoi certaines
macros ne donnent pas le résultat attendu. IL est très important de protéger l'espace de travail de sa feuille de toutes
données indésirables que l'on ne désire pas conserver. Tu es mieux d'utiliser une feuille destinée spécialement à ça.
Quand ton classeur est terminé, Tu supprimes cette feuille. C'est beaucoup plus sécuritaire.
À cet égard, si la macro sur les fichiers obèses ne donnent pas un bon résultat , et, que tu as fait toutes sortes
d'expériences comme décrit ci-haut, il se peut qu'à cause de certaines cellules qui ne sont pas complètement vides que
la macro ne fonctionne pas correctement. Il faudra que tu utilises la commande "Supprimer" pour supprimer toutes les
lignes et colonnes devenues inutiles.
Salutations!
"André" <andré@aol.com> a écrit dans le message de news:
Bonjour à tous
2 questions en une si vous le permettez...
J'ai fait un logiciel avec des macros et l'ai distribué dans différentes
villes..
puis je le mets à jour périodiquement chez moi...
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko (je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut compiler les
macros et ça va plus vite..
mais que veut dire "arguments conditionnels de compilation" dans la boite
de dialogue propriétés de VBA :
J'ai dans mes macro une passe conditionnelle #if# fonction de la plateforme
sur laquelle mon logiciel tourne..
Cette condition est elle bloquée sur la configuration de ma plateforme si je
compile puis distribue ?
j'éspère etre assez clair mais va savoir...
En tous cas merci d'avance et Une noix d'honneur à qui me dépannera... Merci
Bonjour André,
Une réponse que j'ai déjà donnée ici :
Excel à la méchante habitude de conserver en mémoire comme la plage de cellules utilisée, la cellule A1 et la cellule la
plus éloignée dans laquelle tu as pu placé une information ou une formule. Si par exemple, tu effaces le contenu des
dernières lignes ou les dernières colonnes en trop parce que tu les as utilisées par exemple pour tester des trucs, des
expériences de toutes sortes ou simplement parce que tu avais des données désuètes , pour excel, l'étendue des cellules
qu'il garde en mémoire demeure la même. En excel, comme dans les autres logiciels, le texte (contenu des cellules), les
formules ou un module de code (macros), ne prennent pas beaucoup d'espace mémoire, mais la grandeur de la plage de
cellules que tu utilises dans chacune des feuilles requiert beaucoup d'espace. Comme excel conserve les lignes et les
colonnes en mémoire qui ne servent plus à rien parce qu'elles sont vides, tu peux te retrouver avec un gros fichier même
si le contenu est très limité.
Pour solutionner le problème des fichiers obèses, il s'agit de supprimer obligatoirement à l'aide de la commande du menu
édition / supprimer (à ne pas confondre avec le fait d'effacer le contenu des cellules), en sélectionnant dans toutes
les dernières lignes complètes et les dernières colonnes complètes qui contenaient des informations et qui n'en
contiennent plus et en utilisant la commande suggérée "Supprimer" . Tu peut faire la manoeuvre manuellement ou tu peux
utiliser la macro suivante.
Tu copies cette macro dans un module standard et tu l'exécutes.
Cela devrait faire le travail pour toutes les feuilles de ton classeur.
Cette macro est inspirée de celle de jacxl ...
'-------------------------------
Sub ménage()
Dim sh As WorkSheet
On Error Resume Next
For Each sh In Worksheets
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
'-----------------------------------------
En supplément,
Lorsque tu élabores ton classeur, si tu veux faire des expériences ( peu importe la nature) c'est une très mauvaise idée
d'utiliser les "Scrollbar" (les ascenseurs) et effectuer tes test en bas ou à droite de ta zone de travail. Lorsque tu
effaces les données de ton test, tu pourrais oublier quelques cellules qui ont par exemple seulement un espace (fait pas
la barre d'espacement) ou une formule qui retourne "", donc non visible à l'oeil, et, cela pourrait être suffisant pour
rendre certaines macros inopérantes à cause de cela. Il n'est pas facile par la suite de trouver pourquoi certaines
macros ne donnent pas le résultat attendu. IL est très important de protéger l'espace de travail de sa feuille de toutes
données indésirables que l'on ne désire pas conserver. Tu es mieux d'utiliser une feuille destinée spécialement à ça.
Quand ton classeur est terminé, Tu supprimes cette feuille. C'est beaucoup plus sécuritaire.
À cet égard, si la macro sur les fichiers obèses ne donnent pas un bon résultat , et, que tu as fait toutes sortes
d'expériences comme décrit ci-haut, il se peut qu'à cause de certaines cellules qui ne sont pas complètement vides que
la macro ne fonctionne pas correctement. Il faudra que tu utilises la commande "Supprimer" pour supprimer toutes les
lignes et colonnes devenues inutiles.
Salutations!
"André" <andré@aol.com> a écrit dans le message de news: BAD24098-9342-4BDC-A29D-13B76B60B661@microsoft.com...
Bonjour à tous
2 questions en une si vous le permettez...
J'ai fait un logiciel avec des macros et l'ai distribué dans différentes
villes..
puis je le mets à jour périodiquement chez moi...
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko (je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut compiler les
macros et ça va plus vite..
mais que veut dire "arguments conditionnels de compilation" dans la boite
de dialogue propriétés de VBA :
J'ai dans mes macro une passe conditionnelle #if# fonction de la plateforme
sur laquelle mon logiciel tourne..
Cette condition est elle bloquée sur la configuration de ma plateforme si je
compile puis distribue ?
j'éspère etre assez clair mais va savoir...
En tous cas merci d'avance et Une noix d'honneur à qui me dépannera... Merci
Bonjour André,
Une réponse que j'ai déjà donnée ici :
Excel à la méchante habitude de conserver en mémoire comme la plage de cellules utilisée, la cellule A1 et la cellule la
plus éloignée dans laquelle tu as pu placé une information ou une formule. Si par exemple, tu effaces le contenu des
dernières lignes ou les dernières colonnes en trop parce que tu les as utilisées par exemple pour tester des trucs, des
expériences de toutes sortes ou simplement parce que tu avais des données désuètes , pour excel, l'étendue des cellules
qu'il garde en mémoire demeure la même. En excel, comme dans les autres logiciels, le texte (contenu des cellules), les
formules ou un module de code (macros), ne prennent pas beaucoup d'espace mémoire, mais la grandeur de la plage de
cellules que tu utilises dans chacune des feuilles requiert beaucoup d'espace. Comme excel conserve les lignes et les
colonnes en mémoire qui ne servent plus à rien parce qu'elles sont vides, tu peux te retrouver avec un gros fichier même
si le contenu est très limité.
Pour solutionner le problème des fichiers obèses, il s'agit de supprimer obligatoirement à l'aide de la commande du menu
édition / supprimer (à ne pas confondre avec le fait d'effacer le contenu des cellules), en sélectionnant dans toutes
les dernières lignes complètes et les dernières colonnes complètes qui contenaient des informations et qui n'en
contiennent plus et en utilisant la commande suggérée "Supprimer" . Tu peut faire la manoeuvre manuellement ou tu peux
utiliser la macro suivante.
Tu copies cette macro dans un module standard et tu l'exécutes.
Cela devrait faire le travail pour toutes les feuilles de ton classeur.
Cette macro est inspirée de celle de jacxl ...
'-------------------------------
Sub ménage()
Dim sh As WorkSheet
On Error Resume Next
For Each sh In Worksheets
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireRow, _
sh.Cells.Find("*", , xlFormulas, _
, xlByRows, xlPrevious).EntireRow) _
.Offset(1, 0).Delete
sh.Range(sh.Cells.SpecialCells( _
xlCellTypeLastCell).EntireColumn, _
sh.Cells.Find("*", , xlFormulas, _
, xlByColumns, xlPrevious). _
EntireColumn).Offset(0, 1).Delete
Next
ActiveWorkbook.Save
Set Sh = Nothing
End Sub
'-----------------------------------------
En supplément,
Lorsque tu élabores ton classeur, si tu veux faire des expériences ( peu importe la nature) c'est une très mauvaise idée
d'utiliser les "Scrollbar" (les ascenseurs) et effectuer tes test en bas ou à droite de ta zone de travail. Lorsque tu
effaces les données de ton test, tu pourrais oublier quelques cellules qui ont par exemple seulement un espace (fait pas
la barre d'espacement) ou une formule qui retourne "", donc non visible à l'oeil, et, cela pourrait être suffisant pour
rendre certaines macros inopérantes à cause de cela. Il n'est pas facile par la suite de trouver pourquoi certaines
macros ne donnent pas le résultat attendu. IL est très important de protéger l'espace de travail de sa feuille de toutes
données indésirables que l'on ne désire pas conserver. Tu es mieux d'utiliser une feuille destinée spécialement à ça.
Quand ton classeur est terminé, Tu supprimes cette feuille. C'est beaucoup plus sécuritaire.
À cet égard, si la macro sur les fichiers obèses ne donnent pas un bon résultat , et, que tu as fait toutes sortes
d'expériences comme décrit ci-haut, il se peut qu'à cause de certaines cellules qui ne sont pas complètement vides que
la macro ne fonctionne pas correctement. Il faudra que tu utilises la commande "Supprimer" pour supprimer toutes les
lignes et colonnes devenues inutiles.
Salutations!
"André" <andré@aol.com> a écrit dans le message de news:
Bonjour à tous
2 questions en une si vous le permettez...
J'ai fait un logiciel avec des macros et l'ai distribué dans différentes
villes..
puis je le mets à jour périodiquement chez moi...
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko (je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut compiler les
macros et ça va plus vite..
mais que veut dire "arguments conditionnels de compilation" dans la boite
de dialogue propriétés de VBA :
J'ai dans mes macro une passe conditionnelle #if# fonction de la plateforme
sur laquelle mon logiciel tourne..
Cette condition est elle bloquée sur la configuration de ma plateforme si je
compile puis distribue ?
j'éspère etre assez clair mais va savoir...
En tous cas merci d'avance et Une noix d'honneur à qui me dépannera... Merci
Bonjour,j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(jen'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
Cela arrive souvent dans des classeurs avec des macros.
Il a peut-être quelque chose là-dessus dans Excelabo.
Il y a aussi VBA Clode Cleaner de Rob Bovey:
http://www.bmsltd.ie/MVP/Default.htm
Vers le bas de la page2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
En fait, la "compilation" demeure une compilation strictement
"interne" et ne génère pas d'exécutable.
Tu pourrais envisager, d'utiliser un vrai langage compilé et piloter
Excel par automation, mais je ne suis pas convaincu que que ce serait
un meilleur choix. Personnellement, je trouve que la combinaison
VB6-Excel 2002 donne des applications fragiles. (Pour d'autres
langages, ou d'autres version de VB, et d'Excel, je ne sais pas). De
plus, dès que tu pilotes Excel en mode "invisible", tu dois tuer Excel
en passant par l'API à la fin. Puis Automation demande beaucoup de
ressources, et il est préférable d'avoir beaucoup de mémoire.
D'un autre côté, VB-VisualStudio vien avec plusieurs contrôles de type
"grille". Sauf que tu dois tout programmer. Mais là, tu aurais
probablement une application plus stable.
Bonjour,
j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(je
n'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
Cela arrive souvent dans des classeurs avec des macros.
Il a peut-être quelque chose là-dessus dans Excelabo.
Il y a aussi VBA Clode Cleaner de Rob Bovey:
http://www.bmsltd.ie/MVP/Default.htm
Vers le bas de la page
2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
En fait, la "compilation" demeure une compilation strictement
"interne" et ne génère pas d'exécutable.
Tu pourrais envisager, d'utiliser un vrai langage compilé et piloter
Excel par automation, mais je ne suis pas convaincu que que ce serait
un meilleur choix. Personnellement, je trouve que la combinaison
VB6-Excel 2002 donne des applications fragiles. (Pour d'autres
langages, ou d'autres version de VB, et d'Excel, je ne sais pas). De
plus, dès que tu pilotes Excel en mode "invisible", tu dois tuer Excel
en passant par l'API à la fin. Puis Automation demande beaucoup de
ressources, et il est préférable d'avoir beaucoup de mémoire.
D'un autre côté, VB-VisualStudio vien avec plusieurs contrôles de type
"grille". Sauf que tu dois tout programmer. Mais là, tu aurais
probablement une application plus stable.
Bonjour,j'ai donc ajouté qq macros mais très peu
je récupère un des anciens déjà en utilisation et il fait 1200 ko
(jen'avais pas noté ça)
je viens de me rendre compte que le mien fait maintenant 3200 ko !!!
Ils fonctionnent tous les deux parfaitement...!!!
je ne vois rien d'accroché au mien Que peut il se passer ?
Cela arrive souvent dans des classeurs avec des macros.
Il a peut-être quelque chose là-dessus dans Excelabo.
Il y a aussi VBA Clode Cleaner de Rob Bovey:
http://www.bmsltd.ie/MVP/Default.htm
Vers le bas de la page2°) Malgré que VBA soit un interptétateur, je vois qu'on peut
compiler les macros et ça va plus vite..
En fait, la "compilation" demeure une compilation strictement
"interne" et ne génère pas d'exécutable.
Tu pourrais envisager, d'utiliser un vrai langage compilé et piloter
Excel par automation, mais je ne suis pas convaincu que que ce serait
un meilleur choix. Personnellement, je trouve que la combinaison
VB6-Excel 2002 donne des applications fragiles. (Pour d'autres
langages, ou d'autres version de VB, et d'Excel, je ne sais pas). De
plus, dès que tu pilotes Excel en mode "invisible", tu dois tuer Excel
en passant par l'API à la fin. Puis Automation demande beaucoup de
ressources, et il est préférable d'avoir beaucoup de mémoire.
D'un autre côté, VB-VisualStudio vien avec plusieurs contrôles de type
"grille". Sauf que tu dois tout programmer. Mais là, tu aurais
probablement une application plus stable.