Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 24/07/2015
De FRANCE
Messages:
5
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 24-07-2015 14h02
Bonjour Débutant en Excel, je but sur un problème, en effet je dois extraire une date qui est comprise dans une chaine caractères d'une cellule excel vers une cellule vide. là ou se complique ma problématique c'est que je suis confronté à 3 cas bien précis, en effet dans l'ensemble j'arrive pour un type de cellule à avoir le résultat que je souhaite par utilisation des fonctions : STX,DROITE,GAUCHE. mais dans l'ensemble. Pourriez vous m'aiguiller? Voici mon problème : J'aimerai connaitre la fonction ou suite de fonctions qui me permettrai d'avoir l'extraction de la donnée date et heure des cellules qui composent la colonne A vers la colonne B trouvez en pièce jointe le fichier qui montre les données que j'aimerai trouver Merci par avance
|
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 24-07-2015 20h41
Option Explicit Const ListeMoisAnglais As String = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" Public Function ExtractionDate(Cellule As Range) Dim ExpReg As Object ' VBScript_RegExp_55.RegExp Dim cMatchs As Object ' VBScript_RegExp_55.MatchCollection Dim sTemp As String Dim sRes As String Dim sTempMois As String Dim IndexMois As Long sRes = vbNullString sTemp = Cellule.Text ' Set ExpReg = New VBScript_RegExp_55.RegExp Set ExpReg = CreateObject("vbscript.regexp") With ExpReg .MultiLine = False .IgnoreCase = True .Pattern = "[0-9]{2}-[aA-zZ]{3}-[0-9]{4} [0-9:]{5}" .Global = True If .Test(sTemp) Then Set cMatchs = .Execute(sTemp) sRes = cMatchs(cMatchs.Count - 1).Value sTempMois = Mid(sRes, 4, 3) IndexMois = ((InStr(ListeMoisAnglais, sTempMois) - 1) / 3) + 1 sRes = Replace(sRes, sTempMois, Format(CStr(IndexMois), "00")) ExtractionDate = sRes End If End With End Function Bonjour rigou et bienvenue dans ce forum,
Saisir le petit bout de code ci-haut et le copier dans un module standard. À noter que le classeur portant ce module devra être porté vers l'extension .xlsm lors de la sauvegarde.
Dans la feuille en exemple inscrire la formule =ExtractionDate(A1) en B1 et la cellule portera la chaîne désirée. Plus d'explications à venir.
Cordialement,
Guy
|
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 24/07/2015
De FRANCE
Messages:
5
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 25-07-2015 17h03
Bonjour Guy
Avant toute chose merci pour ta réponse. j'ai copié le code dans un module du fichier voir pièce jointes module et saisie la fonction dans la cellule B voir pièce jointe module2.Puis je l'ai sauvegardé en xlsm. Là je pense que j'ai omis un détail car cela ne fonctionne pas... Merci encore pour ton soutien ! |
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 25-07-2015 17h57
Bonjour rigou,
Petite erreur de ma part, j'aurais dû indiquer que la cellule B1 doit porter l'expression =ExtractionDate(A1) et non pas =ExtractionDate(A1) en B1.
Ceci dit, tu trouveras en pièce jointe un petit classeur portant le code commenté et corrigé. En particulier le format d'affichage est conforme à ta demande contrairement au code livré hier.
N'hésite pas à poser d'autres questions.
Cordialement,
Guy |
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 24/07/2015
De FRANCE
Messages:
5
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 26-07-2015 19h44
Merci Guy !
C'est exactement ce je voulais !! Les explications données me donnent plus d'informations sur le code, certes je suis loin de pouvoir tout comprendre mais je vais analyser tout ca. Là je vais regarder comment faire une extraction à 10 jours ( Car j'ai besoin d'avoir la liste des lignes qui est a 10 jours au jours de l'extraction de données associées au format date vu ci-dessus). Encore merci pour ton soutien....je pense sans doute te solliciter à nouveaux, mais avant je dois essayer de comprendre , essayer par moi même si je veux progresser.
Merci Rigou |
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 24/07/2015
De FRANCE
Messages:
5
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 27-07-2015 09h44
Bonjour Guy
Je continue dans ma recherche et je suis confronter à un PB , en effet si j'applique la fonction "Filtre" il m'est impossible de filtrer la colonne date sur dix jour, en effet selon l'utilisation de la date de la première ligne qui n'est jamais la même selon l'extraction que je fais. Si je filtre avec un mode avancé, je dois saisir moi même la date de la première ligne et ensuite la seconde qui corresponde la Date +10, n'y a t il pas une manière d'automatiser la chose sans saisie ? Par avance merci Rigou |
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 09/01/2008
De Montréal, Québec
Messages:
463
Système d'exploitation: PC Version Excel utilisée: 97 à 2016 |
Posté le : 27-07-2015 12h12
Bonjour rigou,
Si tu joignais un classeur exemple pour exposer ton problème ce serait plus simple.
Cordialement,
Guy |
|
|
Re: Extraction de la date dans une chaine de caractère | ||
---|---|---|
Inscription: 24/07/2015
De FRANCE
Messages:
5
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 27-07-2015 12h33
Bonjour Guy, Voilà le fichier en piece jointe. Le but dans ce classeur c'est que j'ai besoin d'avoir l'ensemble des données (Colonnes A,B,C, D) qui sont comprises entre la plus petite date de la colonne D et une vision des autres items qui composent ce classeur à + 10 jours Exp / si la plus petite date est 26/07/2015 08:00:00 je veux avoir seulement toute les dates comprises entre le 26/07/2015 et le 04:08:2015 23:59:00. Cdlt, Rigou |
|
|