Charles
MembreRéponses céées sur le Forum
-
OK dans ce cas il faut dans OnChange de la liste 1 mettre:
Clear(col_Projets);;
ForAll(cb_Article.SelectedItems;Collect(col_Projets;FILTER(PROJET; REF_ARTICLE = NomDeLaColonneDeRefArticle)))
Ensuite dans le Items de la liste 2 mettre col_liste2 et selectionner la colonne à faire apparaitre dans la liste 2 parmi celles de la col_Projets
-
Est-ce que la liste 1 a qu’une seule colonne Value ou elle possède d’autres colonnes?
-
C’est une liste déroulante ou une zone de liste que tu as?
En selection multiple je dirai une zone de liste. Peut-être qu’avec ForAll ça fonctionnerait?
ForAll(cb_Article.SelectedItems;FILTER(PROJET; REF_ARTICLE = Value)
Sinon tu peux faire une collection à partir de la propriété onchange de ta liste 1 et utiliser ta collection comme items de ta liste 2
-
Là c’est 100 milliards max
-
Voilà un nouveau code, après il y a un peu de bidouillage et je suis pas un pro donc je garantis pas que ça fonctionne à 100%
<pre class=”language-javascript”>
function main(workbook: ExcelScript.Workbook, nombre: number) {
return replaceResult(numberToWordsFr(nombre))
}
function numberToWordsFr(num: number): string {
const units = ['zero', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf'];
const tens = ['', 'dix', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingt', 'quatre-vingt-dix'];
const teens = ['dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf'];if (num < 10) {
return units[num];
} else if (num < 20) {
return teens[num - 10];
} else if (num < 100) {
let unit = num % 10;
let ten = Math.floor(num / 10);
return tens[ten] + (unit > 0 ? '-' + units[unit] : '');
} else if (num < 1000) {
let hundred = Math.floor(num / 100);
let remainder = num % 100;
return units[hundred] + ' cent' + (remainder > 0 ? ' ' + numberToWordsFr(remainder) : '');
} else if (num < 1000000) {
let thousand = Math.floor(num / 1000);
let remainder = num % 1000;
return numberToWordsFr(thousand) + ' mille' + (remainder > 0 ? ' ' + numberToWordsFr(remainder) : '');
} else if (num < 1000000000) {
let million = Math.floor(num / 1000000);
let remainder = num % 1000000;
return numberToWordsFr(million) + ' million' + (remainder > 0 ? ' ' + numberToWordsFr(remainder) : '');
} else if (num < 100000000000) {
let billion = Math.floor(num / 1000000000);
let remainder = num % 1000000000;
return numberToWordsFr(billion) + ' milliard' + (remainder > 0 ? ' ' + numberToWordsFr(remainder) : '');
} else {
return 'Nombre trop grand';
}
}function replaceResult(texte: string) {
let texte_clean: string;
texte_clean = texte.replace("dix-un", "onze");
texte_clean = texte_clean.replace("dix-deux", "douze");
texte_clean = texte_clean.replace("dix-trois", "treize");
texte_clean = texte_clean.replace("dix-quatre", "quatorze");
texte_clean = texte_clean.replace("dix-cinq", "quinze");
texte_clean = texte_clean.replace("dix-six", "seize");
texte_clean = texte_clean.replace("trente-un", "trente et un");
texte_clean = texte_clean.replace("vingt-un", "vingt et un");
texte_clean = texte_clean.replace("quarante-un", "quarante et un");
texte_clean = texte_clean.replace("cinquante-un", "cinquante et un");
texte_clean = texte_clean.replace("soixante-un", "soixante et un");
texte_clean = texte_clean.replace("soixante-onze", "soixante et onze");
texte_clean = texte_clean.replace("soixante-dix-deux", "soixante-douze");
texte_clean = texte_clean.replace("quatre-vingt et un", "quatre-vingt-un");
return texte_clean
} -
Ah oui mon code va jusqu’à 1000000 max il me semble.
Pour 1 milliard il faudrait que je refasse des tests
-
Moi perso je renouvelle le trial depuis 2 ans sans soucis ^^
-
Bonjour Marielle,
Une des solutions consiste à passer par un script Sharepoint pour mouliner ton nombre.
Il faut que tu ailles dans Excel Online puis que tu crées un nouveau script depuis l’onglet “Automate”.
Dans le script tu colles le code suivant:
<pre class=”language-javascript”>
function main(workbook: ExcelScript.Workbook, nombre: number) {
return nombreEnTexte(nombre)
}function nombreEnTexte(nombre: number) {
if (nombre < 100) {
return replaceResult(dizaineEnTexte(nombre));
} else if (nombre < 1000) {
return replaceResult(centainesEnTexte(nombre));
} else if (nombre < 1000000) {
let milliers = Math.floor(nombre / 1000);
let reste = nombre % 1000;
let texte: string
texte = nombreEnTexte(milliers) + ' mille';
texte += (reste > 0) ? ' ' + nombreEnTexte(reste) : '';
return replaceResult(texte);
} else {
return "Nombre trop grand";
}
}function centainesEnTexte(nombre: number) {
let centaines = Math.floor(nombre / 100);
let reste = nombre % 100;
let texte: string
texte = (centaines > 1) ? nombreEnTexte(centaines) + ' cent' : 'cent';
texte += (reste > 0) ? ' ' + dizaineEnTexte(reste) : '';
return texte;
}function dizaineEnTexte(nombre: number) {
const unites = ['zero', 'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf'];
const dizaines = ['', '', 'vingt', 'trente', 'quarante', 'cinquante', 'soixante', 'soixante-dix', 'quatre-vingt', 'quatre-vingt-dix'];if (nombre < 10) {
return unites[nombre];
} else if (nombre < 20) {
return ['dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf'][nombre - 10];
} else if (nombre === 80) {
return 'quatre-vingts';
} else {
let texte = dizaines[Math.floor(nombre / 10)];
let reste = nombre % 10;
if ((nombre >= 70 && nombre < 80) || (nombre >= 90)) {
texte = nombreEnTexte(nombre - 10) + '-dix';
reste -= 10;
}
texte += (reste > 0) ? ((reste === 1 && nombre !== 71) ? ' et un' : '-' + unites[reste]) : '';
return texte;
}
}function replaceResult(texte: string){
let texte_clean: string;
texte_clean = texte.replace("un-dix", "onze");
texte_clean = texte_clean.replace("quatre-vingt et onze", "quatre-vingt-onze");
texte_clean = texte_clean.replace("deux-dix", "douze");
texte_clean = texte_clean.replace("deux-dix", "douze");
texte_clean = texte_clean.replace("trois-dix", "treize");
texte_clean = texte_clean.replace("quatre-dix", "quatorze");
texte_clean = texte_clean.replace("cinq-dix", "quinze");
texte_clean = texte_clean.replace("six-dix", "seize");
texte_clean = texte_clean.replace("sept-dix", "dix-sept");
texte_clean = texte_clean.replace("huit-dix", "dix-huit");
texte_clean = texte_clean.replace("neuf-dix", "dix-neuf");
texte_clean = texte_clean.replace("un mille", "mille");
return texte_clean
}Tu sauvegardes ton script et ensuite tu peux l’appeler dans PowerAutomate avec la fonction
“Run script from SharePoint library”. Tu es obligée de sélectionner un fichier Excel mais quel que soit le fichier ça fonctionne et ensuites tu renseignes ton script à executer.
Le nombre en toutes lettres sera dans l’output de cette action
-
Charles
Membre25 janvier 2024 à 17h45 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireCe n’est pas le bon menu, il faut aller dans les variables:
-
Charles
Membre25 janvier 2024 à 17h24 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireJe ne vois pas la formule en entier sur le screen
-
Charles
Membre25 janvier 2024 à 17h18 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireMon Title est la colonne contenant l’ID de mon entreprise dans La liste entreprise
-
Charles
Membre25 janvier 2024 à 18h01 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireLa formule doit être dans DefaultSelectedItems. Dans Items il faut laisser la valeur par défaut
-
Charles
Membre25 janvier 2024 à 17h49 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireDu coup au lieu de .Value il faut mettre .crc5b_id_entite
- Cette réponse a été modifiée Il y a 10 mois par Charles.
-
Charles
Membre25 janvier 2024 à 17h37 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireEn sélectionnant la partie de la formule puis en cliquant sur la flèche en bas à gauche
Si elle n’apparait pas tu peux aussi ajouter un bouton et collecter les données:
ClearCollect(col_Test;Gallery1.Selected.’Entreprise ID’) en remplaçant par tes valeurs
Ensuite il faut aller dans le volet de variable pour aller chercher la collection:
- Cette réponse a été modifiée Il y a 10 mois par Charles.
-
Charles
Membre25 janvier 2024 à 17h29 en réponse à: Problème pour récupérer une donnée d’une autre table à partir d’un formulaireEst-ce que tu peux afficher la structure Gallery_AF.Selected.’ID_Entite’?
Normalement quand on met le . après il propose les propriétés: