J'ai un module VBA qui examine les contrôles d'accès et sélectionne uniquement les contrôles acTextBox ou acCheckBox. Cependant, je rencontre un problème de logique dans mon instruction If qui ne devrait permettre que les contrôles acTextBox = 109 et acCheckBox = 106, mais il laisse passer une étiquette avec une valeur de contrôle de 100 comme vous le voyez dans la fenêtre immédiate. Qu'est-ce qui se passe? Je suis perplexe .. Cela fonctionne si je supprime le "ou acCheckBox", mais permet aux étiquettes à travers quand je l'inclue, même si une étiquette n'est pas une case à cocher.Logique de contrôle VBA cassée
Ceci est un problème car il me donne une erreur plus tard.
Vive
For Each ctl In frm.Controls Debug.Print ctl.Name
With ctl
Debug.Print ctl.ControlType
'Avoid labels and other controls with Value property.
If .ControlType = acTextBox Or acCheckBox Then
If .Value <> .OldValue Then
'acTextBox Ou acCheckBox' équivaut à' 109 Ou 106' qui est e équivalent à '111'. Si vous incluez votre code dans la question, nous pourrions vous montrer comment y remédier en copiant/collant votre code, et en le modifiant, mais je ne vais certainement pas taper votre code à partir de zéro. – YowE3K