Geoffroy
MembreRéponses céées sur le Forum
-
Geoffroy
Membre6 octobre 2023 à 16h04 en réponse à: Extraire des éléments d'un mail pour ajouter et/ou compléter une ligne d'un tableau excelVoici un flux qui répond entièrement à la question (enfin, j’espère 😉 )
J’ai laissé tomber les variables varBAT1 et varBAT2 qui ne servent pas vraiment (sauf pour clarifier le raisonnement). J’ai ajouté une variable Statut qui servira à déterminer si on a trouvé ou non une ligne avec la date recherchée.
Tout d’abord, on passe en revue les lignes jusqu’à arriver sur une ligne vide (théoriquement, si une ligne avec la date du jour existe déjà, ce sera la dernière). Je n’ai pas trouvé comment aller directement à la dernière ligne. Par défaut, la limite est à 60 mais on peut la mettre à 1 pour gagner du temps.
Pour chaque ligne, on compare les 10 premiers caractères de la date du jour avec ceux de la colonne Date J-1 (car elles sont en format ISO9801 qui inclut l’heure). Si c’est égal, on met à jour la ligne et on passe le statut à OK.
Sinon, on crée une nouvelle ligne avec les infos de BAT1 ou BAT2.
Il y a sûrement une méthode plus élégante 😄
CommentID=eJrOoKWcT3uJuDw, PostID=rejjtrcwiL7Yj7j
-
Geoffroy
Membre6 octobre 2023 à 12h17 en réponse à: Extraire des éléments d'un mail pour ajouter et/ou compléter une ligne d'un tableau excelPour déterminer la formule correcte pour extraire le nombre d’occupants dans les variables varBAT1 ou varBAT2, je te conseille de commencer par mettre d’abord que le corps du message dans la variable et de visualiser son contenu. Ca te donnera les indications pour paramétrer la fonction Split.
CommentID=cb07NguJf7CsGPy, PostID=rejjtrcwiL7Yj7j
-
Geoffroy
Membre6 octobre 2023 à 12h11 en réponse à: Extraire des éléments d'un mail pour ajouter et/ou compléter une ligne d'un tableau excelBonjour ABru
1. Le fichier excel doit contenir un tableau et être placé dans OneDrive
2. La syntaxe du mail déterminera comment le flux va trouver les infos utiles (date, nombre d’occupants du BAT1, nombre d’occupants du BAT2)
Dans mon exemple, le mail a pour objet Occupants BAT1 ou Occupants BAT2.
Le corps du mail est simplement Occupants : X
Voici le flux global
Et le détail
Il faudra bien sûr adapter cet exemple à ta situation.
Attention, c’est un premier jet. Pour l’instant, ce flux crée une nouvelle ligne à chaque fois. il ne répond pas encore à ton souhait de remplir une ligne existante.
CommentID=ESHSh92supfg881, PostID=rejjtrcwiL7Yj7j
-
Geoffroy
Membre3 octobre 2023 à 19h41 en réponse à: Soumettre un formulaire que si la PJ est en format pdfMerci DavidZed ça marche impeccable avec DataCardValue_PJ.Attachments.Name 😊
CommentID=ePKYP3ZmzZTi1aj, PostID=MxQEgnE4hpw2bPD
-
Geoffroy
Membre29 septembre 2023 à 13h47 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculation“Deux choses sont infinies : l’Univers et le nombre de façons de remplir un champ texte. Mais, en ce qui concerne l’Univers, je n’en ai pas encore acquis la certitude absolue.”
Albert E.
CommentID=h483eKSMhQKHTUt, PostID=erpIzqrXOw59kfW
-
Geoffroy
Membre29 septembre 2023 à 13h20 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculationUne autre option serait d’imposer une saisie sous la forme ab123cd et de faire le formatage après (mise en majuscule et traits d’union). Ca suppose de limiter le nombre de caractères à 7 dans le TextInput.
Si tu n’es pas sûr que l’utilisateur va respecter ce format (2 lettres, 3 chiffres, 2 lettres), il faudra vérifier pour chaque caractère s’il répond au masque demandé et par exemple mettre le fond du TextInput en rouge si ce n’est pas bon.
CommentID=Mhd8KDY1ArSpayt, PostID=erpIzqrXOw59kfW
-
Geoffroy
Membre29 septembre 2023 à 15h37 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculationEn fait, on peut simplifier le Fill en passant d’abord tout en majuscules dans les formules nommées
nfPlaque1=With({inputString:Upper(Mid(plaque.Text;1;1))};LookUp(ForAll(Sequence(255);{Num:Value;Character:Char(Value)});Character=inputString).Num);;
If(nfPlaque1>=65&&nfPlaque1<=90&&nfPlaque2>=65&&nfPlaque2<=90&&nfPlaque3>=48&&nfPlaque3<=57&&nfPlaque4>=48&&nfPlaque4<=57&&nfPlaque5>=48&&nfPlaque5<=57&&nfPlaque6>=65&&nfPlaque6<=90&&nfPlaque7>=65&&nfPlaque7<=90&&Len(plaque.Text)=7;RGBA(0;0;0;0);Color.Red)
SubCommentID=QQres3USsd46oFC, CommentID=Mhd8KDY1ArSpayt, PostID=erpIzqrXOw59kfW
-
Geoffroy
Membre29 septembre 2023 à 14h39 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculationJ’ai testé une solution avec des formules nommées (mon TextInput s’appelle plaque)
nfPlaque1=With({inputString:Mid(plaque.Text;1;1)};LookUp(ForAll(Sequence(255);{Num:Value;Character:Char(Value)});Character=inputString).Num);;nnfPlaque2=With({inputString:Mid(plaque.Text;2;1)};LookUp(ForAll(Sequence(255);{Num:Value;Character:Char(Value)});Character=inputString).Num);;
Idem pour nfPlaque3 jusqu’à nfPlaque7
Ensuite, dans le Fill du TextInput, je mets ça
If(((nfPlaque1>=97&&nfPlaque1<=122)||(nfPlaque1>=65&&nfPlaque1<=90))&&((nfPlaque2>=97&&nfPlaque2<=122)||(nfPlaque2>=65&&nfPlaque2<=90))&&((nfPlaque3>=48&&nfPlaque3<=57))&&((nfPlaque4>=48&&nfPlaque4<=57))&&((nfPlaque5>=48&&nfPlaque5<=57))&&((nfPlaque6>=97&&nfPlaque6<=122)||(nfPlaque6>=65&&nfPlaque6<=90))&&((nfPlaque7>=97&&nfPlaque7<=122)||(nfPlaque7>=65&&nfPlaque7<=90))&&Len(plaque.Text)=7;RGBA(0;0;0;0);Color.Red)
SubCommentID=Cjh269503hSZSmC, CommentID=Mhd8KDY1ArSpayt, PostID=erpIzqrXOw59kfW
-
-
Geoffroy
Membre29 septembre 2023 à 13h08 en réponse à: Contrôle de champs "texte" pour plaque d'immatriculationBonjour Jean
Je pense que le plus simple serait de découper le champ de saisie en 3 parties pour pouvoir vérifier si c’est du texte ou des chiffres. Ensuite, tu concatènes les 3 champs avec les traits d’union pour faire le résultat final.
CommentID=do6ldy1BR2aiwow, PostID=erpIzqrXOw59kfW
-
Vu que l’expression LookUp(Sort(BaseTBF;’Créé le’;SortOrder.Descending);NTBF=ComboBox_NTBF.Selected.Nom;Etat_TBF)=”cip” renvoie vrai ou faux, tu peux l’affecter directement à ta variable var_parf_impo
Set(var_parf_impo; !LookUp(Sort(BaseTBF;'Créé le'; SortOrder.Descending); NTBF=ComboBox_NTBF.Selected.Nom;Etat_TBF)="cip")
CommentID=GZgZztAjYMz8JQD, PostID=JBDPUn2SRf8zDHi
-
Bonjour Fred Evellin
Qu’est-ce qu’il y a dans ton combobox ?
CommentID=o8s5bWPn0d2BVGn, PostID=JBDPUn2SRf8zDHi
-
Merci R3dKap
Je pense que j’aurai l’occasion d’appliquer ta méthode (géniale) sur un projet mais ici, le but au départ était simplement de gagner une ligne pour que le pdf tienne sur une page.
J’ai finalement trouvé une astuce plus simple : mettre font-size à 94% au lieu de 95% 😉
CommentID=wrg5j7jJUb5rhFb, PostID=nv9RHzEZntjmOkm
-
On peut même simplifier en
Set(var_parf_impo;!IsBlank(LookUp(Sort(BaseTBF;'Créé le';SortOrder.Descending); NTBF = ComboBox_NTBF.Selected.Nom && Etat_TBF = "cip"))
Sinon, je me demandais à quoi servait le Sort ?
CommentID=mSCcHg4ugyIrC8F, PostID=JBDPUn2SRf8zDHi
-
Bonjour Matthias
Tout d’abord, le CountRows peut amener certains problèmes (cf le post ci-joint).
Pour la condition supplémentaire, faut-il que la période soit dynamique ou fixe (de mars à mars) ? La liste SP comprend-elle les dates d’interventions prévues ou seulement celles réalisées ?
CommentID=D2RjyQVWqivJtfA, PostID=Dsmrs9uGq8StUFF
-
C’est bizarre qu’on en voit plus dans l’appli que dans la liste.
Quelle est la formule de filtre dans l’appli ?
SubCommentID=FK9oZRYpidisLIJ, CommentID=5wdzX8DS2z498Uw, PostID=Fow5AqagZJdfzCV