copier tableau sur plusieurs feuilles

Lolo10tom

Membre enregistré
3 Mai 2024
6
2
46
Bonjour à tous,

Je cherche comment faire pour copier coller un tableau dans plusieurs feuilles en même temps, j'ai 40 feuilles pour 40 employés, c'est un tableau d'heures pour chaque jour et mensuel ) seulement en début de mois , je dois copier coller ce tableau sur chaque feuille mais 1 par 1 , n'y a t'il pas comme sur Excel une solution pour gagner du temps afin que je puisse copier coller mon tableau sur toutes mes feuilles en même temps ?

Autre soucis quand je fais coller il me colle le tableau à droite tout en haut de ma feuille mais jamais en dessous mon tableau d'heures du mois précédent, j'aimerai qu'il se colle à la suite car je suis obligé d'aller le chercher tout en haut et le déplacer tout en bas , quand j'ai une personne qui est là depuis 2 ans , j'ai 24 tableaux d'heures à descendre ;-)

Merci infiniment pour votre aide, si quelqu'un m'entends !
 
Bonjour,
Quelques précisions S.V.P.
Je suppose que tu parles de feuilles dans NUMBERS ?

Comment procèdes-tu ?
Je suppose que tu as une feuille avec le tableau modèle, que tu fais un tout sélectionner, copier, puis tu vas sur chaque feuille et tu fais un coller...

Si c'est ça, (si ma boule de cristal fonctionne !) alors il y a peut être une solution avec un applescript qui ferait le job.
 
  • J’aime
Réactions: Gerapp38 et melaure
Allez un essai vite fait:
Voilà un petit AppleScript qui devrait faire le job.
Un conseil fait un test sur une copie …

pour utiliser ce script:
Ouvrir l’application “Editeur de script” qui est dans Application—>Utilitaires
Choisir le bouton en bas à gauche “Nouveau document”, dans la fenêtre qui s’ouvre faire un copier-coller du script.

Il suffira de cliquer sur le bouton "triangle play" en haut à droite “Exécuter” pour lancer ce script.

Ton document numbers étant ouvert…
Tu renommes éventuellement ton tableau à copier, coller

Tu lances le script:
Il se positionne sur la première feuille de ton document
Fait un tout sélectionner
Fait un copier
Va à la feuille suivante
Fait un tout désélectionner
Fait un coller
Va à la feuille suivante
Et recommence , tout désélectionner, coller
Etc..
Sur toutes les feuilles du document

Et met un message lorsqu’il a terminé.

Dis moi si cela te convient ?
le script:
Bloc de code:
tell application "Numbers"
    activate
    set nb to count sheet of front document
    tell the first table of the active sheet of front document
        
        tell application "System Events"
            click menu item "Afficher la première feuille" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
            click menu item "Tout sélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
            delay 1
            click menu item "Copier" of menu "Édition" of menu bar 1 of application process "Numbers"
            
            repeat (nb - 1) times
                click menu item "Afficher la feuille suivante" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
                click menu item "Tout désélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
                click menu item "Coller" of menu "Édition" of menu bar 1 of application process "Numbers"
            end repeat
            
        end tell
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
J'ai oublier de te préciser.
La première feuille de ton document doit contenir le tableau à copier
Ce tableau sera donc recopié (collé) sur TOUTES les feuilles suivantes.
 
Bonjour,
Quelques précisions S.V.P.
Je suppose que tu parles de feuilles dans NUMBERS ?

Comment procèdes-tu ?
Je suppose que tu as une feuille avec le tableau modèle, que tu fais un tout sélectionner, copier, puis tu vas sur chaque feuille et tu fais un coller...

Si c'est ça, (si ma boule de cristal fonctionne !) alors il y a peut être une solution avec un applescript qui ferait le job.
Bonjour ! Ouiiii c'est exactement de cela qu'il s'agit !!! la boule de cristal fonctionne bien ;-)
 
