Bloquer une fenêtre Excel

Résolu
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006 - 26 juin 2006 à 15:32
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 - 26 juin 2006 à 16:28
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

alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
26 juin 2006 à 16:13
Dans ta macro tu insere une userform puis tu va dans outils--->controle supplementaires et tu coches microsoft progressbar, ensuite tu peux l'utiliser
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 juin 2006 à 16:23
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
3
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
26 juin 2006 à 16:28
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
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 juin 2006 à 15:45
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
0

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

Posez votre question
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
26 juin 2006 à 15:47
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
0
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006
26 juin 2006 à 15:47
Ca m'arrangerais encore plus en effet mais comment faire une progressBar stp ?
0
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006
26 juin 2006 à 15:51
Merci alosamoelle, mais je préfère visionner le déroulement du programme lors de son exécution.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 juin 2006 à 16:00
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
0
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006
26 juin 2006 à 16:05
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 ?
0
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006
26 juin 2006 à 16:17
Merci beaucoup, je vais essayer !
0
Tobi26 Messages postés 56 Date d'inscription vendredi 21 avril 2006 Statut Membre Dernière intervention 6 juillet 2006
26 juin 2006 à 16:26
Merci beaucoup, je vais essayer avec vos conseils !

@++ !
0
Rejoignez-nous