(Résolu) Extraire en format date des valeurs d'une chaîne alphanumérique

neeser

XLDnaute Nouveau
Bonjour,
Je galère sur celle là depuis un bon bout, et je n'arrive qu'à trouver des résultats proches de ce que je tente de faire. Je me tourne donc vers vous, qui m'impressionnez toujours de la somme de vos connaissances dans Excel et VBA. J'aimerais donc, à partir d'une chaine de caractères alphanumérique (voir exemple plus bas), séparer une date de début et date de fin, dans 2 colonnes séparées. Je ne sais pas si je peux le faire avec des formules ou je suis mieux de faire une macro.
Exemple de cellule de départ:
30881 - Raymond St-Eustache 6-9 sept
30884 -Jean tremblay 16-19 dec
30884 -Jean tremblay 29 oct au 2 nov
30884 -Jean tremblay 29 oct - 2 nov
C'est toujours pour des petites plages de date (max 7 jours)
Pour l'année, c'est toujours l'année courante,
Pour le mois ça peut toujours être en référence au mois courant (quelque chose du genre; si la colonne 2 est plus petite que la colonne 1, on fait le mois courant + 1, en cas que ça tombe à cheval sur 2 mois)

Merci à l'avance de m'aiguiller pour une solution, jusqu'à maintenant, le mieux que j'arrive à faire, c'est extraire dans 2 colonnes séparées le chiffre du jours de début et le chiffre du jours de fin, sauf quand il s'agit d'un changement de mois (ma formule fait référence au ''-'' à partir de la droit)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour neeser,

Un essai par fonction personnalisée.

La fonction : Function DebFin(x, xIndex As Long)
  • x est le texte à analyser (ou une référence de cellule contenant le texte à analyser)
  • si xIndex est égal à 1, on renvoie la date de début
  • si xIndex est égal à 2, on renvoie la date de fin
En début de code il y a trois constantes. Ces constantes permettent de définir les abréviations possibles des mois, le numéro de mois correspondant aux abréviations et les séparateurs entre les dates de début et de fin. Le code est dans module1.
 

Pièces jointes

  • neeser- extraction dates- v1.xlsm
    19.9 KB · Affichages: 43

neeser

XLDnaute Nouveau
Bonjour,
Je suis abasourdi, plein de fonction que je ne connaissais pas, en plus avec cette méthode c'est merveilleux on peut ajouter des abrev dans le code au fur et à mesure qu'on les rencontre. Merci beaucoup pour les annotations, ça m'aide énormément à me retrouver pour tenter de comprendre la procédure. J'avoue que je ne comprends pas encore parfaitement toutes les sections, mais à force de jouer avec, je devrais assimiler.
Merci énormément encore mapomme!
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin