Erreur "objet requis" avec activecontrol.name

Bonjour à tous,

J'ai une feuille avec un certain nombre de checkbox ActivX, je voudrais que l'onglet associé s'affiche quand on clique sur une checkbox.

Jusque là rien de très compliqué, mais j'ai une erreur "Objet requis" lorsque j'utilise la commande activecontrol.name pour récupérer le nom de ma checkbox cochée, et je ne comprends pas pourquoi. Voici ma macro :

Private Sub AffichOnglet()

Dim NomFiche, NomBox As String

    NomBox = ActiveControl.Name
    NomFiche = Application.WorksheetFunction.VLookup(NomBox, ThisWorkbook.Worksheets("Paramètres").Range("D105:L311"), 2, False)

    Sheets(NomFiche).Visible = ActiveControl.Value      '(Je n'ai pas encore testé cette manière de faire je ne sais pas si cest possible, sinon je ferai un if)

End Sub

Merci d'avance !

Bonsoir,

pourquoi ActiveX alors qu'il y a des boites à cocher en "formulaire" ?
Surtout qu'une boite à cocher il suffit de savoir s'il y a eu un clic dessus ou pas et d'en connaître le résultat, le côté ActiveX ne sert pas à grand chose...
Avec ces derniers un simple "Application.Caller" suffit à connaître le nom de la boite cliquée...

@ bientôt

LouReeD

Merci pour votre réponse,

Il va falloir être patient avec moi parce que je rame complètement sur le sujet

Il n'y a pas de raison particulière à l'utilisation d'ActivX, je peux en effet tout à fait utiliser des checkbox formulaire.

Ok donc pour utiliser des checkbox formulaire et ok aussi pour application.caller pour récupérer le nom.

J'ai ensuite 2 problèmes :

- Je ne parviens pas à modifier le nom des checkbox (il n'y a pas d'encart "Propriétés" comme pour les controles activeX). J'ai 86 checkbox, et j'utilise chaque nom pour aller chercher un nom d'onglet dans un tableau, j'aimerais donc pouvoir choisir le nom de ma checkbox pour que mon fichier reste compréhensible.

- Comment est-ce que je récupère ensuite la valeur (true/false) de ma checkbox ? control.value ? shape.value ? autre ?

C'est bon j'ai fini par trouver, comment modifier le nom des checkbox (à côté de la barre de formule dans excel) et comment récupérer la valeur de la checkbox.

Mon code ressemble à ça :

Sub AffichOnglet()

Dim NomFiche, NomBox As String

    NomBox = Application.Caller
    NomFiche = Application.WorksheetFunction.VLookup(NomBox, ThisWorkbook.Worksheets("Paramètres et listes").Range("D105:L311"), 2, False)

    If ActiveSheet.CheckBoxes(NomBox).Value = -4146 Then
        Sheets(NomFiche).Visible = False
    Else
        If ActiveSheet.CheckBoxes(NomBox).Value = 1 Then
            Sheets(NomFiche).Visible = True
        End If
    End If

End Sub

Le code ressemble à ça... Mais est-ce que cela fonctionne ?

@ bientôt

LouReeD

oui ! ça marche comme je le voulais.

Merci

Rechercher des sujets similaires à "erreur objet requis activecontrol name"