Soucis sur checkbox pas sur tous les PC

Bonjour,

J'ai un fichier Excel que je reprends, pas facile à tout comprendre.

Il fonctionne sur mon PC mais pas sur d'autres.

Le déboguage m'emmene sur la ligne :

For Each CheckBox In wb.Sheets("Liste articles").OLEObjects

Le but du fichier est de sélectionner 1 ou deux lignes via les cases à cocher puis de cliquer sur le bouton Générer le BL, afin de créer un document qui sera envoyer directement par mail.

Cordialement.

Bonjour,

1- J'éviterai d'employer comme variable un mot réservé

2- dans les objets liés de la feuille, il n'y a pas que des cases à cocher. Un test supplémentaire est nécessaire.

ci-dessous exemple de code :

    For Each objet_lié In wb.Sheets("Liste articles").OLEObjects
        If TypeOf objet_lié.Object Is MSForms.CheckBox Then
            Set case_à_cocher = objet_lié.Object
            If case_à_cocher.Value = True Then case_à_cocher.Value = False
        End If
    Next objet_lié

Bonjour,

Merci d'avoir pris le temps de regarder.

J'ai fait la modification suggérer mais le déboguage me mets l'erreur sur la même ligne, enfin pas sur mon PC mais sur celui du collègue:

For Each case_a_cocher In wb.Sheets("Liste articles").OLEObjects

Du coup j'ai vu que le code avait été modifié, j'ai refait mais toujours le même soucis.

Cela pourrait être un problème de bibliothèque non référencée dans l'éditeur VBA.

Vérifier que la bibliothèque OLE Automation est bien cochée dans Outils --> références.

J'ai vérifier et la case est bien cochée sur son PC.

Bonsoir,

Essayer ce code avec la collection "Shapes" plutôt qu'avec la collection "OleObjects"

    For Each forme In wb.Sheets("Liste articles").Shapes
        If TypeOf forme.OLEFormat.Object.Object Is MSForms.CheckBox Then
            Set case_à_cocher = forme.OLEFormat.Object.Object
            If case_à_cocher.Value = True Then case_à_cocher.Value = False
        End If
    Next forme
Rechercher des sujets similaires à "soucis checkbox pas tous"