Re: [AS] Scripter excel

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Pascal
Date:  
À: La liste AppleScript Francophone
Sujet: Re: [AS] Scripter excel
Non non, elle n’est pas vide
Les cellules sont bien transposées (mais barrées) dans la feuille d’origine
Je n’ai pas eu à coller-transposer, c’était fait.
En fait tout fonctionne sauf l’erreur et que ce n’est pas enregistré et
fermé automatiquement. ( mais ça c’est normal puisque pas écrit) et que je
valide ou non l’enregistrement c’est enregistré.

J’essaie ce script demain
Le script d’Olivier fonctionne très bien avec 2 feuilles ce qui ne me pose
pas de soucis.

Mais ton script m’intrigue donc à suivre

Bonne soirée
Pascal

Le ven. 25 janv. 2019 à 18:43, Yvan KOENIG <koenigyvan@???> a écrit :

> (1) à quoi ressemble la feuille lorsque Excel génère le message "Il est
> impossible de poursuivre paste special." ?
> Est-elle vide comme elle est censée l'être ?
>
> (2) après obtention de l'erreur, avez vous essayé d'effectuer un
> coller/transposer à la main dans une feuille vierge ce qui permettrait de
> savoir si le presse-papiers a été correctement alimenté ?
>
> (3) que retourne le petit script ci-dessous:
>
> tell application "Microsoft Excel" to activate
>
> tell application "System Events"
>         name of every process whose name contains "Excel"
> end tell

>
> À priori ce devrait être {"Excel"} ou {"Microsoft Excel"}
>
> C'est le nom de l'unique article de la liste retournée qui devrait être
> utilisé dans la routine cutSelection() mais le nom d'application appelé
> dans le script principal doit rester "Microsoft Excel".
>
> Enfin, est-ce que le script proposé par Olivier fonctionne ?
>
> Yvan KOENIG (VALLAURIS, France) vendredi 25 janvier 2019 18:43:24
>
>
> > Le 25 janv. 2019 à 17:45, Madert Pascal <pascal.madert@???> a
> écrit :
> >
> > Bonjour Yvan,
> >
> > Ça fonctionne mais ça donne une erreur
> >
> > Erreur de script
> > Erreur dans Microsoft Excel : Il est impossible de poursuivre paste
> special.
> >
> > Dans excel, le résultat est que les données sont bien transposées mais
> toutes barrées…
> > À la fermeture manuelle, il me demande de l’enregistrer et que je le
> fasse ou pas, le résultat est le même, à la ré-ouverture, tout est bon…
> > Et que je mette Microsoft Excel ou Excel
> >
> > Pascal
> >
> >
> >
> >> Le 25 janv. 2019 à 15:27, Yvan KOENIG <koenigyvan@???> a écrit :
> >>
> >> Je serais tenté par une formule alternative utilisant le GUIscripting
> pour couper le bloc sélectionné.
> >> On se retrouve alors avec une feuille vide dans laquelle on devrait
> pouvoir effectuer la copie/transposée.
> >>
> >> tell application "Microsoft Excel"
> >>
> >>      -- selectionne toutes les cellules utilisées

> >>
> >>      select used range of active sheet of active workbook

> >>
> >>      -- copie toutes les cellules utilisées (ça peut prendre du temps)

> >>
> >>      my cutSelection()
> >>      # Désormais la feuille est vide on devrait pouvoir appliquer
> paste/transpose

> >>
> >>      --set activeCell to (cell "A1")

> >>
> >>      -- copie spéciale avec un transpose

> >>
> >>      --      tell activeCell

> >>
> >>      paste special with transpose

> >>
> >>      --      end tell

> >>
> >> end tell
> >>
> >> on cutSelection()
> >>      tell application "System Events" to tell process "Excel" # c'est
> peut être "Microsoft Excel"
> >>              set frontmost to true
> >>              keystroke "X" using {command down} # coupe la sélection
> >>      end tell
> >> end cutSelection

