Userform "veuillez patienter svp" VBA pendant excution Macro

bibbip35

XLDnaute Occasionnel
Bonjour à tous

Je voudrais , afficher un message d'attente pendant l'excution d'une macro assez "longue"

Après des recherches, j'ai trouvé, ceci...mais le problème est je rentre ce code dans userform
ca me met 1 message d'erreur
"Impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée "

Je precise que je dois resté sous cette procédure modale ( option explicit en début de feuille )

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

FERMETURE.Show 0
FERMETURE.Repaint
"Macro"

Unload FERMETURE

Aurriez vous une solution a me proposée?

Merci a tous & bonne soirée

Bibbip35
 

camarchepas

XLDnaute Barbatruc
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

Bonjour Bibbip35 MJ13 Papou-net Roland_M , lle forum,

une solution que j'utilise ,

Permet d"animer l'avancement surtout si calcul en boucles
 

Pièces jointes

  • Message_attente.xlsm
    18.6 KB · Affichages: 263

Roland_M

XLDnaute Barbatruc
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

bonjour à tous,

salut à toi camarchepas !

effectivement "camarchebien" c'est une solution bien connue !
mais c'est toujours pareil, beaucoup d'entre nous, plus anciens, arrivons toujours à comprendre et adapter nos idées
mais le gros souci c'est pour donner des exemples ainsi, à des novices, et d'expliquer comment l'intégrer à leurs besoins

et c'est là toute la difficulté !

l'histoire de l'appel d'affichage dans les étapes, idéal en boucle, et la finale pour unloader !
pas facile ! il faudrait à chaque fois l'intégrer dans leurs codes, ça fini par être lourd !
 

Roland_M

XLDnaute Barbatruc
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

re

en voici deux autres BarreProgess1(de moi) et 2(je ne sais plus qui mais du forum)

perso j'utilise la mienne (1) barre que j'ai créé dans le statuts bar simple et efficace !
avec sauvegarde et remise en état de la barre à la fin

la 2' c'est une barre de progression dans un userf
 

Pièces jointes

  • BarreProgress2.xls
    29.5 KB · Affichages: 212
  • BarreProgress1.xls
    35.5 KB · Affichages: 128
  • BarreProgress1.xls
    35.5 KB · Affichages: 136
  • BarreProgress1.xls
    35.5 KB · Affichages: 121
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

re

j'en ai profité pour apporter qq modif à la barre dans status bar
plus facile à incorporer dans un code !
 

Pièces jointes

  • BarreProgress1.xls
    35.5 KB · Affichages: 135
  • BarreProgress1.xls
    35.5 KB · Affichages: 107
  • BarreProgress1.xls
    35.5 KB · Affichages: 170
Dernière édition:

Si...

XLDnaute Barbatruc
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

salut

un autre exemple sans programmation compliquée : le décompte a lieu à la fermeture du premier formulaire.
 

Pièces jointes

  • Alerte(UsF).xlsm
    39.9 KB · Affichages: 220

PFG60

XLDnaute Junior
Re : Userform "veuillez patienter svp" VBA pendant excution Macro

Bonjour à tous,

J'ai créer un fichier avec une macro multitâche assez longue.
Le problème est que je ne comprend pas comment intégrer le code du fichier "ClsProgressBarre" ci-joint à mon code afin d'afficher une barre de progression. Mon fichier initiale s'exécute en 5 minutes.
Pouvez-vous m'aider ?

Code:
Private Sub CommandButton1_Click()
'pour fusionner plusieurs classeurs d'un même répertoire
  ChDir ActiveWorkbook.Path
  Set classeurMaitre = ActiveWorkbook
  compteur = 1
  nf = Dir("*.xls")
  Do While nf <> ""
    If nf <> classeurMaitre.Name Then
      Workbooks.Open Filename:=nf
      For k = 1 To Sheets.Count
        Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
        classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "CM" & compteur
        compteur = compteur + 1
      Next k
      Workbooks(nf).Close False
    End If
    nf = Dir
  Loop
 
Sheets("Fusion").Activate
 
 
 
 
'pour fusionner les onglets du classeur
For i = 2 To Sheets.Count
    With Sheets(i)
        T = .Range("A2:K" & .Range("A200000").End(xlUp).Row).Value
        Range("A200000").End(xlUp).Offset(1).Resize(UBound(T, 1), UBound(T, 2)) = T
    End With
Next
 
Sheets("Fusion").Activate
Range("A2").Select
 
 
 
 
'pour supprimer les onglets après fusion
  Application.DisplayAlerts = False
  If Sheets.Count > 1 Then
    Sheets("Fusion").Move before:=Sheets(1)
    Sheets(2).Select
    For i = 2 To Sheets.Count
      ActiveSheet.Delete
    Next i
  End If
 