Allez un essai vite fait:
Voilà un petit AppleScript qui devrait faire le job.
Un conseil fait un test sur une copie …

pour utiliser ce script:
Ouvrir l’application “Editeur de script” qui est dans Application—>Utilitaires
Choisir le bouton en bas à gauche “Nouveau document”, dans la fenêtre qui s’ouvre faire un copier-coller du script.

Il suffira de cliquer sur le bouton "triangle play" en haut à droite “Exécuter” pour lancer ce script.

Ton document numbers étant ouvert…
Tu renommes éventuellement ton tableau à copier, coller

Tu lances le script:
Il se positionne sur la première feuille de ton document
Fait un tout sélectionner
Fait un copier
Va à la feuille suivante
Fait un tout désélectionner
Fait un coller
Va à la feuille suivante
Et recommence , tout désélectionner, coller
Etc..
Sur toutes les feuilles du document

Et met un message lorsqu’il a terminé.

Dis moi si cela te convient ?
le script:
Bloc de code:
tell application "Numbers"
    activate
    set nb to count sheet of front document
    tell the first table of the active sheet of front document
       
        tell application "System Events"
            click menu item "Afficher la première feuille" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
            click menu item "Tout sélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
            delay 1
            click menu item "Copier" of menu "Édition" of menu bar 1 of application process "Numbers"
           
            repeat (nb - 1) times
                click menu item "Afficher la feuille suivante" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
                click menu item "Tout désélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
                click menu item "Coller" of menu "Édition" of menu bar 1 of application process "Numbers"
            end repeat
           
        end tell
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
ouah ouhh c'est pas la méthode la plus facile mais je vais essayer je te tiens au courant ! J'espère aussi qu'il va se coller au bon endroit , c'est à dire à la suite de mon tableau d'heures d'Avril ... j'ai cela aussi comme soucis . Merci infiniment pour le temps pris à me répondre
 
J'espère aussi qu'il va se coller au bon endroit , c'est à dire à la suite de mon tableau d'heures d'Avril ..
Numbers colle toujours les éléments tout à gauche, au premier emplacement assez grand depuis le haut de la feuille.

Sachant cela, Il suffit de replacer les tableaux existants plus haut. Si tu préfères garder un grand espace vide en haut de ta feuille, tu peux y insérer une figure quelconque, sans bordure ni remplissage mais qui "bloquera" la place…
 
Bonjour, nous voilà sur le mois de Juin , j'ai ENFIN essayé et c'est incroyable ça a bien marché ! quel gain de temps trop top ! Merci Merci !! Mais il n'a copié collé que sur 28 feuilles "employés " ( J'ai bien eu le message de fin waouh c'est fait ;-) )

Ca se colle à droite de mon 1er tableau de ma feuille càd Janvier (qui fait de la colonne A à I ) et j'ai toujours coller à la suite en bas du 1er tableau existant... le mois de Février ... mars .. avril , mai ... etc je ne peux pas replacer comme tu dis tous les tableaux en haut de la feuille car j'en ai sur 2 ans et c'est plus facile pour moi de glisser pour vérifier chaque mois de haut en bas ( controle absences etc ) que de gauche à droite , j'ai plus de visibilité sur le mois entier ( je ne sais pas si je suis très clair ;-) On ne peut rien y faire du coup ?

Sur une autre feuille où j'ai un autre tableau avec les dimanches et Jours fériés travaillés ( colonne A à N ) quand je fais un copier coller il se met met bien à la suite en bas et pas à droite de celui existant.

Jai inséré des screenshots car je ne peux pas mettre apparemment de fichier numbers.


Voilà désolée pour toutes ces questions ;-)
Merci infiniment pour ton aide
 

Fichiers joints

  • Capture d’écran 2024-06-04 à 12.30.18.png
    Capture d’écran 2024-06-04 à 12.30.18.png
    144,3 KB · Affichages: 14
  • Capture d’écran 2024-06-04 à 12.42.09.png
    Capture d’écran 2024-06-04 à 12.42.09.png
    113 KB · Affichages: 15
