En fait les 3 fichiers JHA, LVA et DLA ne devrait jamais être ouverts ensemble sur le même ordinateur.
Tu peux modifier le VBA de chaque UserForm de la manière suivante :
Au lieu de : (première ligne de la macro)
Enum Status
mettre :
Private Enum Status
Cependant bien que ce soit important, je ne pense pas que ce soit ça qui provoque tes erreurs.
Débogage :
La macro cmdConfirm_Click est écrite comme ça :
Private Sub cmdConfirm_Click()
Select Case UserFormStatus
Case Status.NewRec ' Nouvel enregistrement
WriteRecord rng.Rows.Count: InitData: InitRowSource
Me.cboRecord.ListIndex = rng.Rows.Count - 1
Case Status.Modify: WriteRecord CurrentRecord ' Modification de l'enregistrement
End Select
OppositeStatus ' Inverse la valeur booléenne des boutons d'action
End Sub
Tu vas la réécrire comme ça : (en fait il suffit de sélectionner les ":" et de faire [Enter] à la place
Private Sub cmdConfirm_Click()
Select Case UserFormStatus
Case Status.NewRec ' Nouvel enregistrement
WriteRecord rng.Rows.Count
InitData
InitRowSource
Me.cboRecord.ListIndex = rng.Rows.Count - 1
Case Status.Modify
WriteRecord CurrentRecord ' Modification de l'enregistrement
End Select
OppositeStatus ' Inverse la valeur booléenne des boutons d'action
End Sub
Ensuite tu positionnes le curseur sur chacune de ces 4 lignes :
WriteRecord rng.Rows.Count
InitData
InitRowSource
Me.cboRecord.ListIndex = rng.Rows.Count - 1
et sur chaque ligne tu fais [F9] Tu va avoir un point d'arrêt rouge qui va s'afficher sur la barre de gauche.
Si tu recliques sur la barre le point s'efface
Si tu recliques sur la barre le point se rallume
Quand les 4 lignes ont des points tu peux commencer à tester ton UserForm en mode Ajout.
Quand tu vas valider, la macro va s'arrêter sur chaque point : il faudra faire [F8] à chaque fois pour continuer jusqu'à la ligne suivante.
et noter jusqu'à quel point tu peux aller avant que ça plante , C'est un peu délicat car il y a quatre appels de Sub donc on est parfois un peu surpris quand ça plante et on ne se rappelle pas forcément quelle est la dernière ligne qui n'a pas eu de problème. mais le nœud du problème est là. Jusqu'à la dernière ligne sans problème : c'est qu'il n'y a pas de problème ! Quand ça plante, il faut identifier la ligne fautive arrêter de faire [F8] avant que ça plante et survoler toutes les variables, Eventuellement utiliser le volet d'Exécution pour voir pourquoi la ligne suivante va beuguer...
C'est là que ce serait intéressant que je sois pendu à ton téléphone...
T'as compris ?