Re: [AS] Scripter excel

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Olivier Berquin
Date:  
À: La liste AppleScript Francophone
Sujet: Re: [AS] Scripter excel
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