Bureautique Numbers : remettre à zéro des cases à cocher

C'est une image disque DMG ! qui contient un disque "sans titre"

Chez moi pas de problème !
 
Je te met un autre lien , c'est un dossier avec les 2 appli, il est compressé en .zip !

 
Ton premier lien a bien fonctionné pour moi, j'ai les deux fichiers .app dans le dmg mais Monterey en refuse le lancement avec un double-clic depuis le Finder :
« Impossible d’ouvrir « Test bouton dans numbers tout inclu pas de raz au Lancement.app » car le développeur ne peut pas être vérifié.
macOS ne peut pas vérifier que cette app ne contient aucun logiciel malveillant.
Safari a téléchargé ce fichier aujourd’hui à 01:07. »

En suivant les instructions recelées derrière le petit ? de l'aide intégrée, on apprend que :
« Vous pouvez ouvrir une app qui n’est pas autorisée à s’ouvrir en ignorant manuellement les réglages définis dans les préférences Sécurité et confidentialité.
  1. Dans le Finder
    058e4af8e726290f491044219d2eee73.png
    sur votre Mac, repérez l’app que vous souhaitez ouvrir.
    La plupart des apps se trouvent dans le dossier Applications.
  2. Cliquez sur l’icône de l’app en maintenant la touche Contrôle enfoncée, puis choisissez Ouvrir dans le menu contextuel.
  3. Cliquez sur Ouvrir.
    L’app est enregistrée en tant qu’exception dans vos réglages de sécurité et vous pourrez l’ouvrir par la suite en cliquant deux fois dessus, comme n’importe quelle application autorisée.
    »
J'arrive alors sur ce message :
« macOS ne peut pas vérifier le développeur de « Test bouton dans numbers tout inclu pas de raz au Lancement.app ». Voulez-vous vraiment l’ouvrir ?
En ouvrant cette app, vous passez outre les réglages de sécurité du système, ce qui peut exposer votre ordinateur et vos données personnelles à des logiciels malveillants susceptibles d’endommager votre Mac ou de porter atteinte à votre vie privée. »

Ayant vérifié l'apparente innocuité de ton app (
d'un clic-droit j'avais ouvert le paquet, contrôlé et copié script et feuille .numbers, mais n'étant plus "emballés" dans ton app, je ne savais pas vraiment les exploiter… Je tombais sur ce résultat en l'exécutant depuis l'Éditeur de scripts :
error "Impossible de convertir \"Macintosh HD:Users:admin:Documents:• TABLEURS:Tutos et démos:Zeltron54 - bouton dans tableur:main.scptContents:Resources:Scripts:lefichier.numbers\" en type alias." number -1700 from "Macintosh HD:Users:admin:Documents:• TABLEURS:Tutos et démos:Zeltron54 - bouton dans tableur:main.scptContents:Resources:Scripts:lefichier.numbers" to alias
), j'ai ainsi fait.

Il m'a encore fallu autoriser ton app à contrôler l'application Numbers et ça a l'air bon : ça devrait enfin s'ouvrir…

Je vais voir ce que donnent les tests mais déjà bravo pour tes efforts !
(Même si je crois que pour remettre des cases à cocher à zéro, l'usage d'un modèle aurait été plus simple…)

+++++++++++

P.S. Ça coince encore — mais ce n'est apparemment plus les sécurités de macOS [edit : du moins celles liées au quarantine flag].

Numbers affiche ceci :

PNG50 - Capture d’écran 2023-01-05 à 01.36.20.png

Le script, ceci :
PNG50 - Capture d’écran 2023-01-05 à 01.37.51.png

Je m'en tiens là pour ce soir…
 
Dernière édition:
(Même si je crois que pour remettre des cases à cocher à zéro, l'usage d'un modèle aurait été plus simple…)
Encore plus simple : ⌘A, espace, espace.
[…]sur Mac, pas sur iPad, sélectionner largement toutes les cellules/colonnes concernées, et taper sur espace deux fois.
Et ça n'affecte pas les formules, ni les valeurs entrées ! Je suis épaté !
 
