Probleme pour déchargé une feuille

Signaler
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010
-
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010
-
Bonsoir a tous

donc voici mon problème je veux optimiser un code trouver sur VBF et dans ce
code il y a un fichier CLS que vous trouverez ici: http://files.codes-sources.com/fichier.aspx?id=7928&f=MKCommonDialogCls.cls

Donc le problème de se code c'est que quand on veut
décharger la feuille on peut pas car il fait un mini reset

allez à la ligne: 633
c'est la que ya problème donc on a le code du mini reset ce que j'ai fait:

<li>'Mini-Reset...</li><li>With lclOpenFile
</li><li> .lpstrInitialDir = "C:"
</li><li> .lpstrTitle = vbNullString
</li><li> .FLAGS = cdlFILEMUSTEXIST Or cdlPATHMUSTEXIST Or cdlHIDEREADONLY
</li><li> .lpstrFilter = vbNullString
</li><li> .nFilterIndex = 1
</li><li> .lpstrDefExt = vbNullString
</li><li>EndWith</li><li>EndFunction</li>

remplacé par:

<li>'Mini-Reset...</li>End
<li>EndFunction</li>

seulement ya un problème c'est que toute les form
se ferme et idem si on place Unload Me

je veux juste fermer le contrôle CommonDialog

voila merci d'avance

10 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
105
LOL c'est sur que là c'est optimisé ! Un End quitte brutalement ton programme, il ne ferme pas uniquement une feuille !
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010

Oui je sais mais je pençait que...
enfin bon ça commence a ménervé la c'est pas dans mes capacité la j'aimerait bien comprendre comment la feuille se décharge par exemple pour ouvrire un programme car elle se décharge pour ouvrire mais je sais pas comment
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Je comprend pas trop ce que tu veux faire là.

Je n'ai pas utiliser cette classe mais en analysant son code, si je comprend bien, c'est une classe qui se sert du Common Dialog de Windows pour récupérer le nom d'un fichier.

Tu dis vouloir fermé le Common Dialog, s'il s'agit de la fenetre de Windows, elle ne se fermeras que sur le click d'un de ses boutons. De plus au niveau de code que tu donne, elle est déjà fermée depuis longtemps.

La fenetre de dialogue est ouverte sur l'instruction GetOpenFileName (ligne 580). C'est instriction est bloquante, c'est à dire qu'elle ne se terminera pas avant tant que la fenetre ne sera pas fermée. Donc quand tu execute la ligne 581, c'est parce que la fenetre a été fermée.

Mais si tu souhaite vraiment te débarassé de ce "mini reset", supprime simplement les lignes sans rajouter de End. Le End est une instruction pour fermer brutalement l'application et ne doit etre utiliser qu'à la toute fin du programme.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010

casy ce que je veut faire c'est pouvoire fermer ce Common Dialog car quand on clique sur le bouton anuler  ça fai apelle a la fonction mini reset et moi je veut que elle se ferme  et que ça revienne a la form1
et en supriment mini reset ça ne semble pas marché (lol ?)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Vérife que ton problème vienne bien de ce bout de code, j'en suis pas sûr.

Le mini reset est executer quelque soit le bouton qui a été cliqué. Quant au code executer sur c'est le bouton annuler qui est ciqué, il se situe juste avant et se résume à ceci :

<li>Else</li><li>'Le bouton "Cancel" as été cliqué?</li><li>If (lclCancelError) Then</li><li> ShowOpen = cdlCancel
</li><li>'Else</li><li>EndIf</li><li>EndIf</li>

Ce n'est pas ce code qui pose problème. Ce n'est pas non plus le mini reset qui ne fait que réinitialiser quelques variables.

Sinon fait une execution pas à pas pour voir d'ou vient ton problème.

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010

oui merci casy ça va bien de la
<li>Else</li><li>'Le bouton "Cancel" as été cliqué?</li><li>If (lclCancelError) Then</li><li> ShowOpen = cdlCancel
</li><li>'Else</li><li>EndIf</li><li>EndIf</li>

mais comment déchargé le Common Dialog a partir de la?
j'ai eseillé terminate et des autre variable mais ça ne marche pas, je suis sur c'est encor un truc tous con xD
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
"...mais comment déchargé le Common Dialog a partir de la?..."

Comme je te l'ai déjà dit tout à l'heure, lorsque tu execute ces instructions, le common dialog est déjà déchargé


Si ce n'est pas la cas, c'est que tu as un problème ailleurs, mais en tout cas pas dans ce code.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010

non il n'est pas déchargé car la fentre et présente
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Heu question bête, pourquoi ne pas tout simplement changer de CommonDialog ?
Si tu veux, j'en ai un très très simple dans mes sources

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
Messages postés
79
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
28 août 2010

Oui je veut bien mais je ne sais pas l'intégré au code de la form 
c'est pas que je sais pas comment la faire marché et tou mais le CommonDialog de makabey gere des variable et ts et ça je m'aitrise pas