Progress Bar associé à Calculate...

L

Lapou

Guest
Bonsoir tout le monde !!!

Je vous explique brièvement ce que j'aimerais faire.
Je dispose d'une base de données assez conséquente avec formule,...et pleins d'autres choses.
Pour pouvoir l'utiliser facilement j'ai désactiver le calcul automatique car à chaque modif de cellule ça prenait un peu trop de temps.
Je me suis donc créer un bouton "Mettre à jour" qui me fait simplement un "Calculate" ;-) qd je le souhaite.

Serait-il possible que lorsque je fais mon "Mettre à jour", un USF (ou autre) apparaisse et m'indique l'avancement du calculate.

Je sais excel me met déjà en bas à gauche le % d'avancement mais ça serait plus "sympa" avec un USF et une barre de progression ;-)

Je suis preneur de toute idée sur ce sujet et même d'exemple également.

Merci pour ta précieuse aide forum chéri ;-)

Bonne soirée tout le monde.
Lapou
 
L

Lapou

Guest
Bonjour Dan, le Forum,

Effectivemment il y a des choses intéressantes à prendre mais je n'y parviens pas !!!

Pour simplifier j'ai mon code :
Sub Calculer()
Calculate
End Sub

Que devrais-je rajouter pour qu'une progress bar s'affiche pendant le calcul ? Mais si j'ai bien compris ce ne serait pas possible pendant un calculate !
Il faudrait alors que je fasse appel à une msgbox "Patientez" par exemple. Mais comment l'écrire pour lui définir qu'elle doit s'en aller à la fin du calculate ?

Je sais je suis pas bon en vba !!!

Mais j'aimerais tellement apprendre que ça prends du tps :-(

Bonne journée @ tous et merci Dan
Lapou
 
L

Lapou

Guest
Print by VBA avec USF d'une 1 ou plusieurs feuilles...

ReBonjour le forum,

Je me lance dans du gros, du lourd ;-)

Je m'explique, j'utilise le code suivant pour un USF que j'ai récupérer sur ce magnifique forum et qui me permet de naviguer sur mes feuilles ss prob.


Option Explicit

Const T As String = "Navigation sur les feuilles"



Private Sub Label2_Click()

End Sub

Private Sub UserForm_Initialize()
List_Loop_And_Sort_On_Dynamic_Array
Me.Caption = T
End Sub


Sub List_Loop_And_Sort_On_Dynamic_Array()
Dim Tablo() As String
Dim x As Integer, j As Integer, i As Integer, ii As Integer
Dim Tmp1 As String, Tmp2 As String

For i = 0 To Worksheets.Count - 1
ReDim Preserve Tablo(i)
Tablo(i) = Worksheets(i + 1).Name
Next

For i = LBound(Tablo) To UBound(Tablo)
For j = LBound(Tablo) + ii To UBound(Tablo)
If Tablo(i) > Tablo(j) Then
Tmp1 = Tablo(j): Tmp2 = Tablo(j)
Tablo(j) = Tablo(i): Tablo(j) = Tablo(i)
Tablo(i) = Tmp1: Tablo(i) = Tmp2
End If
Next j
ii = ii + 1
Next i

UserForm1.ListBox1.List = Tablo
End Sub

Ce que j'aimerais savoir, c'est comment faire pour qu'avec un USF du même type, je puisse sélectionner 1 ou plusieurs feuille que j'imprimerais avec un bouton "Imprimer" par exemple tout en gardant bien les zones d'impression définis sur chaque feuilles ;-)

Merci à vous roi d'excel et de VBA !!!

Bonne journée
Impatient de vous lire
 

Pièces jointes

  • Classeurlapou.zip
    14.3 KB · Affichages: 42
  • Classeurlapou.zip
    14.3 KB · Affichages: 38
  • Classeurlapou.zip
    14.3 KB · Affichages: 41
L

Lapou

Guest
Re: Print by VBA avec USF d'une 1 ou plusieurs feuilles...

Bonjour tout le monde !!!

je vous explique ma solution trouvé en fouillant sur ce forum ;-)

Maintenant mon USF est scindé en 2 textbox, une pr la naviguation et une pr l'impression ;-)

rien de bien compliqué finalement ! :)

et le code à utiliser est le suivant :

Option Explicit

Const T As String = "Navigation ou Impression"


Private Sub UserForm_Initialize()
List_Loop_And_Sort_On_Dynamic_Array
Me.Caption = T
End Sub


Sub List_Loop_And_Sort_On_Dynamic_Array()
Dim Tablo() As String
Dim x As Integer, j As Integer, I As Integer, ii As Integer
Dim Tmp1 As String, Tmp2 As String

For I = 0 To Worksheets.Count - 1
ReDim Preserve Tablo(I)
Tablo(I) = Worksheets(I + 1).Name
Next

For I = LBound(Tablo) To UBound(Tablo)
For j = LBound(Tablo) + ii To UBound(Tablo)
If Tablo(I) > Tablo(j) Then
Tmp1 = Tablo(j): Tmp2 = Tablo(j)
Tablo(j) = Tablo(I): Tablo(j) = Tablo(I)
Tablo(I) = Tmp1: Tablo(I) = Tmp2
End If
Next j
ii = ii + 1
Next I

UserForm1.ListBox1.List = Tablo
UserForm1.ListBox2.List = Tablo
End Sub


Private Sub ListBox1_Click()
Worksheets(CStr(Me.ListBox1)).Activate
End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Worksheets(CStr(Me.ListBox1)).Activate
Unload Me
End Sub


Private Sub CommandButton2_Click()
Dim I As Integer
For I = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(I) = True Then
Sheets(ListBox2.List(I)).PrintOut
End If
Next
End Sub


Bonne am à tous en espérant que cela puisse servir à d'autres personnes ici présente ;-)

Tchao
 

Discussions similaires

Réponses
2
Affichages
193
Réponses
93
Affichages
2 K

Statistiques des forums

Discussions
312 756
Messages
2 091 764
Membres
105 064
dernier inscrit
Voluntaries