Encore plus simple : ⌘A, espace, espace.

Et ça n'affecte pas les formules, ni les valeurs entrées ! Je suis épaté !
Je suis sympa, je ne demande pas de royalties sur mon idée du double appui sur espace, ni sur mon idée, soufflée dans un autre fil, d’intercepter la sélection d’une cellule pour simuler un bouton à cliquer :cool: (bon, et pour cette dernière, il faudrait qu’elle fonctionne :hilarious: ;) )
 
Bonjour,

Pourtant tout fonctionne chez moi sous Mojave.

J'ai voulu faire en tout en un pour que ce soit plus transparent pour l'utilisateur, ça à l'air loupé

Du coup je remet un lien avec le fichier numbers test et un fichier script.
On lance le fichier script
On choisi le fichier numbers à ouvrir

A la fin on quitte soit avec le bouton soit en quittant "Numbers"

le lien
 
Bonjour,

Pourtant tout fonctionne chez moi sous Mojave.

J'ai voulu faire en tout en un pour que ce soit plus transparent pour l'utilisateur, ça à l'air loupé

Du coup je remet un lien avec le fichier numbers test et un fichier script.
On lance le fichier script
On choisi le fichier numbers à ouvrir

A la fin on quitte soit avec le bouton soit en quittant "Numbers"

le lien
Super, ça fonctionne impec. Y'a plus qu'à étudier le script pour comprendre comment ça fonctionne. Merci beaucoup.
 
Je suis sympa, je ne demande pas de royalties sur mon idée du double appui sur espace, ni sur mon idée, soufflée dans un autre fil, d’intercepter la sélection d’une cellule pour simuler un bouton à cliquer :cool: (bon, et pour cette dernière, il faudrait qu’elle fonctionne :hilarious: ;) )
Bonjour, c'est quoi cette idée d'intercepter la sélection pour simuler un bouton, ça m'intéresse.
 
Bonjour, c'est quoi cette idée d'intercepter la sélection pour simuler un bouton, ça m'intéresse.
C'est en fait une boucle qui fait que tant que tu ne cliques pas dans la (les) cellule(s) affectées à l'action, tu utilises Numbers comme tu l'entends, mais en cliquant dans cette cellule tu déclenches une action précise (RAZ, Quitte...). Cela simule donc l'effet d'un bouton...

Capture d’écran 2023-01-05 à 09.05.19.png
 
Dernière édition:
  • J’aime
Réactions: Gerapp38
@Celedo

Pour utiliser ce script sur ton fichier il faudra certainement le modifier...

  • Le tableau numbers qui sert de bouton doit avoir comme nom : "MES BOUTONS"
  • la cellule de ce tableau servant de bouton RAZ doit être la cellule A1
  • la cellule de ce tableau servant de bouton quitter doit être la cellule B1
  • Le tableau contenant les cases à cocher doit avoir comme nom : "Tableau 1"

Si tu as des problèmes pour le faire fonctionner sur ton fichier numbers , donne moi les infos de ce fichier ou transmet le moi !

Edit: Ce que je te proposais dans les applis du DMG.
Mettre le fichier numbers dans le paquet, au lancement du script (application), chargait le fichier numbers directement, sinon tout le reste est identique...
Bien sur les restrictions de sécurité du mac obligeaient à valider toute les étapes de sécurité.

Edit 2 : @Gerapp38
Merci pour l'idée et pour tes tests :coucou:
 
Dernière édition:
  • J’aime
Réactions: Gerapp38
@Celedo

Pour utiliser ce script sur ton fichier il faudra certainement le modifier...

  • Le tableau numbers qui sert de bouton doit avoir comme nom : "MES BOUTONS"
  • la cellule de ce tableau servant de bouton RAZ doit être la cellule A1
  • la cellule de ce tableau servant de bouton quitter doit être la cellule B1
  • Le tableau contenant les cases à cocher doit avoir comme nom : "Tableau 1"

Si tu as des problèmes pour le faire fonctionner sur ton fichier numbers , donne moi les infos de ce fichier ou transmet le moi !

