Bonjour Lingo, le forum,
Jean-Eric a écrit :
Je pense que tu dois avoir des difficultés avec un contrôle ActiveX avec ton Mac.
oui, et c'est normal ; car les contrôles ActiveX ne sont pas pris en charge sur Macintosh :
https://support.office.com/fr-fr/article/affecter-une-macro-%C3%A0-un-bouton-formulaire-ou-commande-d58edd7d-cb04-4964-bead-9c72c843a283?ocmsassetID=HP010342137&CorrelationId=717d5b0d-6bf3-412f-b1a3-f1ba54a15dab&ui=fr-FR&rs=fr-FR&ad=FR
(c'est écrit un peu après le début : la remarque qui est sous les 2 premières petites images)
le précédent code VBA de Jean-Eric est très bien, mais il comporte quand même un p'tit bug :
si y'a aucune donnée en B5:B20, n (dernière ligne) vaut 1
➯ .Range("M5:M" & n) équivaut à .Range("M5:M1") ➯ ça fait le job pour les lignes 1 à 5 et pas 5 à en-dessous
or dans ce cas, faut rien faire du tout ! mais ça induit ce problème : le clic sur la case à cocher a déjà fait son œuvre : ça en a déjà changé l'état coché ou non, et du coup c'est plus correctement synchronisé avec l'état réel masqué ou non des lignes !
il aurait fallu pouvoir annuler le changement d'état de la coche, et ça aurait été facile avec Cancel = True, mais y'a pas d'variable Cancel à disposition ! j'ai fait un essai avec CheckBox1 = Not CheckBox1 mais ça crée une erreur de pile insuffisante, car le changement d'état fait qu'la sub s'appelle de nouveau récursivement ! j'ai alors ajouté une désactivation des événements avant, puis une réactivation après : échec : même erreur de pile insuffisante !
aussi, j'ai laissé tomber la case à cocher, et je l'ai remplacée par un bouton de commande (contrôle de formulaire) :
normalement, ça doit marcher sans aucun problème sur ton Macintosh !
* tu peux voir que toutes les lignes sont affichées
* clique sur le bouton pour masquer les lignes
* clique sur le bouton pour afficher les lignes
* efface toutes les données de B5:B20
* clique sur le bouton ; eh oui, cette fois, ça fait rien !
* fais Ctrl z pour annuler ta suppression de données
* tu peux faire joujou avec ton bouton comme avant
Alt F11 pour voir le code VBA, puis revenir sur Excel
si besoin, tu peux demander une adaptation.
merci de me dire si ça te convient.
dhany