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