Bonjour,

Mais il n'a copié collé que sur 28 feuilles "employés "
Je ne comprend pas !

Le script commence en comptant les feuilles du document qui est ouvert au premier plan !
Donc si tu as 40 employés, ton document doit avoir 41 feuilles (la première étant le tableau à copier)

Je ne vois pas pourquoi il arrêterait au 28 !


Si ta feuille à la largeur du tableau, donc pas de place suffisante pour coller un nouveau tableau à sa droite, il le colle alors en dessous.
Sinon, donne plus d'explications...

Si tu veux nous faire parvenir un fichier (anonymisé) il faut le mettre sur un site de transfert et nous mettre le lien de téléchargement !
 
Si ta feuille à la largeur du tableau, donc pas de place suffisante pour coller un nouveau tableau à sa droite, il le colle alors en dessous.
Oui, si tu constates que le tableau se colle à droite plutôt qu'en bas, élargis ton tableau (ajoute p. ex. une colonne vide que tu élargis jusqu'à ce que ça se colle en dessous comme tu veux).
 
Bonjour,

Je ne vois pas pourquoi il arrêterait au 28 !
En y réfléchissant il est possible, si l'ordinateur n'est pas assez rapide, qu'il n'ait pas le temps d'afficher la feuille suivante avant de faire le coller du tableau.

Si c'est le cas il faut alors ajouter un délai d"une seconde avant de faire le coller. Cela allongera le temps d'une quarantaine de secondes !
Le script devient alors:

Bloc de code:
tell application "Numbers"
    activate
    set nb to count sheet of front document
    tell the first table of the active sheet of front document
        
        tell application "System Events"
            click menu item "Afficher la première feuille" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
            click menu item "Tout sélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
            delay 1
            click menu item "Copier" of menu "Édition" of menu bar 1 of application process "Numbers"
            
            repeat (nb - 1) times
                click menu item "Afficher la feuille suivante" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
                delay 1
                click menu item "Tout désélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
                click menu item "Coller" of menu "Édition" of menu bar 1 of application process "Numbers"
            end repeat
            
        end tell
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

Dis moi si comme ça il va jusqu'à la dernière feuille .

Par contre je suis surpris que le script colle le tableau à droite , tous mes essais chez moi colle le tableau en dessous du dernier. !
 
Bonjour, alors j'ai réessayé ça a marché sur plus de 28 feuilles nikel, merci ! Cependant toujours le même soucis du collage à droite et pas en bas à la suite .. sur le 1er Onglet "Deepak" j'ai ajouté des colonnes mais il se met à droite du tableau suivant, je ne comprends pas également car si on prend l'onglet "PAYES" il s'est bien collé en bas à a suite.
D'ailleurs est-il possible d'arrêter le collage au dernier onglet avant "PAYES" car je n'en ai pas besoin pour les suivants. Sinon pas grave je les effacerai.
Voici le fichier si ça peut aider à comprendre ;-)
Milles mercis encore
Laurène

 
Bonjour,
Je viens de jeter un oeil sur ton tableau !
D'ailleurs est-il possible d'arrêter le collage au dernier onglet avant "PAYES" car je n'en ai pas besoin pour les suivants. Sinon pas grave je les effacerai.
Donc si j'ai bien compris, tu veux coller le tableau de la première feuille sur toutes les feuilles suivantes sauf les 6 dernières ?

Alors il faut d'abord que tu modifies toutes les feuilles pour qu'elles soient clean.
C'est à dire, effacer ou déplacer tous les tableaux qui sont placés à droite, de manière à ce que chaque feuille n'ait que des tableaux, un en dessous de l'autre.
Le dernier tableau doit donc être en bas de ta feuille.
Le nouveau tableau, collé sera déplacé en dessous du dernier !

Voilà le nouveau script !
A voir si cela te convient , j'attends le retour de tes tests !

