Extraction de la date dans une chaine de caractère
#1
Débutant XLPages

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

 

Pièce jointe:
xlsx Extraction Date.xlsx   [ Taille: 9.36 Ko - Téléchargements: 646 ]
Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#2
Accro XLPages

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

 

 


Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#3
Débutant XLPages

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 !

Pièce jointe:
zip module.zip   [ Taille: 42.23 Ko - Téléchargements: 488 ]
Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#4
Accro XLPages

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

Pièce jointe:
xlsm Extraction Date_Mod.xlsm   [ Taille: 19.89 Ko - Téléchargements: 605 ]

Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#5
Débutant XLPages

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

Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#6
Débutant XLPages

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

Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#7
Accro XLPages

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


Hors Ligne
Rapport   Haut 

Re: Extraction de la date dans une chaine de caractère
#8
Débutant XLPages

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

Pièce jointe:
xlsm Classeur.xlsm   [ Taille: 40.38 Ko - Téléchargements: 833 ]
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes