klm1234
XLDnaute Nouveau
Bonjour tout le monde!
J'ai développé une macro qui permet de vérifier plusieurs critères sur une ligne cependant cette macro est relativement longue (1 a 2 minutes). J'ai donc intégrer (du moins j'essaye) un form avec une barre de progression (progressbar) qui évolue au fur et a mesure que les critères sont vérifiés.
La structure de mon programme va comme suit :
-Routine d'approbation de la ligne qui fait appelle a une fonction "ValidateForm" (ou "form" veut dire "la ligne du code produit sélectionné", à ne pas confondre avec les Forms de excel)
-Fonction "ValidateForm" qui fait appelle a "ValidationProgress" (fenetre avec une barre de progression toute bête).
Le problème est que je voudrais faire tourner ma fonction "ValidateForm" en arrière pendant que la fenetre "ValidationProgress" est affichée et que celle-ci se mette à jour suite aux actions de la fonction...
Je joindrai bien un fichier d'exemple mais étant donné que ce code inclut beaucoup de fonction personnalisé, le fichier serait trop gros... Je vais donc tenter d'inclure les bouts de code que j'ai fait qui pourrait être utile au débogage de ma macro!
Code de la fenetre "ValidationProgress" :
Exemple du code de la fonction "ValidateForm":
Voilà si quelqu'un pouvait m'aider ce serait très apprecié
J'ai vu des exemples où il y avait une routine qui roulait en arrière de l'USF de progression en utilisant la commande Call "sous-routine", seulement moi déjà c'est pas une routine c'est une fonction, et si j'appelle une fonction qui fait apparaitre l'USF qui appelle la fonction qui... Vous avez compris. J'espère que je n'ai pas été trop vague, desfois quand on veut mettre trop de détails c'est comme en mettre pas assez...
Merci beaucoup!
J'ai développé une macro qui permet de vérifier plusieurs critères sur une ligne cependant cette macro est relativement longue (1 a 2 minutes). J'ai donc intégrer (du moins j'essaye) un form avec une barre de progression (progressbar) qui évolue au fur et a mesure que les critères sont vérifiés.
La structure de mon programme va comme suit :
-Routine d'approbation de la ligne qui fait appelle a une fonction "ValidateForm" (ou "form" veut dire "la ligne du code produit sélectionné", à ne pas confondre avec les Forms de excel)
-Fonction "ValidateForm" qui fait appelle a "ValidationProgress" (fenetre avec une barre de progression toute bête).
Le problème est que je voudrais faire tourner ma fonction "ValidateForm" en arrière pendant que la fenetre "ValidationProgress" est affichée et que celle-ci se mette à jour suite aux actions de la fonction...
Je joindrai bien un fichier d'exemple mais étant donné que ce code inclut beaucoup de fonction personnalisé, le fichier serait trop gros... Je vais donc tenter d'inclure les bouts de code que j'ai fait qui pourrait être utile au débogage de ma macro!
Code de la fenetre "ValidationProgress" :
Code:
Option Explicit
Private Sub UserForm_Initialize()
With Me.ProgressBar1
.Min = 0
.Max = 60
.Value = 0
End With
End Sub
Exemple du code de la fonction "ValidateForm":
Code:
Public Function ValidateForm(ByVal prcode$) As Boolean
Dim i As Integer
Dim ValidationProgress As New ValidattionProgress
Application.ScreenUpdating = True
On Error GoTo ErrorHandle
ValidationProgress.Show
'Check Customer
If Range(Finder(prcode)).Offset(0, -3).Value = "" Then
Range(Finder(prcode)).Offset(0, -3).Select
MsgBox "No customer name specified.", vbExclamation, "Error - Unvalid form"
ValidateForm = False
Exit Function
Else ValidationProgress.ProgressBar1.Value = 1
End If
'Check CNumber
If Range(Finder(prcode)).Offset(0, -2).Value = "" Then
Range(Finder(prcode)).Offset(0, -2).Select
MsgBox "No customer number specified.", vbExclamation, "Error - Unvalid form"
ValidateForm = False
Exit Function
Else: ValidationProgress.ProgressBar1.Value = 2
End If
'Une soixantaine de tests similaire s'exécutent ensuite...
ValidateForm = True
ValidationProgress.Hide
Exit Function
ErrorHandle:
MsgBox "An unhandled error occured in ValidateForm().", vbCritical, "Error"
End Function
Voilà si quelqu'un pouvait m'aider ce serait très apprecié
J'ai vu des exemples où il y avait une routine qui roulait en arrière de l'USF de progression en utilisant la commande Call "sous-routine", seulement moi déjà c'est pas une routine c'est une fonction, et si j'appelle une fonction qui fait apparaitre l'USF qui appelle la fonction qui... Vous avez compris. J'espère que je n'ai pas été trop vague, desfois quand on veut mettre trop de détails c'est comme en mettre pas assez...
Merci beaucoup!