Fichier *.frx très important

bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006 - 6 juin 2006 à 11:59
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 6 juin 2006 à 17:39
Bonjour,

J'ai actuellement un problème lorsque j'enregistre ma feuille excel
(juste après l'avoir ouverte et sans aucune modifiication), sa taille
s'incrémente à chaque fois de plusieurs centaines de Ko voir quelques
Mo par la suite !!!! Par contre si j'enregistre a nouveau (sans l'avoir
fermé), le poids reste stable.


J'ai dans ce classeur : des modules, des userforms, des modules de classe...

Après quelques recherches je me  suis rendue compte que c'était le
fichier *.frx d'un de mes userforms qui gonflait le classeur.

Dans ce userform j'ai plusieurs contrôles dont quatre MSFlexgrids qui semblent etre à l'origine du problème.

En effet quand je les supprime, le .frx reprend une taille normale ainsi que le classeur...


Je ne comprends pas cette augmentation de taille qui ne s'effectue qu'à
l'ouverture du classeur (meme si je ne charge pas la form en question
!)...


Y a t'il des précautions à respecter avec VBA et l'utilisation de
flexgrid?? (sachant que j'en utilise dans d'autre forms sans problème)

Merci de votre aide

21 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 12:33
Salut,

ça peut arriver !

Pour infos, qd tu fais un programme avec pas mal de Form et Module (Class y compris), la taille augmente au fur et à mesure.
A la fin, j'ai fais 2 test : exporter les form et modules en les réintégrant et résultat : guère de place gagné.
Par contre, je réouvre un nouveau projet et insère les composants manuellement, copier / coller des contrôls et des codes et résultat : 20 à 40 % de réduction de la taille.

Je sais pas pourquoi mais c'est comme ça...

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 juin 2006 à 13:59
Les fichiers frx (en vb6) stockent surtout les données binaires (images principalement). Donc si ton userform contient beaucoup d'image, ca vient de là !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 14:07
Salut DarkSidious,

juste pour compléter ce que tu viens de dire :
dès fois j'exporte des Form et je les intègre ailleurs. Y'a t-il une incidence si on les supprime ? (avant de les avoir importer dans le nouveau projet, bien sûr !)

Merci

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 14:42
pour ma part je n'ai aucune image, pourtant après quelques enregistrements j'ai un .frx de quelques Mo.

Mais si je supprime les quatre flexgrids qui sont dans mon form, il redevient normal en taille.

Il n'y a pas d'autres moyens?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juin 2006 à 15:04
salut,
un peu à taton comme Dark (ne connaissant pas VBA), voici une comparaison en VB6 :

une Form sans image sans rien..... aucun frx.
un label dont le caption sera... "bonjour", rien
par contre un caption de déjà 20 ou 30 caractères, il sera stocké en binaire dans le frx.

je suppose que c'est çà ici ton problème..., des contrôles (peut-être entêtes de flex et autres) dont certaines infos sont stoqués dans tes frx...

++
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juin 2006 à 15:06
ps : tout comme juste un BMP en image de fond peut expliquer la taille... (pas le fait qu'il augmente pour autant)

Mortalino -> non tu peux sans perte, du moment que le projet important (qui fait l'importation....) a les références et objets (composants) nécessaires avant l'importation
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 15:16
Salut PCPT,

Merci pour la confirmation, j'étais pas sûr car jusqu'à présent, toutes mes application VB6 se trouvent sur mon PC et je n'en ai pas testé sur d'autres.

Bonne aprem !

@++

  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 15:24
salut PCPT, 

j'avais essayé justement de faire un .clear après utilisation de ma
flex (pour enlever tous les textes) mais aucun aucun résultat valable,
la taille augmente toujours...

Ce qui me gène le plus, c'est que je n'ai  meme pas chargé cette form quand j'enregistre, pourtant le .frx s'incrèmente...

dans cette meme application, j'ai d'autre useforms avec flex qui ne
posent aucun pb, la seule diiférence : dans celle ci est que j'utilise
les propriétés .coldata et.rowdata en plus, mais je ne pense pas que
cela est une incidence?!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juin 2006 à 15:28
à mon avis non, mais peut-être est-ce particulier pour VBA...
(j'en doute mais j'en sais rien)

as-tu essayé de re-créer un nouveau projet et de copier/coller ces composants avec le minimum de code utile?
voir si le problème vient vraiment de là?
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 15:51
quand j'exporte la form, puis que je la réimporte dans un nouveau
fichier .xls vierge de toute autre form, le problème d'incrémentation
continue...

je vais essayer de recréer cette form pas a pas pour voir a quel moment ca dérape , mais je sais que j'avais deja essayé sans trè grand succès...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 16:05
Pas d'exportation ; Copier / Coller seulement.
Sur mon 1er message c'est justement ce que je disais :
avec exportation puis importation sur nouveau projet, cela ne change rien (et c'est en vba que j'ai testé ça)
par contre, ouvres un nouveau fichier excel en parallèle, et recrée tes UserForm, de l'ancien tu fais "copier" (de tous tes contrôls) que tu colles dans la nouvelle form et ainsi de suite.

Puis tu colles le code.

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 16:10
bin avec cette méthode, en effet mon fichier n'est pas très lourd, mais
après quelques enregistrements je me retrouve a nouveau avec plusieurs
Mo en poids de fichier ....
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juin 2006 à 16:23
ummm, tu fais bien un .clear ou un .rows = 0 au Unload ? (au cas où ...)
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 16:27
bin je fais un .clear sur l'évenement terminate... ca revient au meme non?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juin 2006 à 16:30
clear enlève le contenu, rows = 0 enlève le contenu et les lignes...

et au terminate, je suppose que c'est bon aussi.....


désolé là je ne vois pas....
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 16:43
j'ai remarqué que kan je supprime les flexgrids (sans toucher au code),
puis que j'en remets d'autres (meme noms et propriétés) je récupère un
poids normal, jusq'aux prochains enregeistrements...

Je voudrais donc essayer de contourner mon problème ne créant des MSFlegrid dynamiques. Question est ce possible dans VBA?

pour l'instant j'ai essayé ca (dans mon userform) :

dim withs events grdTraitMesures as MSFlexgrid

Private Sub UserForm_Initialize()

    Set grdTraitMesures = Controls.Add("MSForms.MSflexgrid.1","grdTraitMesures" , Visible)

end sub

mais j'ai une erreur : chaine de classe incorrecte


et si je fais set grdTraitMesures = New MSFlexgrid, c'est pas mieux excel se ferme

Comment dois je procéder?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 17:05
Salut,

essai de trouver
Microsoft FlexGrid Control 6.0 (C:\WINDOWS\System32\Msflxgrd.ocx) dans les contrôles supplémentaires et coche le.

Là je suis au taf donc je sais pas si c'est l'ordi ou non mais quand je le rajoute à VBA Excel, c'est nickel mais par contre, quand je le sélectionne pour le tracer sur le UserForm, j'ai un message
"Le contrôle ne peut se créer, [en gros], car pas de license"
mais ça vaut le coup pour toi d'essayer

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 17:16
Commen tu fais pour créer ta flexgrid dynamiquement?

parce j'ai bien Microsoft FlexGrid Control 6.0 dans les controles suplémentaires, mais je n'y arrive pas
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 juin 2006 à 17:23
Désolé mais je ne l'utilise pas encore...  mais regarde là :
http://www.vbfrance.com/recherche.aspx?r=Flexgrid+excel&tr=source

@++




  Mortalino 
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
0
bandit girl Messages postés 9 Date d'inscription lundi 10 avril 2006 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 17:33
ok merci
0
Rejoignez-nous