Réponses céées sur le Forum

Page 2 sur 2
  • Charles

    Membre
    29 janvier 2024 à 16h04 en réponse à: Réécrire un montant en lettres

    Ah oui mon code va jusqu’à 1000000 max il me semble.

    Pour 1 milliard il faudrait que je refasse des tests

  • Charles

    Membre
    28 janvier 2024 à 18h50 en réponse à: Version essai, Power Automate !

    Moi perso je renouvelle le trial depuis 2 ans sans soucis ^^

  • Charles

    Membre
    26 janvier 2024 à 21h55 en réponse à: Réécrire un montant en lettres

    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

  • Ce n’est pas le bon menu, il faut aller dans les variables:

  • Je ne vois pas la formule en entier sur le screen

  • Mon Title est la colonne contenant l’ID de mon entreprise dans La liste entreprise

  • Alors j’ai une solution, après est-ce que c’est la plus simple, je ne sais pas.

    Etape 1, tu dévérouilles ton champ ID_Entite dans ton form

    Ensuite toujours avec la dataCard sélectionnée, tu ajoutes une zone de liste déroulante que tu passes en SelectMultiple = false.

    Cette liste tu la lies aux données de tes entreprises puis en champ d’affichage tu sélectionnes le champ de Nom

    Dans Cette liste, tu définis DefaultSelectedItem pour afficher la valeur actuelle de nom de l’entreprise de l’utilisateur sélectionné

    Ca donne un résultat de ce style (j’ai mis les 2 combobox l’une au dessus de l’autre pour que ce soit parlant)

    Ensuite tu changes le default selected item du champ qui affiches actuellement l’ID pour afficher toujours l’ID qui correspond à la liste des Noms en clair

    Normalement à ce stade, quand tu changes le nom de la liste du bas, tu as automatiquement l’ID correspondant dans le champ du haut

    Ensuite il te suffit de superposer les 2 champs et de passer le champ qui affiche l’ID en Visible=false pour ne voir que le champ qui affiche les noms. Le formulaire soumis avec SubmiForm prendra en compte la valeur du champ masqué qui lui affiche toujours l’ID correspondant au nom choisi

  • Charles

    Membre
    25 janvier 2024 à 15h13 en réponse à: Filtrer une galerie avec un toggle

    Bonjour Anthony,

    Il faut que tu combines un filter et ton search.

    avec un if au début

    Par exemple:

    if(Toggle.Value = true;Filter(Search(lecontenu du search habituel);colonne_facture = true);Search(le contenu du search habituel))

    Evidemment il faut mettre Tes fonctions Sort dans tout ça

    • Cette réponse a été modifiée Il y a 7 mois, 4 semaines par  Charles.
  • Bonjour Lou,

    Peut-être qu’un petit screen annoté permettrait d’avoir plus de réponses?

    De ce que je comprends, tu as une bdd avec une colonne type Lookup qui renvoie l’ID d’une entreprise pour chaque client. Tu souhaites que dans le form de modification client, au lieu d’une liste déroulante avec les ID, ce soit une liste avec les Noms qui apparaissent, c’est ça?

  • Bonjour BNguyen,

    Avec des ForAll tu devrais pouvoir t’en sortir.

    Si on considère que ta collection contenant tes tables s’appelle col_Tables, tu peux collecter une nouvelle collection col_Data de cette façon:

    ForAll(col_Tables;ForAll(Value;Collect(col_Data;Value)))

    En espérant que ça fonctionne.

  • La formule doit être dans DefaultSelectedItems. Dans Items il faut laisser la valeur par défaut

  • Du coup au lieu de .Value il faut mettre .crc5b_id_entite

    • Cette réponse a été modifiée Il y a 7 mois, 4 semaines par  Charles.
  • En 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 7 mois, 4 semaines par  Charles.
  • Est-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:

    • Cette réponse a été modifiée Il y a 7 mois, 4 semaines par  Charles.
    • Cette réponse a été modifiée Il y a 7 mois, 4 semaines par  Charles.
    • Cette réponse a été modifiée Il y a 7 mois, 4 semaines par  Charles.
Page 2 sur 2