Userform qui stoppe une macro

laurano

XLDnaute Junior
Bonjour,

J'ai mis en place une macro qui est assez longue à exécuter et je veux donc l'assompagner d'un userform qui donne l'état d'avancée de l'exécution. J'ai donc créé un userform que j'ai appelé ATTENTE et que j'ai intégré au niveau de ma macro comme suit :

Sub Traitement_RLP_Brut()
'
Application.ScreenUpdating = False

ATTENTE.TRAITEMENT.Caption = "RLP"
ATTENTE.DETAIL.Caption = "Mise en forme du relevé de prix..."
ATTENTE.Show

Sheets("DONNEES").Visible = True
Sheets("TRAITEMENT").Visible = True
Dim LRLP As Long
Sheets("RLP BRUT").Activate
LRLP = Range("A3").CurrentRegion.Rows.Count - 1

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("G4").FormulaR1C1 = "=VALUE(RC[1])"
Range("g4").Select
Selection.AutoFill Destination:=Range(Cells(4, 7), Cells(4 + LRLP - 1, 7))
Range(Cells(4, 7), Cells(4 + LRLP - 1, 7)).Copy
Range(Cells(4, 8), Cells(4 + LRLP - 1, 8)).PasteSpecial Paste:=xlPasteValues
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft

etc...

Mon problème est que en fait à partir du moment où ma fenêtre s'affiche, la macro s'arrête : plus exactement, ce n'est pas qu'elle s'arrête à proprement parler, mais elle n'avance plus. il faut que je ferme la fenêtre pour qu'elle reprenne son cours. Qu'est-ce que je dois faire pour que même quand la fenêtre s'affiche, le code qui suit continue à s'exécuter ?

Merci
 

laurano

XLDnaute Junior
Re : Userform qui stoppe une macro

Les temps d'exécution sont longs surtout parve qu'il y a beaucoup de recherchev qui se mettent en place. Ceci étant, tu as raison, il faut que je fasse le ménage dans les "select" dont je sais qu'effectivement ils ralentissent l'exécution. En revanche, pour les "activate", ça me parait plus difficile.

Quoiqu'il en soit, je vais essayer ton show0. Je n'utilisais pas cette instruction avec Excel 2003. J'imagine que c'est une nouveauté de 2007 ?
 

laurano

XLDnaute Junior
Re : Userform qui stoppe une macro

Bon j'ai pas compris ton instruction : j'avais cru comprendre qu'il fallait show0 mais non ça n'existe pas. Je me suis dit qu'il fallait que je mette un x à la fin du nom de l'usf mais ça marche pas non plus...
 
C

Compte Supprimé 979

Guest
Re : Userform qui stoppe une macro

Bonjour Laurano,
Salut C² ;)

Ce que veux dire le squal, c'est l'utilisation du mode "Modal" à faux = 0
Et il n'a pas écris : userformx.Show0
Mais : userformx.Show[Espace]0

Sinon tu peux l'utiliser sous cette forme :
Code:
ATTENTE.Show (False)

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 448
Messages
2 088 507
Membres
103 873
dernier inscrit
Sabin