Re ...
Mon interprétation après bien des déboires dans mon apprentissage des outils mis à notre dispositions (comme beaucoup, connus à moins de 25% de leur potentiel) * :
- On Error Resume Next 'absence du contrôle
Ici, cette ligne permet d’éviter un arrêt accompagné d’un message d’erreur quand l’item de la boucle est absent des contrôles définis.
Elle pourrait être remplacée par une série plus ou moins longue de lignes de tests de validité.
J’ai trouvé fastidieux de les répertorier.
Elle devrait dans certains cas être accompagnée de la ligne On Error Goto 0 qui rétablit la gestion de nouvelles erreurs mais, ici, il ne s’agit que de passer aux suivants de la boucle (Next comme tu l’as trouvé).
- CheckBox :contrôle de Formulaire ou ActiveX, problématiques selon les versions d’Excel d’où le passage par la classe OLEOjects qui contient bien d’autres Classes**.
Quand un des noms n’est pas homologue aux autres (avant correction comme il a été au départ). Il est traité hors de la boucle par
checkbox_devis_3 = AT
La boucle remplace les lignes
checkbox_1 = AT
checkbox_2 = AT
checkbox_4 = AT
checkbox_5 = AT
…
Pour éviter cette litanie, on trouve, dans la boucle l’instruction
ActiveSheet.OLEObjects("CheckBox" & i).Object = AT
Un objet du type CheckBox peut prendre exclusivement une des 2 valeurs booléennes attribuées : FALSE (0) ou TRUE(1 plutôt que <> 0, sytstème binaire oblige) .Ils sont à leur création mis à FALSE (0).
De plus, le VBA d’Excel est quand même bien construit*. Dès une saisie, celle-ci elle est cherchée dans la liste des suites admises donc probables sans erreur.
Quand on écrit CheckBox = , Excel s’attend à ce que la suite soit la valeur (0 ou pas) donc, sachant cela, elle dispense du .Value .Ici, La case va prendre la valeur de la case AT. Quand on ne connait pas ce fait on écrit
checkbox_devis_3.value = AT.value
ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = AT.Value
*je ne suis pas, comme certains, du genre à mettre à la poubelle des outils que je connais mal. Je préfère, comme Toi, essayer de comprendre pour parfaire mon apprentissage.
** la consultation ici amène beaucoup de renseignements :