Bloquer une fenêtre Excel [Résolu]

Signaler
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006
-
Messages postés
129
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
23 mai 2009
-
Bonjour à tous,

J'ai un programme qui est assez long à executer (environ 1 minute) et j'aimerai bloquer la fenêtre Excel lors de son exécution , car lorsque je clique sur la feuille où s'exécute le programme, un débogage se produit.

Existe t'il donc un code qui permet de bloquer une fenêtre Excel pendant l'éxecution d'un programme ?
Le langage utilisé étant le langage VBA Excel.

Merci bcp !

11 réponses

Messages postés
129
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
23 mai 2009

Dans ta macro tu insere une userform puis tu va dans outils--->controle supplementaires et tu coches microsoft progressbar, ensuite tu peux l'utiliser
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
et l'idéal, c'est d'imbriquer le "Value" du progressbar avec tes boucles (si tu en as mais je pense que OUI)

Style:

For i = 1 To 10000
   ProgressBar1.Value = 100 / 10000 * i
   DoEvents
Next i

c'est schematique, pour te filer en gros comment l'imbriquer


















@++
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>  Mortalino 

Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
Messages postés
129
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
23 mai 2009

Il y a plein d'exemple pour ton bonheur sur le site mais l'essentiel est
progressbar.min = 0 (début de ta progressbar)
progressbar.max = 1000 si t'a valeur max est 1000
et progressbar.value pour la valeur actuel comme le montre l'exemple de mortalino
Bon courage
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Pourquoi t'affiche pas un UserForm (showModal = True) avec un ProgressBar ?
Comme ça l'utilisateur sait à peu près où en est le programme.
Dès que le ProgressBar arrive à 100%, tu fais fermer ce UserForm.

Je vois pas mieux.


















@++
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype>  Mortalino 

Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
Messages postés
129
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
23 mai 2009

Je ne sais pas si cette fonction existe mais tu peux rendre ta feuille invisible pour éviter de cliquer dedans en mettant au début de ta macro
Workbooks.Application.Visible = False
et à la fin
Workbooks.Application.Visible = True
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Ca m'arrangerais encore plus en effet mais comment faire une progressBar stp ?
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Merci alosamoelle, mais je préfère visionner le déroulement du programme lors de son exécution.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Met ton code qui est exécuté car là comme ça, c'est pas évident d'expliquer ; ça dépend de plusieurs paramètres



















@++
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /?><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>  Mortalino 

Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Le problème c'est que mon code ne fait pas loin de 4000 lignes, et en passer un bout ne servirais à rien je pense. N'y aurait-il pas un lien avec des ProgressBar en VBA Excel dans ce forum que j'essai de comprendre le code pour pouvoir le reproduire ?
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Merci beaucoup, je vais essayer !
Messages postés
56
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Merci beaucoup, je vais essayer avec vos conseils !

@++ !