Merci, avec du Mod et du Ent j'ai réussi au résultat voulu.
Je voulais charger mon fichier d'essais pour que ça puisse servir à d'autre, mais j'ai pas trouvé donc voilà le code que j'ai utilisé, dans mon cas, j'ai pas besoin de plus de 6 items par liste mais on pourrais facilement augmenter cette valeur.
Rubrique 1
Definir ([
rub = 1 ;
rubmax = 4 ;
liste = "maliste" ;
nom_min = Ent ( DecompteValeurs ( liste ) / rubmax ) ;
nom_mod = Mod ( DecompteValeurs ( liste ) ; rubmax ) ;
prem = rub ;
dernier = rub * nom_min + Si ( rub ≤ nom_mod ; rub )
];
Cas ( dernier = 1 ; ObtenirValeur ( liste ; prem ) ;
dernier = 2 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) ;
dernier = 3 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) ;
dernier = 4 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) ;
dernier = 5 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) ;
dernier = 6 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) & ¶ & ObtenirValeur ( liste ; prem + 5 )
)
)
Rubrique 2
Definir (
[rub = 2 ;
rubmax = 4 ;
liste = "maliste" ;
nom_min = Ent ( DecompteValeurs ( liste ) / rubmax ) ;
nom_mod = Mod ( DecompteValeurs ( liste ) ; rubmax ) ;
prem = (rub - 1) * nom_min + Si ( nom_mod ; 2 ; 1 ) ;
dernier = Si ( nom_mod ≥ rub ; prem + nom_min ; prem + nom_min -1)
];
Cas ( dernier - prem + 1 = 1 ; ObtenirValeur ( liste ; prem ) ;
dernier - prem + 1 = 2 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) ;
dernier - prem + 1 = 3 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) ;
dernier - prem + 1 = 4 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) ;
dernier - prem + 1 = 5 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) ;
dernier - prem + 1 = 6 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) & ¶ & ObtenirValeur ( liste ; prem + 5 )
)
)
Rubrique 3
Definir (
[rub = 3 ;
rubmax = 4 ;
liste = "maliste" ;
nom_min = Ent ( DecompteValeurs ( liste ) / rubmax ) ;
nom_mod = Mod ( DecompteValeurs ( liste ) ; rubmax ) ;
prem = (rub - 1) * nom_min + Cas ( nom_mod = 3 ; 3 ; nom_mod = 2 ; 3 ; nom_mod = 1 ; 2 ; 1 ) ;
dernier = Si ( nom_mod ≥ rub ; prem + nom_min ; prem + nom_min -1 )
];
Cas ( dernier - prem + 1 = 1 ; ObtenirValeur ( liste ; prem ) ;
dernier - prem + 1 = 2 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) ;
dernier - prem + 1 = 3 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) ;
dernier - prem + 1 = 4 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) ;
dernier - prem + 1 = 5 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) ;
dernier - prem + 1 = 6 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) & ¶ & ObtenirValeur ( liste ; prem + 5 )
)
)
Rubrique 4
Definir (
[rub = 4 ;
rubmax = 4 ;
liste = "maliste" ;
nom_min = Ent ( DecompteValeurs ( liste ) / rubmax ) ;
nom_mod = Mod ( DecompteValeurs ( liste ) ; rubmax ) ;
prem = (rub - 1) * nom_min + nom_mod + 1 ;
dernier = prem + nom_min -1
];
Cas ( dernier - prem + 1 = 1 ; ObtenirValeur ( liste ; prem ) ;
dernier - prem + 1 = 2 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) ;
dernier - prem + 1 = 3 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) ;
dernier - prem + 1 = 4 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) ;
dernier - prem + 1 = 5 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) ;
dernier - prem + 1 = 6 ; ObtenirValeur ( liste ; prem ) & ¶ & ObtenirValeur ( liste ; prem + 1 ) & ¶ & ObtenirValeur ( liste ; prem + 2 ) & ¶ & ObtenirValeur ( liste ; prem + 3 ) & ¶ & ObtenirValeur ( liste ; prem + 4 ) & ¶ & ObtenirValeur ( liste ; prem + 5 )
)
)