Bloc de code:
tell application "Numbers"
    activate
    set nb to count sheet of front document
    tell the first table of the active sheet of front document
       
        tell application "System Events"
            click menu item "Afficher la première feuille" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
            click menu item "Tout sélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
            delay 1
            click menu item "Copier" of menu "Édition" of menu bar 1 of application process "Numbers"
           
            repeat (nb - 7) times
                click menu item "Afficher la feuille suivante" of menu "Fenêtre" of menu bar 1 of application process "Numbers"
                tell application "Numbers"
                    tell the last table of the active sheet of front document
                       
                        set a to position
                        set h to height
                       
                        set x to item 1 of a
                        set y to ((item 2 of a) + h + 100)
                    end tell
                end tell
                click menu item "Tout désélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
                click menu item "Coller" of menu "Édition" of menu bar 1 of application process "Numbers"
                tell application "Numbers"
                    tell the last table of the active sheet of front document
                        set position to {x, y}
                    end tell
                end tell
            end repeat
           
        end tell
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Je viens de me rendre compte d'un problème.
le déplacement du tableau ne peut pas être fait automatiquement plus bas que 32 000 points.

Donc pour les employés qui ont beaucoup de tableaux existant, ça coince...

Je n'ai (pour le moment) pas trouvé de solution au problème. Pour ces employés il faudra le faire à la main (actuellement 3 cas, DEEPAK, RITA, AMITA)
Voir les copies écran une après le déplacement à la main(34798 pt) l'autre si on veut entrer la valeur bloqué à (32000 pt).

Autre chose, dans le nouveau script je n'ai pas ajouté le "delay" qui permettais de palier au problème de l'ordi trop lent, mais, avec le temps ajouté pour le déplacement du tableau,ça devrait le faire.
 

Fichiers joints

  • Capture d’écran 2024-06-13 à 16.07.33.jpg
    Capture d’écran 2024-06-13 à 16.07.33.jpg
    67,1 KB · Affichages: 4
  • Capture d’écran 2024-06-13 à 16.08.50.jpg
    Capture d’écran 2024-06-13 à 16.08.50.jpg
    68,3 KB · Affichages: 4
Bonsoir,

La seule solution que j’ai trouvé pour résoudre (retarder ) le problème est de faire de la place en dessous de tes tableaux.

Tous tes tableaux ont une hauteur de ligne de 21 ou même 23 points, je te propose de réduire les lignes à 16 points de haut, ce qui permettra de gagner de la place.

Ce travail étant très long à faire à la main, je t’ai préparer un petit script qui fera le job. Il est long, mais ce n’est rien comparer à le faire à la main.
Pendant que ce script travaille , il faut que l’ordinateur ne se mette pas en veille ni même que l’écran se coupe, ni q ‘un économiseur d’écran s’enclenche, Bref il faut que le fichier numbers reste au premier plan.

Le script met tous les tableaux de toutes les feuilles, sauf les 6 dernières feuilles, en format ligne 16 points.


Une fois ceci réalisé, on pourra lancer le script du message #14 qui fait un copier coller du tableau de la feuille 1, puis qui déplace ce tableau en dessous du dernier existant.

J’espère que cela te conviendra .

J’attends les nouvelles.

Bloc de code:
--met tous les tableaux numbers en rangs hauteur 16
tell application "Numbers"
    activate
    set nb to count sheet of front document
    
    tell application "Numbers"
        repeat with j from 1 to (nb - 6)
            set z to count table of the sheet j of front document
            repeat with i from 1 to z
                tell the table i of the sheet j of front document
                    set selection range to cell "A1"
                    tell application "System Events"
                        click menu item "Tout sélectionner" of menu "Édition" of menu bar 1 of application process "Numbers"
                    end tell
                    
                    set height of the row of selection range to "16"
                    
                end tell
            end repeat
        end repeat
        
    end tell
end tell


tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell