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
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