Sheets("Fusion").Activate
 
 
 
 

 
'concaténer
    Range("J200000").Select
    ActiveCell.FormulaR1C1 = _
        "=[@[Motif du contact - Réservation]]&[@[Motif du contact - Refus de réservation]]&[@[Motif du contact - Information]]&[@[Motif du contact - Billettique]]&[@[Motif du contact - Autre]]"
    Range("J200000").Select
    Selection.AutoFill Destination:=Range("CM_reponses[Motifs fusionnés]"), Type _
        :=xlFillDefault
    Range("CM_reponses[Motifs fusionnés]").Select
    Columns("E:I").Select
    Range("CM_reponses[[#Headers],[Motif du contact - Autre]]").Activate
    Selection.EntireColumn.Hidden = True
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A2").Select
 
 
 
 

 
'billettique
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "CM_reponses", Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Feuil10!R3C1", TableName:="Tableau croisé dynamique2", _
        DefaultVersion:=xlPivotTableVersion15
    Sheets("Feuil10").Select
    Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("Horodateur"), _
        "Nombre de Horodateur", xlCount
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Thème du contact")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Motifs fusionnés")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Thème du contact")
        .PivotItems("Autre").Visible = False
        .PivotItems("Information").Visible = False
        .PivotItems("Refus de réservation").Visible = False
        .PivotItems("Réservation").Visible = False
        .PivotItems("(blank)").Visible = False
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").TableStyle2 = _
        "PivotStyleMedium2"
    ActiveSheet.PivotTables("Tableau croisé dynamique2"). _
        ShowTableStyleColumnStripes = True
    Range("B4:B8").Select
    Selection.NumberFormat = "0.00"
    Selection.Style = "Comma"
    Selection.NumberFormat = _
        "_-* #,##0.0 _€_-;-* #,##0.0 _€_-;_-* ""-""?? _€_-;_-@_-"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    Range("B8").Select
    Sheets("Feuil10").Select
    Sheets("Feuil10").Name = "Billettique"
    Sheets("Billettique").Select
    Sheets("Billettique").Move After:=Sheets(2)
    Sheets("Billettique").Select
    ActiveWindow.DisplayGridlines = False
    Sheets("Fusion").Select
    Range("A2").Select
 
 
 
 

 
'médias entrants
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "CM_reponses", Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Feuil11!R3C1", TableName:="Tableau croisé dynamique3", _
        DefaultVersion:=xlPivotTableVersion15
    Sheets("Feuil11").Select
    Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("Horodateur"), _
        "Nombre de Horodateur", xlCount
    With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Média du contact")
        .PivotItems("(blank)").Visible = False
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Média du contact")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique3"). _
        ShowTableStyleColumnStripes = True
    ActiveSheet.PivotTables("Tableau croisé dynamique3").TableStyle2 = _
        "PivotStyleMedium2"
    Selection.Style = "Comma"
    Range("B4:B8").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = _
        "_-* #,##0.0 _€_-;-* #,##0.0 _€_-;_-* ""-""?? _€_-;_-@_-"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    ActiveWindow.DisplayGridlines = False
    Range("B8").Select
    Sheets("Feuil11").Select
    Sheets("Feuil11").Move After:=Sheets(2)
    Sheets("Feuil11").Select
    Sheets("Feuil11").Name = "Médias entrants"
    Sheets("Fusion").Select
    Range("A2").Select
 
 
 
 

 
'nombre de réservations
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "CM_reponses", Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Feuil12!R3C1", TableName:="Tableau croisé dynamique4", _
        DefaultVersion:=xlPivotTableVersion15
    Sheets("Feuil12").Select
    Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique4").PivotFields("Horodateur"), _
        "Nombre de Horodateur", xlCount
    With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
        "Thème du contact")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
        "Thème du contact")
        .PivotItems("Autre").Visible = False
        .PivotItems("Billettique").Visible = False
        .PivotItems("Information").Visible = False
        .PivotItems("Refus de réservation").Visible = False
        .PivotItems("(blank)").Visible = False
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
        "Média du contact")
        .Orientation = xlRowField
        .Position = 2
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique4"). _
        ShowTableStyleColumnStripes = True
    ActiveSheet.PivotTables("Tableau croisé dynamique4").TableStyle2 = _
        "PivotStyleMedium2"
    Range("B4:B9").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = _
        "_-* #,##0.0 _€_-;-* #,##0.0 _€_-;_-* ""-""?? _€_-;_-@_-"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    ActiveWindow.DisplayGridlines = False
    Range("B9").Select
    Sheets("Feuil12").Select
    Sheets("Feuil12").Move After:=Sheets(4)
    Sheets("Feuil12").Select
    Sheets("Feuil12").Name = "NB Résas"
    Sheets("Fusion").Select
    Range("A2").Select
 
 
 
 

 
'motifs des réservations
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "CM_reponses", Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Feuil13!R3C1", TableName:="Tableau croisé dynamique6", _
        DefaultVersion:=xlPivotTableVersion15
    Sheets("Feuil13").Select
    Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique6").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique6").PivotFields("Horodateur"), _
        "Nombre de Horodateur", xlCount
    With ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
        "Thème du contact")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
        "Motifs fusionnés")
        .Orientation = xlRowField
        .Position = 2
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
        "Thème du contact")
        .PivotItems("Autre").Visible = False
        .PivotItems("Billettique").Visible = False
        .PivotItems("Information").Visible = False
        .PivotItems("(blank)").Visible = False
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique6"). _
        ShowTableStyleColumnStripes = True
    ActiveSheet.PivotTables("Tableau croisé dynamique6").TableStyle2 = _
        "PivotStyleMedium2"
    Range("B4:B19").Select
    Selection.Style = "Comma"
    Selection.NumberFormat = _
        "_-* #,##0.0 _€_-;-* #,##0.0 _€_-;_-* ""-""?? _€_-;_-@_-"
    Selection.NumberFormat = "_-* #,##0 _€_-;-* #,##0 _€_-;_-* ""-""?? _€_-;_-@_-"
    ActiveWindow.DisplayGridlines = False
    Range("B19").Select
    Sheets("Feuil13").Select
    Sheets("Feuil13").Move After:=Sheets(5)
    Sheets("Feuil13").Select
    Sheets("Feuil13").Name = "Motifs Résas"
    Sheets("Fusion").Select
    Range("A2").Select
 

Pièces jointes

  • ClsProgressBarre.xlsm
    31.9 KB · Affichages: 56
  • ClsProgressBarre.xlsm
    31.9 KB · Affichages: 51
  • ClsProgressBarre.xlsm
    31.9 KB · Affichages: 52
Dernière édition:

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI