Bonjour à tous,
Pour vous poser un peu le décors.
J'ai un classeur qui contient plusieurs feuilles, avec plusieurs fonctions vba pour faire différentes actions.
La fonction la plus importante il s'utilise de la manière suivante :
- L'utilisateur renseigne une référence dans une textbox dans une feuille
- L'utilisateur clique sur un bouton
- Une userform s'ouvre et est préremplie par du code vba
- L'utilisateur clique sur un bouton dans la userform
- Une nouvelle feuille s'ouvre et des données sont inscrites dedans
Ce classeur et les différentes fonction marchent bien comme prévues et tout va bien. Mais maintenant je dois valider ce logiciel. Pour cela je dois entrée dans la textbox une série de références, effectuées les actions que doit faire l'utilisateur et récupérer les résultats pour les comparer aux résultats attendus.
Pour faire cela j'ai opté pour la création d'un autre classeur qui contient les données d'entrées, les données de sorties attendues et qui comparera le tout. Donc je dois dans ce nouveau classeur automatisé toute cette validation.
Et c'est là que ça ce complique, en gros mon soft de validation doit :
1- Ouvrir le classeur à tester.
2- Se positionner sur la première feuille
3- Renseigner la textbox avec une référence
4- Simuler un clique sur le bouton de la feuille
5- Attendre l'ouverture de la userform
6- Simuler un clique sur le bouton de la userform
7- Attendre la fin du remplissage de la nouvelle feuille
8- Récupérer les données de la feuille tout juste créée
9- Les comparées avec les données attendues
10- Me sortir un résultat
Pour les 3 premiers points pas de soucis par contre pour ce qui est de simuler le clique sur le bouton je sèche un peu.
Du coté logiciel à testé, dans la Feuil 1, j'ai la fonction suivante :
Du coté du logiciel de validation j'essai d'appeler cette fonction de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Sub CommandButtonRechercher_Click() ... End Sub
Mais l'instruction Application.Run ne fonctionne pas. J'ai l'impression que ca ne marche que pour les macros pas les subs, ou alors il faut que la fonction dans un module pas dans une feuille, bref je ne sais pas trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Extract_BOM(Wb_Configurateur As Workbook, RefaTester As String, OutputCell As Range) Dim Ws_Menu As Worksheet Dim Ws_Article As Worksheet Set Ws_Menu = Wb_Configurateur.Worksheets("MENU") Ws_Menu.Activate Ws_Menu.OLEObjects("TextBoxRechercher").Object.Value = RefaTester Application.Run "'Configurateur IRIO vWork.xlsm'!CommandButtonRechercher_Click" End Sub
Auriez-vous des idées ?
Partager