AppleScript et numbers

  • Créateur du sujet Créateur du sujet Moutet
  • Date de début Date de début

Moutet

Membre confirmé
5 Avril 2017
28
0
68
Bonsoir,

Si quelqu'un peut m'aider

J’ai un fichier numbers de x feuilles

Dans chaque feuille j’ai un tableau de ce style

DATE LIBELLE 1 LIBELLE 2 LIBELLE 3 TYPES LIBELLE 4 LIBELLE 5 LIBELLE 6 LIBELLE 7 N° DE RELEVE OBSERVATION


j’ai une liste de libelle 1 : maListeDeLibelle1 to {‘’Texte 1’’, ‘’Texte 2’’, ‘’Texte 3’’, ‘’Texte 4’’, ‘’Texte 5’’}

Dans ce tableau je veux copiées les données des 3 premières colonnes de la ligne si le texte de la colonne 2 contient un des textes de la liste

Les copies sont ajoutées dans une nouvelleListe{}

Je crée dans un autre fichier un tableau avec trois colonnes et je recopie dans ce tableau les données de la nouvelleListe

Voici le debut de mon script mais je bute sur l'itération de maListeDeLibelle1

set leFichierSource to my monfichier(listeFichiersSource, monAnnee)
set myFichierSource to monRepertoireSource & leFichierSource

tell application "Numbers"
activate
open myFichierSource

tell front document

set listeSource to {}
set sourceTable to "Tableau 1"

-- La boucle démarre pour rechercher de la feuille 01 a la feuille 12

repeat with k from 0 to 11

set k to k + 1

set sourceFeuille to k -- Affectation de la valeur de k à la feuille source

tell sheet sourceFeuille to tell table sourceTable -- appel de la feuille et du tableau source

-- Nous définissons la condition des cellules de la colonne B

repeat with i from 1 to count row

if (value of cell ("B" & i) is not " ") then

-- La boucle démarre jusqu'à la dernière ligne du tableau pour vérifier cette condition

repeat with i from 1 to count row
set i to i + 1
end repeat

-- Nouvelle boucle qui doit verifier la condition sur toutes les lignes du tableau

A partir de cette boucle je bloque
repeat with i from 1 to count row


repeat with j from 0 to 2
set j to j + 1

set the selection range to row i
set end of listeSource to value of cell j of row i

end repeat
set a to a + 1

end repeat


-- Fin de boucle qui verifie la condition des lignes du tableau


-- end if condition des cellules de la colonne B
end if

end repeat

-- end tell sheet source feuille
end tell

-- fin de la boucle recherche
end repeat

-- end front document
end tell

-- end Numbers
end tell

Merci d'avance

DM
 
Bonjour,
Je n'ai pas tout compris à ce que tu voulais faire (je me suis perdu dans tes explications), mais pas bien important !

En regardant ton code, notamment les boucles, Il apparaît 2 erreurs de structure.

- Dans un boucle (repeat with x from debut to fin)
La valeur de la variable "x" s'incrémente toute seule à chaque passage jusqu'à ce qu'elle est la valeur "fin".
Dans ton code tu incrémentes toi même la variable (donc elle augmente 2 fois)une fois par toi et une fois en automatique !

-De plus tu utilises plusieurs fois la même variable de boucle "i" à l'intérieur de la la boucle,
Donc cette variable de boucle change avant la comparaison automatique par le "End repeat" et n'a donc jamais la valeur de "fin", ce qui à pour effet une boucle infinie...

Il te faut revoir l'utilisation des boucles et leurs différentes formes...
Repeat --> end repeat
Repeat until test --> end repeat
Repeat while test --> end repeat
Repeat x (times) --> end repeat
Repeat with variable in liste --> end repeat
Repeat with variable from debut to fin --> end repeat
 
Salut Zeltron et merci

J'ai du m'absenter, je pense que tu as raison pour les boucles je vais réexaminer tout çà à tête reposer.
Quand j'aurai trouver je reviendrai vers toi.

Encore Merci