Charles
MembreRéponses céées sur le Forum
-
Charles
Membre22 mars 2024 à 11h52 en réponse à: Power Automate – Export de ma liste SharePoint vers un fichier excelOui c’est possible que ce que MarKAR avance soit exact si le flux se lance avec les comptes des utilisateurs mais si au resubmit du flux fail ça fail encore alors que c’est toi qui lance c’est bizarre.
Moi tous mes flux se lancent avec mon compte et n’utilisent jamais le compte des utilisateurs
-
Charles
Membre22 mars 2024 à 10h58 en réponse à: Power Automate – Export de ma liste SharePoint vers un fichier excelBonjour Vincent,
Quand tu resubmit le flux fail depuis power automate, il fonctionne?
-
Charles
Membre22 mars 2024 à 10h54 en réponse à: Flux Forms réponse à un questionnaire dates facultativesEssaye de mettre une formule conditionnelle et de renvoyer null au lieu de “”
-
Charles
Membre19 mars 2024 à 12h00 en réponse à: Faites votre liste de doléances pour l’équipe MS Power Apps : vous avez 5h ! 😉Hello!
Ce serait bien dans PowerApps de pouvoir gérer les visibilités des champs en fonction de remplissage d’autre champs de manière simplifiée.
Genre tu cliques sur un champs et tu peux décider rapidement quel élément s’affiche en fonction de quelle valeur ou si le champ est rempli.
-
Bonjour Thomas,
Tu peux comparer le nombre de lignes de ta gallerie avec le nombre de lignes remplies dans ta gallerie.
Ca va donner un truc du style:
<div>
<div>
<pre class=”language-markup”>If(CountRows(Gallery1.AllItems)-CountRows(Filter(Gallery1.AllItems;Not(IsBlank(DatePicker1.SelectedDate))))=0;true;false)
</div>
<div> </div>
<div>Sachant que là j’ai fait mon filter sur un seul champ DatePicker mais si tu as par exemple en plus un champ de texte qui doit être rempli dans chaque ligne tu peux faire:</div>
<div> </div>
<div>
<div>
<pre class=”language-markup”>If(CountRows(Gallery1.AllItems)-CountRows(Filter(Gallery1.AllItems;Not(IsBlank(DatePicker1.SelectedDate)) && Not(IsBlank(TextInput1.Text))))=0;true;false)
</div>
<div> </div>
<div> </div>
<div>Je te laisse adapter à ton cas.</div>
</div>
</div> -
Alors l’erreur est normale.
’Utilisateursd’Office365′.SearchUserV2({searchTerm:ClientSelectedProfile.DisplayName,top:5}).value renvoie une table avec toutes les données de l’utilisateur sachant qu’il renvoie les 5 premiers résultats d’utilisateur s’il y a plusieurs résutlats.
Il faut ajouter un first:
First(’Utilisateursd’Office365′.SearchUserV2({searchTerm:ClientSelectedProfile.DisplayName,top:5}).value).DisplayName
-
Bonjour Olivia,
Je pense que ça aiderait si tu pouvais nous partager le message d’erreur associé.
Ta formule tu l’as mis dans quel type de contrôle?
-
Charles
Membre1 février 2024 à 14h15 en réponse à: Formulaire d’affichage vs Formulaire de modificationOui mais avec le risque que quelqu’un modifie quelque chose par inadvertance. Bon encore faut-il qu’il valide la saisie.
-
Une des solutions consiste à ajouter des lignes à la dernière fonction
texte_clean = texte_clean.replace(“deux million”, “deux millions”);
texte_clean = texte_clean.replace(“trois million”, “trois millions”);
etc…
C’est un peu lourd mais ça contournera très bien le soucis sans toucher au code de base
-
Charles
Membre1 février 2024 à 12h13 en réponse à: Formulaire d’affichage vs Formulaire de modificationBonjour Anthony,
Pour éviter que les gens ne consultent en modification, tu peux n’avoir qu’un écran qui est par défaut en affichage et qu’un bouton peut faire basculer en mode modification.
Tu peux gérer le FormMode avec une variable de contexte.
-
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
}