# Numbers exporter CSV et Chemin Fichier



## Gazelle30 (21 Août 2013)

Bonjour,

J'essaie de créer un code pour exporter depuis Numbers des fichiers au format CSV.
Mon code simule le click sur le menu Fichier/exporter/CSV puis click sur les boutons "suivant" et "exporter".

tell application "Numbers"

	open CheminFichierCodes
	tell sheet 1
		my selectSubMenu("Numbers", "Fichier", "Exporter", "CSV")
		tell application "System Events"
			click button "Suivant" of sheet 1 of window NomFichier of application process "Numbers"
			click button "Exporter" of sheet 1 of window NomFichier of application process "Numbers"

		end tell
	end tell
end tell


on selectSubMenu(theApp, m1, m2, m3)
	activate application theApp
	tell application "System Events"
		click menu item m3 of menu m2 of menu item m2 of menu m1 of menu bar item m1 of menu bar 1 of application process theApp
	end tell
end selectSubMenu


Une fois là, je voudrais indiquer la création du fichier avec un nom particulier dans un dossier particulier ou bien trouver le moyen de récupérer le chemin complet et le nom de fichier créé. J'en ai besoin par la suite pour traiter le fichier avec TextWrangler.
Quelqu'un aurait-il une idée pour me dire comment faire? 
Merci beaucoup,


----------



## quark67 (21 Août 2013)

Salut.

Tout d'abord, tu peux simuler le clic sur les boutons "Suivant..." et "Exporter" par la simulation de l'appui de la touche "Entrée" (les boutons sous fond bleu peuvent être activés au clavier par la touche "Entrée", soit la commande *keystroke return*)

Ensuite, pour indiquer le dossier dans lequel tu veux que le fichier soit enregistré, tu disposes dans la boite de dialogue d'enregistrement des raccourcis clavier qui apparaissent dans le Finder dans le menu Aller.
Ainsi, si tu veux que le fichier soit enregistré sur le bureau, c'est &#8679;&#8984;D.
Mais si tu veux indiquer un dossier à un emplacement personnalisé, il existe un raccourci clavier spécifique qui est (toujours selon le menu Aller du Finder) &#8679;&#8984;G, qui correspond à "Aller au dossier..." et qui permet d'entrer un chemin de dossier (il doit être valide, c'est à dire que les dossiers indiqués doivent déjà exister).
Et enfin, on simule l'entrée au clavier du nom du fichier (.csv sera rajouté automatiquement).
Des commandes *delay 1* sont rajoutés, elles rajoutent 1 seconde entre les ac&#8203;tions, afin que l'appui sur certaines touches ne soit pas « mangé », le temps que l'interface grap&#8203;hi&#8203;que réagisse (par exemple sur mes tests, le N de "Nom de fichier" n'était pas pris en compte car il était entré trop rapidement, juste après la validation du chemin du dossier).

Avec tout ça, on peut désormais écrire le script (je ne change que la partie entre *tell application "System Events"* et le *end tell* correspondant) :


```
tell application "Numbers"

	open CheminFichierCodes
	tell sheet 1
		my selectSubMenu("Numbers", "Fichier", "Exporter", "CSV&#8230;")
		tell application "System Events"
			delay 1
			keystroke return
			delay 1
			keystroke "G" using {command down, shift down} -- on simule l'entrée de &#8679;&#8984;G
			delay 1
			keystroke "/Users/Ton_Nom_d'Utilisateur/Documents/Doc numbers" -- le chemin du dossier
			keystroke return
			delay 1
			keystroke "Nom de fichier" -- le nom souhaité pour le fichier (.csv sera rajouté automatiquement)
			keystroke return
		end tell
	end tell
end tell


on selectSubMenu(theApp, m1, m2, m3)
	activate application theApp
	tell application "System Events"
		click menu item m3 of menu m2 of menu item m2 of menu m1 of menu bar item m1 of menu bar 1 of application process theApp
	end tell
end selectSubMenu
```


----------



## Gazelle30 (22 Août 2013)

Merci beaucoup de ta réponse, ça m'a beaucoup aidé, ça marche!
voilà ce que donne mon code, sans doute pas très académique pour une débutante, mais il a le mérite d'exister et de fonctionner!


tell application "Finder"
	set ChoixFichierCodes to "Choisir le fichier (fichiers numbers)"
	set tempvar to display dialog ChoixFichierCodes buttons {"Annuler", "Choisir", "OK"} default button 3 default answer "Isabel:Users:NeueUseresktop:titres panos en unicode:Test.numbers"
	set BoutonChoisi to button returned of tempvar

	if BoutonChoisi is "Choisir" then

		set CheminFichierCodes to choose file of type ("NUMBERS")
		set NomFichier to name of CheminFichierCodes
		set CheminPosix to POSIX path of CheminFichierCodes
		log NomFichier
		log CheminPosix
	end if

	if BoutonChoisi is "OK" then
		set CheminFichierCodes to "Isabel:Users:NeueUseresktop:titres panos en unicode:Test.numbers"
		set NomFichier to "Test.numbers"
		set CheminPosix to POSIX path of CheminFichierCodes
		log NomFichier
		log CheminPosix
	end if
end tell

tell application "Numbers"

	open CheminFichierCodes
	tell sheet 1
		my selectSubMenu("Numbers", "Fichier", "Exporter", "CSV")
		tell application "System Events"

			click button "Suivant" of sheet 1 of window NomFichier of application process "Numbers"
			delay 1
			keystroke "G" using {command down, shift down} -- on simule l'entrée de &#8679;&#8984;G
			delay 1
			keystroke CheminPosix -- le chemin du dossier
			keystroke return
			delay 1
			keystroke return

		end tell
	end tell
end tell


on selectSubMenu(theApp, m1, m2, m3)
	activate application theApp
	tell application "System Events"
		click menu item m3 of menu m2 of menu item m2 of menu m1 of menu bar item m1 of menu bar 1 of application process theApp
	end tell
end selectSubMenu


----------

