XL 2019 syntaxe worksheet avec checkbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Jacques25bis

XLDnaute Junior
Bonjour à tous,

J'essaye d'optimiser un code pour en améliorer la lecture tout en essayant de rester performant. Je bloque sur un problème de syntaxe je pense avec le bout de code suivant :

RQ1 est une checkbox, donnée est défini plus haut et RQ_Nom est une cellule nommée

Si j'écris :

Dim réclamQ as worksheet, Dérog as worksheet
Set RéclamQ= thisworkbook.sheets("RéclamQ")
Set Dérog= thisworkbook.sheets("Dérog")

If RéclamQ.RQ1.value=true then
with Dérog
.[D5]=donnée
.[M5]=[RQ_Nom]
End with
... Ca ne marche pas alors que :

Dim réclamQ as worksheet, Dérog as worksheet

If worksheet("RéclamQ").RQ1.value=true then
with Dérog
.[D5]=donnée
.[M5]=[RQ_Nom]
End with

Avez vous une explication svp?

2ème question :

Si ma checkbox RQ1 est cochée, j'ai des actions à faire sur 2 onglets différents, est-ce que avec seulement with.... End with c'est suffisant ou est-ce qu'il faut que je fasse un select ou activate entre les 2?

Ce qui donnerai (avec mon de code qui fonctionne :

If worksheet("RéclamQ").RQ1.value=true then
Dérog. select ou .activate ou rien
with Dérog
.[D5]=donnée
.[M5]=[RQ_Nom]
End with
RéclamS. select ou .activate ou rien
with RéclamS
...
...
end with

Merci de votre aide

@ plus

Jack
 
Bonjour.
Une variable déclarée As Worksheet est destinée à représenter une feuille de calcul sans spécificité particulière. Elle ne possède pas de propriété RQ1.
Les objets de la rubrique Microsoft Excel Objets si, ils ont leurs spécialités. Aussi personnellement je n'en déclare jamais pour ce genre d'usage. À quoi bon ? J'utilise ceux là ! Remarque Feuil1, Feuil2 etc. étant dépourvu de sens je les renomme généralement d'un nom mnémonique commençant par Wsh. Attention, je parle bien des objets VBA de la rubrique, pas des entités Excel que sont les feuilles qu'ils représentent. Confondre une feuille Excel et un objet Worksheet serait un peu comme confondre un gigantesque pont roulant d'atelier avec son boitier de commande.
 
Dernière édition:
Salut Dranreb,

Merci pour ta réponse mais je n'ai pas tout compris désolé.
Pour répondre à ta question et être plus clair, dans mon onglet principale j'ai mis une checkbox (nommée RQ1) qui me déclenchera certains actions.
Pour ce que j'ai compris si je veux faire appelle à cette checkbox je n'ai pas d'autre choix que d'écrire :
if Sheets("RéclamQ").RQ1. value = true then ...

Dans ce cas là il ne s'agit pas de la variable as worksheet.

@ plus

Jack
 
Si, il y a un autre choix: employer comme expression Worksheet le nom de l'objet Worksheet particularisé installé par l'application Excel
Vous pouvez aussi l'obtenir par cette macro :
VB:
Sub Test()
   With Sheets("RéclamQ")
      MsgBox "L'objet Worksheet installé par l'application hôte pour" _
         & vbLf & "représenter la feuille """ & .Name & """ s'appelle actuellement " _
         & .CodeName & ". Mais vous pouvez le renommer différemment.", _
         vbInformation
      End With
   End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
281
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Réponses
3
Affichages
298
Retour