> >>
> >> Yvan KOENIG (VALLAURIS, France) vendredi 25 janvier 2019 15:27:42
> >>
> >>
> >>
> >>> Le 25 janv. 2019 à 09:59, Olivier Berquin <olivier.berquin@???>
> a écrit :
> >>>
> >>> Bonjour Pascal,
> >>>
> >>> Je pense que ceci devrait faire l'affaire.
> >>> J'ai essayé de documenter au maximum…
> >>>
> >>>
> >>> tell application "Microsoft Excel"
> >>>
> >>> -- selectionne toutes les cellules utilisées
> >>>
> >>> select used range of active sheet of active workbook
> >>>
> >>> -- copie toutes les cellules utilisées (ça peut prendre du temps)
> >>>
> >>> copy range selection
> >>>
> >>> -- création d'une nouvelle Feuille
> >>>
> >>> set newSheet to make new worksheet of active workbook
> >>>
> >>> -- détermine la première cellule de cette nouvelle Feuille
> >>>
> >>> set activeCell to (cell "A1")
> >>>
> >>> -- copie spéciale avec un transpose
> >>>
> >>> tell activeCell
> >>>
> >>> paste special with transpose
> >>>
> >>> end tell
> >>>
> >>> end tell
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Le jeu. 24 janv. 2019 à 18:11, Madert Pascal <pascal.madert@???>
> a
> >>> écrit :
> >>>
> >>>> Bonjour Olivier, Bonjour Yvan,
> >>>>
> >>>> Olivier, je voudrais exporter depuis Filemaker des données dans un
> fichier
> >>>> excel. (Ça je sais faire, FMP crée un fichier avec une seule feuille1)
> >>>> ensuite que toutes les cellules contenant des données dans la
> feuille1 du
> >>>> fichier excel soit copié (comme quand je fais pomme-A) et transposé
> dans
> >>>> une nouvelle feuille (on ne peut pas transposer sur des cellules
> contenant
> >>>> des données) et que la feuille1 soit supprimer, que le fichier soit
> >>>> enregistré et fermé, tout cela par le script.
> >>>>
> >>>> Yvan, content que tu ailles mieux. Avec Numbers, effectivement c’est
> >>>> faisable plus facilement mais FMP n’exporte pas en Numbers. Dans
> Excel, on
> >>>> peut faire la même chose mais soit on colle spécial-transpose à partir
> >>>> d’une cellule vide (à coté ou en-dessous) soit on crée une nouvelle
> feuille
> >>>> et on colle spécial-transposer. Cette 2e solution me parait plus
> simple.
> >>>> Mais je ne sais pas faire le scriptage d’excel.
> >>>>
> >>>> Merci
> >>>> Pascal
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Le 24 janv. 2019 à 17:24, Yvan KOENIG <koenigyvan@???> a écrit :
> >>>>>
> >>>>> Bonjour Olivier
> >>>>>
> >>>>> Après un gros accident de santé je reprends peu à peu contact avec
> mon
> >>>> mac.
> >>>>>
> >>>>> Comme je l'ai souvent écrit je n'ai aucune pratique des produits de
> >>>> Merdosoft.
> >>>>> Par contre je sais que si on colle dans une table de Numbers de 10
> >>>> lignes * 20 colonnes le contenu de la table après transposition on
> obtient
> >>>> automatiquement une table de 20 lignes * 20 colonnes dans laquelle
> seules
> >>>> les 10 premières colonnes sont alimentées.
> >>>>> J'ai été amené à le vérifier la semaine dernière pour répondre à un
> >>>> utilisateur qui voulait coller1500 lignes de données dans une table
> qui
> >>>> comportait au départ 22 lignes.
> >>>>> L'application a automatiquement créé les lignes nécessaires.
> >>>>> Si problème il y a, je le vois plutôt dans une limitation possible
> >>>> affectant la fonction transpose disponible dans Excel.
> >>>>> Dans Numbers la dite fonction n'existant pas, il faut créer la liste
> de
> >>>> valeurs transposées par du code AppleScript mais c'est beaucoup plus
> rapide
> >>>> que de coder la création des lignes puis remplir les cellules une par
> une.
> >>>>>
> >>>>> Yvan KOENIG running High Sierra 10.13.6 in French (VALLAURIS, France)
> >>>> jeudi 24 janvier 2019 17:24:03
> >>>>>
> >>>>>> Le 24 janv. 2019 à 16:15, Olivier Berquin <
> olivier.berquin@???>
> >>>> a écrit :
> >>>>>>
> >>>>>> Bonjour Yvan (ça fait bien longtemps),
> >>>>>>
> >>>>>> J'ai tout de même un doute: je pense qu'on ne peut pas copier
> toutes les
> >>>>>> cellules d'une feuille et faire un collage spécial dans la même
> feuille.
> >>>>>> Il y a un problème de taille (nombre colonnes et de rangées).
> >>>>>> C'est pour cette raison que je posais la question…
> >>>>>>
> >>>>>> Voilà voilà…
> >>>>>>
> >>>>>> O.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Le jeu. 24 janv. 2019 à 15:37, Yvan KOENIG <koenigyvan@???> a
> >>>> écrit :
> >>>>>>
> >>>>>>> Bonjour à tous.
> >>>>>>> Désolé de m'insérer dans cet échange.
> >>>>>>>
> >>>>>>> Pascal a écrit :
> >>>>>>>
> >>>>>>>>>>> J’ai testé ton script.
> >>>>>>>>>>> J’ouvre mon fichier excel, je sélectionne les cellules
> (pomme&A)
> >>>>>>>>>>> Je lance le script
> >>>>>>>>>>> Ça flash dans excel, la sélection n’est plus sélectionné mais
> rien
> >>>> n’a
> >>>>>>>>>>> bougé.
> >>>>>>>
> >>>>>>> alors qu'Olivier avait écrit :
> >>>>>>>
> >>>>>>>>>> en transposant ce qu'il y a dans le clipboard.
> >>>>>>>>>> Donc… il faut copier des cellules AVANT de lancer le script…
> >>>>>>>
> >>>>>>> Il semble que Pascal a omis de copier les cellules qu'il voulait
> >>>>>>> coller/transposer.
> >>>>>>>
> >>>>>>> tell application "Microsoft Excel"
> >>>>>>>
> >>>>>>>    # set sourceRange to le range à copier
> >>>>>>>    # copy range sourceRange