Edit: Ce que je te proposais dans les applis du DMG.
Mettre le fichier numbers dans le paquet, au lancement du script (application), chargait le fichier numbers directement, sinon tout le reste est identique...
Bien sur les restrictions de sécurité du mac obligeaient à valider toute les étapes de sécurité.

Edit 2 : @Gerapp38
Merci pour l'idée et pour tes tests :coucou:
Ok, merci, je regarde tout ça. Je reviens vers toi si besoin. Encore merci.
 
Bonjour,
Afin de t'aider à comprendre comment fonctionne le script je te le met ci-dessous avec un commentaire à chaque ligne expiiquant ce que fait le ligne.
De plus j'ai ajouté, que le l'éditeur de script se ferme en même temps que numbers, pour avoir un écran propre lorsque l'on quitte.

le script:
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "sélectionner le fichier numbers à ouvrir" --demande de choisir le fichier numbers à ouvrir
    open chemin --ouvre le fichier numbers
    delay 2 --attend 2 secondes que le fichier soit iuvert
end tell

tell application "Numbers" --dans numbers
    activate --active numbers
    tell the table "MES BOUTONS" of the sheet "feuille 1" of front document --se positionne dans la table "mes boutons"
       
        set value of cell "A1" to "R.A.Z. des cases à cocher" -- Ecrit dans la cellume A1 le texte "R.A.Z. des cases à cocher"
       
        repeat -- début du bloc boucle
            tell application "Finder" --dans le finder
                if application "Numbers" is running then --vérifie si numbers est lancer"
                else --si numbers n'est plus lancé
                    exit repeat --on quitte la boucle
                end if --fin de si
            end tell -- fin dans le finder retourne dans numbers
            try --bloc pour continuer si erreur
                set LaSelection to selection range --récupère dans la variable "lasélection" les cellumes sélectionnees dans numbers
                set Lacellule to name of cell 1 of LaSelection -- nom de la cellule 1 de la selection
                if Lacellule = "a1" then --si la cellule A1 est la cellule sélectionnée
                   
                    my efface() --va exécuter le bloc on efface'le script de RAZ cellules)
                   
                end if -- fin de si
                if Lacellule = "b1" then --si la cellule B1 est la cellule sélectionnée
                    set value of cell "a1" to "Veuillez lancer le script bouton" -- écrit "Veuillez lancer le script bouton" dans cette cellule pour le prochain lancement du script
                    exit repeat -- quitte la boucle
                end if --fi de si
            end try --fin du bloc erreur
           
        end repeat --fin du bloc boucle
        quit "numbers" --quitte l'application numbers
    end tell -- fin de dans la table "mes boutons"
end tell -- fin de dans numbers

tell "system events" -- dans l application systeme
    quit application "Script Editor" --quit application script editor
end tell --fin  dans application système



