Re : Expressions régulières - Patterns pour RegExp
Re re
En fait, cela dépend du résultat auquel tu veux arriver : là pour l'instant, tu travailles sur un type de format décliné en "dddd d mmm yyyy" et "d mmmm yyyy".
Si ton but est de ne rester que sur ce type en incluant le cas particulier de février afin d'obtenir une date valide, c'est une chose.
Si le but est d'élargir à d'autres types (jj/mm/aaaa, jj/mm/aa, jj mm aa,...), ce que ne te permet pas ton code de "formatage" actuel, il faudra voir comment l'imbriquer si c'est jouable.
Dans ce cas, il te faut reprendre ta partie formatage (ou tester directement sur une plage de cellules avec des chaînes de caractères "formatées" différemment et juste pour tester, tu peux simplement l'inclure tel quel dans le motif existant pour voir si cela fonctionne ou pas sur d'autres formats :
Si c'est OK, on pourra alors chercher à l'abstraire.
A+
Re re
En fait, cela dépend du résultat auquel tu veux arriver : là pour l'instant, tu travailles sur un type de format décliné en "dddd d mmm yyyy" et "d mmmm yyyy".
Si ton but est de ne rester que sur ce type en incluant le cas particulier de février afin d'obtenir une date valide, c'est une chose.
Si le but est d'élargir à d'autres types (jj/mm/aaaa, jj/mm/aa, jj mm aa,...), ce que ne te permet pas ton code de "formatage" actuel, il faudra voir comment l'imbriquer si c'est jouable.
Dans ce cas, il te faut reprendre ta partie formatage (ou tester directement sur une plage de cellules avec des chaînes de caractères "formatées" différemment et juste pour tester, tu peux simplement l'inclure tel quel dans le motif existant pour voir si cela fonctionne ou pas sur d'autres formats :
Code:
.Pattern = "(0?[1-9]|[12]\d|3[01])[ /](" & MOIS & ")[ /](\d{2,4})|((0[1-9]|[12]\d|3[01])/(0[13578]|1[02])|(0[1-9]|[12]\d|30)/(0[469]|11))/((16|17|18|19|20|21)\d\d)|(0[1-9]|[1]\d|[2][0-8])/02/((16|17|18|19|20|21)\d\d)|29/02/((17|18|19|21[0])[48]|(17|18|19|20|21)([13579][26]|[2468][048])|(160|200)[048])"
Si c'est OK, on pourra alors chercher à l'abstraire.
A+