NOOOON excel n'a pas planté !!!!!!

edjo123

XLDnaute Junior
Bonjour Forum

En fait j'ai un enssemble de macros qui agissent sur les feuilles de mon classeur. Seulement les étapes de l'execution defilaient à l'ecran. Du coup, j'ai encadré chacune de mes macros par
application.screenupdating=false et
application.screenupdating=true.
Cela m'a permis de reduire un peu le temps d'execution mais cependant le temps d'execution est toujours vachement long et un observateur "exterieur" (autre que moi !!!!) de mon ecran pourrait croire qu'excel a planté.

J'aimerais pouvoir afficher un petit message sur la barre de statut ou ailleurs pendant le temps de l'execution pour rassurer les potentiels utilisateurs de mon outil ou encore donner un "signal" que le programme est toujours en train de tourner et qu'il n y a pas plantage.

J'espère que ma question est suffisament claire ?:confused::eek:

Savez vous comment faire SVP?
 

edjo123

XLDnaute Junior
Re : NOOOON excel n'a pas planté !!!!!!

Ca ne me satisfait pas

Voila ce que j'ai marqué

Private Sub OptionButton1_Click()

Application.ScreenUpdating = False

Delete_Commandbar
CreatingToolBarMales
e = SimulationSheet(ligM, colM)
f = CockpitSheet(colM, 8)
colM = colM
colF = colF
MsgBox ("patientez traitement en cours")
Application.ScreenUpdating = True

End Sub

Et en fait la msgbox apparaît quand les traitements sont achevés

pas d'autre solutions?
 

edjo123

XLDnaute Junior
Re : NOOOON excel n'a pas planté !!!!!!

Idem ca marche pas bien
car il suffit que l'utilisateur clique sur ok dans la msgbox pour que celle-ci disparaisse et ce même si les macros tournent encore !!!

Donc....je crains que ca ne résolve pas mon problème
 

youky(BJ)

XLDnaute Barbatruc
Re : NOOOON excel n'a pas planté !!!!!!

Bonjour à vous tous,
Peut être essayer aussi...
parfois on gagne du temps en sautant les calculs
Code:
Application.Calculation = xlCalculationManual
'la macro
Application.Calculation = xlCalculationAutomatic

A+
 

Cousinhub

XLDnaute Barbatruc
Re : NOOOON excel n'a pas planté !!!!!!

Bonjour,

essaie ainsi :

en début de code :

Code:
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Veuillez Patienter, traitement en cours!"

ton code, puis, en fin de code :

Code:
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
 

13GIBE59

XLDnaute Accro
Re : NOOOON excel n'a pas planté !!!!!!

Bonjour edjo, JeanPierre, le Forum

Edjo, essaie d'adapter le fichier joint à ton cas...

Courage !
 

Pièces jointes

  • barreprogression.zip
    27.4 KB · Affichages: 60
  • barreprogression.zip
    27.4 KB · Affichages: 57
  • barreprogression.zip
    27.4 KB · Affichages: 59

edjo123

XLDnaute Junior
Re : NOOOON excel n'a pas planté !!!!!!

@ 13GIBE59

Une solution coe la tienne me conviendrait parfaitement, j'aime bien l'idée de la barre de progression, le problème c'est que ton code de création de cette barre est intimement lié à ta macro et du coup je n'arrive pas à l'adapter

N y a til pas un moyen de créer cette barre de progression "à part"?
 

13GIBE59

XLDnaute Accro
Re : NOOOON excel n'a pas planté !!!!!!

Il me semble que dans le code :
Code:
Sub LaMacroQuiEstLongue()
'   Traduite de la macro exemple de Jonhn Walkenbach
'   Insère des nombres aléatoires sur la feuille active
    [COLOR=black]Dim Counter As Integer[/COLOR]
[COLOR=black]   Dim RowMax As Integer, ColMax As Integer[/COLOR]
[COLOR=black]   Dim r As Integer, c As Integer[/COLOR]
[COLOR=black]   Dim PourcentageEffectue As Single[/COLOR]
 
[COLOR=blue]   If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub[/COLOR]
[COLOR=blue]   Cells.Clear[/COLOR]
[COLOR=blue]   Counter = 1[/COLOR]
[COLOR=blue]   RowMax = 200[/COLOR]
[COLOR=blue]   ColMax = 25[/COLOR]
[COLOR=blue]   For r = 1 To RowMax[/COLOR]
[COLOR=blue]       For c = 1 To ColMax[/COLOR]
[COLOR=blue]           Cells(r, c) = Int(Rnd * 1000)[/COLOR]
[COLOR=blue]           Counter = Counter + 1[/COLOR]
[COLOR=blue]       Next c[/COLOR]
        PourcentageEffectue = Counter / (RowMax * ColMax)
        PourcentageEffectue = Format(Left(Format(PourcentageEffectue, "0.000"), 4), "#0.00")
        Call UpdateProgress(PourcentageEffectue)
    Next r
    Unload FrmProgression
End Sub
Sub UpdateProgress(PourcentageEffectue)
    With FrmProgression
        .FrameProgress.Caption = Format(PourcentageEffectue, "0%")
        .LabelProgress.Width = PourcentageEffectue * (.FrameProgress.Width - 10)
        .Repaint
    End With
End Sub

tu dois remplacer tout le texte en bleu par le code de ta macro, après avoir copié le userform et le module dans ton fichier, bien sûr.

Je n'ai pas eu le temps de tester chez moi !
 

Cousinhub

XLDnaute Barbatruc
Re : NOOOON excel n'a pas planté !!!!!!

De rien....

Je referai 17 000 Kms, tiens.....:mad:

PS, une barre de progression est forcément liée au code, et pour qu'elle s'adapte parfaitement, il faut connaitre le temps de traitement de chaque boucle, en y ajoutant le temps de traitement de la mise à jour.....

Au plaisir....
 

edjo123

XLDnaute Junior
Re : NOOOON excel n'a pas planté !!!!!!

Quelqu'un pourrait il me dire pkoi ce code ne focntionne pas ? En l'occurence il ne m'affiche rien dans la barre d'état

Private Sub OptionButton1_Click()

'Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Veuillez Patienter, traitement en cours!"



Delete_Commandbar
CreatingToolBarMales
e = SimulationSheet(ligM, colM)
f = CockpitSheet(colM, 8)
colM = colM
colF = colF

Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar

'Application.ScreenUpdating = True

End Sub
 

MJ13

XLDnaute Barbatruc
Re : NOOOON excel n'a pas planté !!!!!!

Bonjour à tous

Edjo (cela me rappele Dylan!).

Il est vrai que ton cas n'est pas simple puisque tu ne nous aides pas beaucoup. Pas le moindre petit bout de fichier.

C'est pas dans l'esprit du forum tout ça.

En plus ce que tu demandes avec est assez complexe a réaliser pusiqu'il faut déjà connaître le temps que vont tourner la ou les macros. Commence déjà par la ensuite ce sera plus simple a développer (comme le dit Hubert que je salue et qui préfère t'aider plutôt que d'aller se baigner:)).
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet