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!