> >>>>>>>
> >>>>>>>    # passer le focus vers la table de destination
> >>>>>>>    # définir le point de départ de la zone où coller

> >>>>>>>
> >>>>>>>    set foundRange to selection

> >>>>>>>
> >>>>>>>    set cur_col to the (first column index of foundRange)

> >>>>>>>
> >>>>>>>    set cur_row to the (first row index of foundRange)

> >>>>>>>
> >>>>>>>    set nextCell to cell cur_row of column cur_col

> >>>>>>>
> >>>>>>>    tell nextCell

> >>>>>>>
> >>>>>>>            select

> >>>>>>>
> >>>>>>>            paste special with transpose

> >>>>>>>
> >>>>>>>    end tell

> >>>>>>>
> >>>>>>> end tell
> >>>>>>>
> >>>>>>> Yvan KOENIG running High Sierra 10.13.6 in French (VALLAURIS,
> France)
> >>>>>>> jeudi 24 janvier 2019 15:37:25
> >>>>>>>
> >>>>>>>
> >>>>>>>> Le 24 janv. 2019 à 13:25, Olivier Berquin <
> olivier.berquin@???>
> >>>> a
> >>>>>>> écrit :
> >>>>>>>>
> >>>>>>>> Bonjour Pascal,
> >>>>>>>>
> >>>>>>>> Est-ce que tu peux expliquer ce que tu veux faire exactement?
> >>>>>>>>
> >>>>>>>> O.
> >>>>>>>>
> >>>>>>>> Le mer. 23 janv. 2019 à 20:52, Madert Pascal <
> pascal.madert@???>
> >>>> a
> >>>>>>>> écrit :
> >>>>>>>>
> >>>>>>>>> Bonsoir Olivier,
> >>>>>>>>>
> >>>>>>>>> J’ai fait et ça sélectionne le même nombre de cellules copiées en
> >>>>>>>>> transposition mais rien n’est collé.
> >>>>>>>>> Quelle fonction permet de sélectionner les cellules comme si je
> >>>> faisais
> >>>>>>> «
> >>>>>>>>> pomme+A » ?
> >>>>>>>>>
> >>>>>>>>> Pascal
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Le 23 janv. 2019 à 12:30, Olivier Berquin <
> >>>> olivier.berquin@???>
> >>>>>>> a
> >>>>>>>>> écrit :
> >>>>>>>>>>
> >>>>>>>>>> Bonjour Pascal,
> >>>>>>>>>>
> >>>>>>>>>> Pardon: j'aurais dû expliquer…
> >>>>>>>>>> Le script sélectionne la première cellule non vide de la
> sélection
> >>>> et
> >>>>>>>>> colle
> >>>>>>>>>> en transposant ce qu'il y a dans le clipboard.
> >>>>>>>>>> Donc… il faut copier des cellules AVANT de lancer le script…
> >>>>>>>>>>
> >>>>>>>>>> O.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Le mer. 23 janv. 2019 à 11:09, Madert Pascal <
> >>>> pascal.madert@???>
> >>>>>>> a
> >>>>>>>>>> écrit :
> >>>>>>>>>>
> >>>>>>>>>>> Merci Olivier,
> >>>>>>>>>>>
> >>>>>>>>>>> J’ai testé ton script.
> >>>>>>>>>>> J’ouvre mon fichier excel, je sélectionne les cellules
> (pomme&A)
> >>>>>>>>>>> Je lance le script
> >>>>>>>>>>> Ça flash dans excel, la sélection n’est plus sélectionné mais
> rien
> >>>> n’a
> >>>>>>>>>>> bougé.
> >>>>>>>>>>>
> >>>>>>>>>>> Ne serait-ce pas parce qu’un transposer depuis la première
> cellule
> >>>> sur
> >>>>>>>>> la
> >>>>>>>>>>> zone sélectionnée n’est pas possible (avec excel 16 sur Mac)
> >>>>>>>>>>> Le test à la main n’accepte pas de collage spécial -
> transposer à
> >>>>>>> partir
> >>>>>>>>>>> de la sélection des cellules.
> >>>>>>>>>>> Je dois sélectionner une autre plage ou une nouvelle feuille.
> Et
> >>>> dans
> >>>>>>> ce
> >>>>>>>>>>> cas supprimer la première feuille ou les anciennes cellules.
> >>>>>>>>>>>
> >>>>>>>>>>> Au plaisir de te lire
> >>>>>>>>>>>
> >>>>>>>>>>> Pascal
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>> Le 23 janv. 2019 à 09:03, Olivier Berquin <
> >>>> olivier.berquin@???
> >>>>>>>>
> >>>>>>>>> a
> >>>>>>>>>>> écrit :
> >>>>>>>>>>>>
> >>>>>>>>>>>> J'ai retrouvé un script avec toute une série de commande… J'ai
> >>>> isolé
> >>>>>>>>> ici
> >>>>>>>>>>> le
> >>>>>>>>>>>> paste spécial:
> >>>>>>>>>>>>
> >>>>>>>>>>>> tell application "Microsoft Excel"
> >>>>>>>>>>>>
> >>>>>>>>>>>> set foundRange to selection
> >>>>>>>>>>>>
> >>>>>>>>>>>> set cur_col to the (first column index of foundRange)
> >>>>>>>>>>>>
> >>>>>>>>>>>> set cur_row to the (first row index of foundRange)
> >>>>>>>>>>>>
> >>>>>>>>>>>> set nextCell to cell cur_row of column cur_col
> >>>>>>>>>>>>
> >>>>>>>>>>>> tell nextCell
> >>>>>>>>>>>>
> >>>>>>>>>>>> select
> >>>>>>>>>>>>
> >>>>>>>>>>>> paste special with transpose
> >>>>>>>>>>>>
> >>>>>>>>>>>> end tell
> >>>>>>>>>>>>
> >>>>>>>>>>>> end tell
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Le mer. 23 janv. 2019 à 08:59, Olivier Berquin <
> >>>>>>>>>>> olivier.berquin@???>
> >>>>>>>>>>>> a écrit :
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Bonjour Pascal,
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Il faut d'abord comprendre la logique d'Excel.
> >>>>>>>>>>>>> On ne peut faire un "transposer qu'à partir d'un collage
> spécial
> >>>>>>> (menu
> >>>>>>>>>>>>> Édition).
> >>>>>>>>>>>>> Donc, en script, c'est la même chose (je fais un
> copier/coller
> >>>> ici
> >>>>>>> du
> >>>>>>>>>>>>> Paste Special):
> >>>>>>>>>>>>> paste special
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> paste special (verb)Pastes the contents of the Clipboard
> onto the
> >>>>>>>>> sheet,
> >>>>>>>>>>>>> using a specified format. Use this method to paste data from
> >>>> other
> >>>>>>>>>>>>> applications or to paste data in a specific format. (from
> Table
> >>>>>>> Suite)
> >>>>>>>>>>>>> command syntax
> >>>>>>>>>>>>> paste special range ¬
> >>>>>>>>>>>>> what paste chart format ¬
> >>>>>>>>>>>>> operation operation ¬
> >>>>>>>>>>>>> skip blanks boolean ¬
> >>>>>>>>>>>>> transpose boolean
> >>>>>>>>>>>>> parameters
> >>>>>>>>>>>>> Parameter
> >>>>>>>>>>>>> Required
> >>>>>>>>>>>>> Type
> >>>>>>>>>>>>> Description
> >>>>>>>>>>>>> direct parameter required range
> >>>>>>>>>>>>> operation optional operation The paste operation.
> >>>>>>>>>>>>> skip blanks optional boolean Set to true to have blank cells
> in
> >>>> the
> >>>>>>>>>>> range
> >>>>>>>>>>>>> on the clipboard not be pasted into the destination range.
> The
> >>>>>>> default
> >>>>>>>>>>>>> value is false.
> >>>>>>>>>>>>> transpose optional boolean set to true to transpose rows and
> >>>> columns
> >>>>>>>>>>> when
> >>>>>>>>>>>>> the range is pasted. The default value is false.
> >>>>>>>>>>>>> what optional paste chart format The part of the range to be
> >>>> pasted.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Le mar. 22 janv. 2019 à 22:22, Madert Pascal <
> >>>>>>> pascal.madert@???
> >>>>>>>>>>
> >>>>>>>>>>> a
> >>>>>>>>>>>>> écrit :
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Bonjour à tous et bonne année 2019
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> J’ai besoin à partir de FMP d’envoyer un script sur un
> fichier
> >>>>>>> excel
> >>>>>>>>>>> pour
> >>>>>>>>>>>>>> couper et transposer toutes les cellules exportées depuis
> FMP
> >>>>>>>>>>>>>> J’ai regardé dans la bibliothèque d’Excel, et je ne trouve
> pas
> >>>> ce
> >>>>>>> qui
> >>>>>>>>>>>>>> ressemble à transposer.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Merci
> >>>>>>>>>>>>>> Pascal
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>>>> Applescript_fr mailing list
> >>>>>>>>>>>>>> Applescript_fr@???
> >>>>>>>>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> --
> >>>>>>>>>>>>> Mac OS 10.13.6
> >>>>>>>>>>>>> Adobe CC 2017-2018
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> --
> >>>>>>>>>>>> Mac OS 10.13.6
> >>>>>>>>>>>> Adobe CC 2017-2018
> >>>>>>>>>>>> _______________________________________________
> >>>>>>>>>>>> Applescript_fr mailing list
> >>>>>>>>>>>> Applescript_fr@???
> >>>>>>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>>>>>
> >>>>>>>>>>> _______________________________________________
> >>>>>>>>>>> Applescript_fr mailing list
> >>>>>>>>>>> Applescript_fr@???
> >>>>>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Mac OS 10.13.6
> >>>>>>>>>> Adobe CC 2017-2018
> >>>>>>>>>> _______________________________________________
> >>>>>>>>>> Applescript_fr mailing list
> >>>>>>>>>> Applescript_fr@???
> >>>>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>>>
> >>>>>>>>> _______________________________________________
> >>>>>>>>> Applescript_fr mailing list
> >>>>>>>>> Applescript_fr@???
> >>>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Mac OS 10.13.6
> >>>>>>>> Adobe CC 2017-2018
> >>>>>>>> _______________________________________________
> >>>>>>>> Applescript_fr mailing list
> >>>>>>>> Applescript_fr@???
> >>>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Applescript_fr mailing list
> >>>>>>> Applescript_fr@???
> >>>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Mac OS 10.13.6
> >>>>>> Adobe CC 2017-2018
> >>>>>> _______________________________________________
> >>>>>> Applescript_fr mailing list
> >>>>>> Applescript_fr@???
> >>>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>>
> >>>>> _______________________________________________
> >>>>> Applescript_fr mailing list
> >>>>> Applescript_fr@???
> >>>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>
> >>>> _______________________________________________
> >>>> Applescript_fr mailing list
> >>>> Applescript_fr@???
> >>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>>>
> >>>
> >>>
> >>> --
> >>> Mac OS 10.13.6
> >>> Adobe CC 2017-2018
> >>> _______________________________________________
> >>> Applescript_fr mailing list
> >>> Applescript_fr@???
> >>> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >>
> >> _______________________________________________
> >> Applescript_fr mailing list
> >> Applescript_fr@???
> >> http://listes.patpro.net/mailman/listinfo/applescript_fr
> >
> > _______________________________________________
> > Applescript_fr mailing list
> > Applescript_fr@???
> > http://listes.patpro.net/mailman/listinfo/applescript_fr
>
> _______________________________________________
> Applescript_fr mailing list
> Applescript_fr@???
> http://listes.patpro.net/mailman/listinfo/applescript_fr
>

--
Pascal MADERT
_______________________________________________
Applescript_fr mailing list
Applescript_fr@???
http://listes.patpro.net/mailman/listinfo/applescript_fr