on efface() --bloc RAZ cellule, "on pourrait appeler n'importe quel autre script"
    tell application "Numbers" --dans numbers
        activate -- active
        tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
            set laliste to {"c3", "c4", "c5", "d3", "d4", "d5", "d6", "e3", "e4", "e5", "e6", "f3", "f4", "f5", "g4", "g5", "h4", "h5"} --liste des cellules  à RAZ
            repeat with i from 1 to count laliste --boucle de 1 au nombre de cellules dans la liste
                set value of cell (item i of laliste) to false -- met la cellule à 0
            end repeat --fin de la boucle
            set selection range to cell "A2" -- sélectionne la cellule A2 du tableau 1 (afin de recommencer la surveillance de la sélection
        end tell --fin de dans tableau
    end tell -- fin de dans numbers
end efface --fi du bloc RAZ
 
  • J’aime
Réactions: Sly54
Bonjour,
Afin de t'aider à comprendre comment fonctionne le script je te le met ci-dessous avec un commentaire à chaque ligne expiiquant ce que fait le ligne.
De plus j'ai ajouté, que le l'éditeur de script se ferme en même temps que numbers, pour avoir un écran propre lorsque l'on quitte.

le script:
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "sélectionner le fichier numbers à ouvrir" --demande de choisir le fichier numbers à ouvrir
    open chemin --ouvre le fichier numbers
    delay 2 --attend 2 secondes que le fichier soit iuvert
end tell

tell application "Numbers" --dans numbers
    activate --active numbers
    tell the table "MES BOUTONS" of the sheet "feuille 1" of front document --se positionne dans la table "mes boutons"
      
        set value of cell "A1" to "R.A.Z. des cases à cocher" -- Ecrit dans la cellume A1 le texte "R.A.Z. des cases à cocher"
      
        repeat -- début du bloc boucle
            tell application "Finder" --dans le finder
                if application "Numbers" is running then --vérifie si numbers est lancer"
                else --si numbers n'est plus lancé
                    exit repeat --on quitte la boucle
                end if --fin de si
            end tell -- fin dans le finder retourne dans numbers
            try --bloc pour continuer si erreur
                set LaSelection to selection range --récupère dans la variable "lasélection" les cellumes sélectionnees dans numbers
                set Lacellule to name of cell 1 of LaSelection -- nom de la cellule 1 de la selection
                if Lacellule = "a1" then --si la cellule A1 est la cellule sélectionnée
                  
                    my efface() --va exécuter le bloc on efface'le script de RAZ cellules)
                  
                end if -- fin de si
                if Lacellule = "b1" then --si la cellule B1 est la cellule sélectionnée
                    set value of cell "a1" to "Veuillez lancer le script bouton" -- écrit "Veuillez lancer le script bouton" dans cette cellule pour le prochain lancement du script
                    exit repeat -- quitte la boucle
                end if --fi de si
            end try --fin du bloc erreur
          
        end repeat --fin du bloc boucle
        quit "numbers" --quitte l'application numbers
    end tell -- fin de dans la table "mes boutons"
end tell -- fin de dans numbers

tell "system events" -- dans l application systeme
    quit application "Script Editor" --quit application script editor
end tell --fin  dans application système



on efface() --bloc RAZ cellule, "on pourrait appeler n'importe quel autre script"
    tell application "Numbers" --dans numbers
        activate -- active
        tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
            set laliste to {"c3", "c4", "c5", "d3", "d4", "d5", "d6", "e3", "e4", "e5", "e6", "f3", "f4", "f5", "g4", "g5", "h4", "h5"} --liste des cellules  à RAZ
            repeat with i from 1 to count laliste --boucle de 1 au nombre de cellules dans la liste
                set value of cell (item i of laliste) to false -- met la cellule à 0
            end repeat --fin de la boucle
            set selection range to cell "A2" -- sélectionne la cellule A2 du tableau 1 (afin de recommencer la surveillance de la sélection
        end tell --fin de dans tableau
    end tell -- fin de dans numbers
end efface --fi du bloc RAZ
Alors ça, c'est super cool!! Merci beaucoup.
 
Bonjour,
Afin de t'aider à comprendre comment fonctionne le script je te le met ci-dessous avec un commentaire à chaque ligne expiiquant ce que fait le ligne.
De plus j'ai ajouté, que le l'éditeur de script se ferme en même temps que numbers, pour avoir un écran propre lorsque l'on quitte.

le script:
Bloc de code:
[…]
on efface() --bloc RAZ cellule, "on pourrait appeler n'importe quel autre script"
    tell application "Numbers" --dans numbers
        activate -- active
        tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
            set laliste to {"c3", "c4", "c5", "d3", "d4", "d5", "d6", "e3", "e4", "e5", "e6", "f3", "f4", "f5", "g4", "g5", "h4", "h5"} --liste des cellules  à RAZ
            repeat with i from 1 to count laliste --boucle de 1 au nombre de cellules dans la liste
                set value of cell (item i of laliste) to false -- met la cellule à 0
            end repeat --fin de la boucle
            set selection range to cell "A2" -- sélectionne la cellule A2 du tableau 1 (afin de recommencer la surveillance de la sélection
        end tell --fin de dans tableau
    end tell -- fin de dans numbers
end efface --fi du bloc RAZ
Super ! Merci. :)

Pour la partie spécifique à la remise à zéro (citée ci-dessus), le fait de devoir désigner nommément chacune des cellules concernées est sans doute un peu lourd. Ne serait-il pas possible de faire faire au script la manœuvre décrite par Gerapp38 (tout sélectionner, taper deux fois Espace) ?
 
@baron :coucou:

Bonjour,
Je viens d'essayer l'idée, cela fonctionne...
Mais !
Si on clic sur la cellule RAZ alors qu'aucune cases à cocher n'est sélectionnée, on ne remet pas à zéro mais on coche tout ! :D

Je met le script modifié quand même !
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "sélectionner le fichier numbers à ouvrir" --demande de choisir le fichier numbers à ouvrir
    open chemin --ouvre le fichier numbers
    delay 2 --attend 2 secondes que le fichier soit ouvert
end tell

tell application "Numbers" --dans numbers
    activate --active numbers
    tell the table "MES BOUTONS" of the sheet "feuille 1" of front document --se positionne dans la table "mes boutons"
        
        set value of cell "A1" to "R.A.Z. des cases à cocher" -- Ecrit dans la cellule A1 le texte "R.A.Z. des cases à cocher"
        
        tell application "Numbers" --dans numbers
            activate -- active
            tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
                set selection range to cell "A2"
                delay 1
            end tell --fin de dans tableau
        end tell -- fin de dans numbers
        
        
        repeat -- début du bloc boucle
            tell application "Finder" --dans le finder
                if application "Numbers" is running then --vérifie si numbers est lancé"
                else --si numbers n'est plus lancé
                    exit repeat --on quitte la boucle
                end if --fin de si
            end tell -- fin dans le finder retourne dans numbers
            try --bloc pour continuer si erreur
                set LaSelection to selection range --récupère dans la variable "lasélection" les cellules sélectionnees dans numbers
                set Lacellule to name of cell 1 of LaSelection -- nom de la cellule 1 de la selection
                if Lacellule = "a1" then --si la cellule A1 est la cellule sélectionnée
                    
                    my efface() --va exécuter le bloc on efface (le script de RAZ cellules)
                    
                end if -- fin de si
                if Lacellule = "b1" then --si la cellule B1 est la cellule sélectionnée
                    set value of cell "a1" to "Veuillez lancer le script bouton" -- écrit "Veuillez lancer le script bouton" dans cette cellule pour le prochain lancement du script
                    exit repeat -- quitte la boucle
                end if --fin de si
            end try --fin du bloc erreur
            
        end repeat --fin du bloc boucle
        quit "numbers" --quitte l'application numbers
    end tell -- fin de dans la table "mes boutons"
end tell -- fin de dans numbers

tell "system events" -- dans l application systeme
    quit application "Script Editor" --quit application script editor
end tell --fin  dans application système


on efface() --bloc RAZ cellule
    tell application "Numbers" --dans numbers
        activate -- active
        tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
            
            set selection range to cell range --tout sélectionner
            tell application "System Events"
                key code 49 -- touche espace
            end tell
            delay 1
            set selection range to cell "A2"
        end tell --fin de dans tableau
    end tell -- fin de dans numbers
end efface --fin du bloc RAZ
 
@baron
Je viens d'essayer l'idée, cela fonctionne...
Merci beaucoup !

J'avais regardé les commandes disponibles mais je suis généralement bien incapable de les combiner en sorte que ça marche.
En lisant tes exemples, surtout avec les commentaires pédagogiques, c'est beaucoup plus clair, mais pas encore facile à faire tout seul…
:angelic:

Mais !
Si on clic sur la cellule RAZ alors qu'aucune cases à cocher n'est sélectionnée, on ne remet pas à zéro mais on coche tout ! :D
J'ai testé, avec rien que ce bloc d'instructions :
AppleScript:
tell application "Numbers" --dans numbers
    activate -- active
    tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
      
        set selection range to cell range --tout sélectionner
        tell application "System Events"
            key code 49 -- touche espace
        end tell
        delay 1
        set selection range to cell "A2"
    end tell --fin de dans tableau
end tell -- fin de dans numbers
Comme tu dis, parfois ça coche tout et parfois ça décoche tout. o_O

En réalité après un test rapide, que ce soit via le script ou manuellement, ce qui se passe semble dépendre uniquement de l'état de « la première case à cocher du premier rang qui en contient » (est-ce clair ?) :
Si celle-ci est cochée, tout sera décoché et si elle est décochée, tout sera coché.
— D'où le fait que Gerapp38 recommandait de taper deux espaces alors que dans ton script, ce n'était qu'une fois et pourtant les deux marchaient, parfois…

Si on voulait un fonctionnement assuré avec cette méthode, il faudrait donc ajouter un test au début pour connaître l'état de la 1e case à cocher considérée.
Ensuite, selon le cas, répéter ou non la séquence :
AppleScript:
tell application "System Events"
    key code 49 -- touche espace
end tell
delay 1
 
  • J’aime
Réactions: Gerapp38
@baron ,

Ta déduction de l'état de la première case à l'air bonne
Pour notre cas c'est l'état de la cellule C3
le script devient
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "sélectionner le fichier numbers à ouvrir" --demande de choisir le fichier numbers à ouvrir
    open chemin --ouvre le fichier numbers
    delay 2 --attend 2 secondes que le fichier soit ouvert
end tell

tell application "Numbers" --dans numbers
    activate --active numbers
    tell the table "MES BOUTONS" of the sheet "feuille 1" of front document --se positionne dans la table "mes boutons"
        
        set value of cell "A1" to "R.A.Z. des cases à cocher" -- Ecrit dans la cellule A1 le texte "R.A.Z. des cases à cocher"
        
        tell application "Numbers" --dans numbers
            activate -- active
            tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
                set selection range to cell "A2"
                delay 1
            end tell --fin de dans tableau
        end tell -- fin de dans numbers
        
        
        repeat -- début du bloc boucle
            tell application "Finder" --dans le finder
                if application "Numbers" is running then --vérifie si numbers est lancé"
                else --si numbers n'est plus lancé
                    exit repeat --on quitte la boucle
                end if --fin de si
            end tell -- fin dans le finder retourne dans numbers
            try --bloc pour continuer si erreur
                set LaSelection to selection range --récupère dans la variable "lasélection" les cellules sélectionnees dans numbers
                set Lacellule to name of cell 1 of LaSelection -- nom de la cellule 1 de la selection
                if Lacellule = "a1" then --si la cellule A1 est la cellule sélectionnée
                    
                    my efface() --va exécuter le bloc on efface (le script de RAZ cellules)
                    
                end if -- fin de si
                if Lacellule = "b1" then --si la cellule B1 est la cellule sélectionnée
                    set value of cell "a1" to "Veuillez lancer le script bouton" -- écrit "Veuillez lancer le script bouton" dans cette cellule pour le prochain lancement du script
                    exit repeat -- quitte la boucle
                end if --fin de si
            end try --fin du bloc erreur
            
        end repeat --fin du bloc boucle
        quit "numbers" --quitte l'application numbers
    end tell -- fin de dans la table "mes boutons"
end tell -- fin de dans numbers

tell "system events" -- dans l application systeme
    quit application "Script Editor" --quit application script editor
end tell --fin  dans application système


on efface() --bloc RAZ cellule
    tell application "Numbers" --dans numbers
        activate -- active
        tell the table "Tableau 1" of the sheet "feuille 1" of front document -- dans la table "Tableau 1" feuille 1 du document à l'écran
            set lapremiere to value of cell "C3" -- récupère l'etat de la cellule c3 dans la variable lapremiere
            
            set selection range to cell range --tout sélectionner
            tell application "System Events"
                key code 49 -- touche espace
                
                if lapremiere is false then --si la variable lapremiere est false (pas cochée)
                    key code 49 -- touche espace pour la deuxième fois
                end if --fin de si
                
            end tell
            delay 1
            set selection range to cell "A2"
        end tell --fin de dans tableau
    end tell -- fin de dans numbers
end efface --fin du bloc RAZ
 
  • J’aime
Réactions: Gerapp38