# AppleScript récuperer une liste dans une liste



## Moutet (26 Avril 2020)

Bonjour,

Mon problème consiste à récuperer une liste dont le nom est dans une autre liste si c'est possible je mets l'exemple ci dessous:

set maPremiereListe to {1, 2, 3, 4, 5}
set maSecondeListe to {"J'ai", "mal", "a la", "tete"}
set maListeDeMesListes to (maPremiereListe, maSecondeListe)
set monChoix to (choose from list maListeDeMesListes with prompt "Choisissez la liste" OK button name "Validation" cancel button name "Arrêt")

-- seulement monChoix n'est pas une liste même si je mets les parentheses
Qui peut m'aider ?


----------



## zeltron54 (26 Avril 2020)

Bonjour,

Pas sur d'avoir tout compris mais si tu veux avoir une liste en sortie du choix fait :


```
set maPremiereListe to "1, 2, 3, 4, 5"
set maSecondeListe to "J'ai, mal, a la, tete"
set maListeDeMesListes to {maPremiereListe, maSecondeListe}
set monChoix to (choose from list maListeDeMesListes with prompt "Choisissez la liste" OK button name "Validation" cancel button name "Arrêt")
set monChoix to monChoix as list
```


----------



## Moutet (26 Avril 2020)

Salut Zeltron et merci pour ta réponse rapide

En faite j'aurais voulu garder mes listes tel quel pour pouvoir selectionner par la suite les items qui m'intéresse
J'ai 20 listes différentes donc je choisi une liste1 ou plusieurs dans maListeDesListes et ensuite je veux choisir un ou plusieurs item de ma liste 1.
Je me demande si une liste composée  de listes c'est possible.
Il va falloir contourner le problème


----------



## zeltron54 (26 Avril 2020)

Mais en faisant comme mon exemple, Tu as bien une liste après le choix.

Tu peux aussi donner un nom à chaque liste, nom qui sera dans la liste de choix et en sortie , si choix = XX tu utilises la liste correspondante...

Je ne vois pas où est le problème.


----------



## Moutet (26 Avril 2020)

Je suis pas un expert, les listes que tu crées sont des variables string et pas des listes ?
La liste, que tu récupèrent, est une liste avec tes deux variables déclarées précédemment, Après avoir choisi la liste si je veux faire un choix dans cette dernière c'est pas possible


----------



## zeltron54 (26 Avril 2020)

Je te met un exemple:


```
set maPremiereListe to {1, 2, 3, 4, 5}
set maSecondeListe to {"J'ai", "mal", "a la", "tete"}

set monChoix to (choose from list {"liste 1", "Liste 2"} with prompt "Choisissez la liste" OK button name "Validation" cancel button name "Arrêt") as string

--Si monchoix est liste 1 et je veux le troisième élément
tell application "Finder"
    if monChoix is "liste 1" then
        set le3 to item 3 of maPremiereListe
        
        display dialog "le 3 de liste 1  est : " & le3
        
        --Si monchoix est liste 2 et je veux le deuxième élément
    else if monChoix is "Liste 2" then
        set le2 to item 2 of maSecondeListe
        
        display dialog "le 2 de liste 2  est : " & le2
    end if
    
end tell
```


----------



## Moutet (28 Avril 2020)

Bonjour Zeltron

Je crois que j'ai compris. En faite maListeDesListes doit comporter des noms ou un numéro "string" 
et ensuite j'affectes chaque item à sa liste  et je peux  appeler ma liste  pour faire mon choix à l'intérieur de cette dernière. je te tiens au courant

encore Merci


----------



## Moutet (28 Avril 2020)

J'ai ce qu'il me faut
set maPremiereListe to {1, 2, 3, 4, 5}
set maSecondeListe to {"J'ai", "mal", "a la", "tete"}
set monChoix to (choose from list {"liste 1", "Liste 2"} with prompt "Choisissez la liste" OK button name          "Validation" cancel button name "Arrêt") as string

--Si monchoix est liste 1
tell application "Finder"
    if monChoix is "liste 1" then
        set monChoix to maPremiereListe
-- Maintenenant Je peux faire mon choix dans cette liste
         set monNChoix_1 to (choose from list monChoix with prompt "Choisissez la liste" OK button name                    "Validation" cancel button name "Arrêt") as string
  --Si monchoix est liste 2 
    else if monChoix is "Liste 2" then
          set monChoix to maSecondeListe
          set monNChoix_2 to (choose from list monChoix with prompt "Choisissez la liste" OK button name                    "Validation" cancel button name "Arrêt") as string
    end if

end tell

il n'y a plus qu'à écrire la routine qui va bien
encore Merci


----------



## zeltron54 (28 Avril 2020)

Content pour toi !


----------

