extraire un bout de texte et le transformer en date
5 réponses
mireille
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 :
CAHR COMMITTEE / COMITE CAHR
MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
ou 2 :
CODE AUFI COMMITTEE / COMITE CODE AUFI
THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
ou bien 3 :
JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui
m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/"))
txt = Mid(Cells(i, 1), 1, deb - 2)
deb = InStrRev(txt, ("/"))
heure = InStrRev(txt, (","))
txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
deb = InStr(LTrim(txt), (" "))
txt = LTrim(Mid(LTrim(txt), deb))
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
Mois = Application.Match(LCase(Tabl(1)), An, 0)
datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
extraire la date en anglais.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacquouille
Bonsoir Ces dates sont dans une seule cellule, ou bien plusieurs? Si c'est possible, regarder en changeant le format de la cellule et vous obtiendrez un nombre du style 38582 ou 38582,25 Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit en Gaulois ou en Grand Breton.
-- Bien amicalmement, "Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" a écrit dans le message de news:
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
Bonsoir
Ces dates sont dans une seule cellule, ou bien plusieurs?
Si c'est possible, regarder en changeant le format de la cellule et vous
obtiendrez un nombre du style 38582 ou 38582,25
Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit
en Gaulois ou en Grand Breton.
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" <mireille@discussions.microsoft.com> a écrit dans le message de
news: 442CF0F5-9139-475E-8574-0AE6441824CE@microsoft.com...
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 :
CAHR COMMITTEE / COMITE CAHR
MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
ou 2 :
CODE AUFI COMMITTEE / COMITE CODE AUFI
THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
ou bien 3 :
JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui
m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/"))
txt = Mid(Cells(i, 1), 1, deb - 2)
deb = InStrRev(txt, ("/"))
heure = InStrRev(txt, (","))
txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
deb = InStr(LTrim(txt), (" "))
txt = LTrim(Mid(LTrim(txt), deb))
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
Mois = Application.Match(LCase(Tabl(1)), An, 0)
datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
extraire la date en anglais.
Bonsoir Ces dates sont dans une seule cellule, ou bien plusieurs? Si c'est possible, regarder en changeant le format de la cellule et vous obtiendrez un nombre du style 38582 ou 38582,25 Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit en Gaulois ou en Grand Breton.
-- Bien amicalmement, "Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" a écrit dans le message de news:
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
MichDenis
tu peux essayer ceci :
Dans un module standard, tu copies la fonction suivante : '--------------------------------------------- Function Modifier_date(Rg As Range) Dim Arr(), X As String, T As String, M As String
End Function '---------------------------------------------
Et dans une cellule, tu inscris ceci : =modifier_date(A1) en supposant que la date que tu veux modifier est en A1 . tu dois utiliser ce format de cellules pour les cellules contenant la fonction : jjjj j mmmm aaaa"," h"h"mm
"mireille" a écrit dans le message de groupe de discussion : Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
tu peux essayer ceci :
Dans un module standard, tu copies la fonction suivante :
'---------------------------------------------
Function Modifier_date(Rg As Range)
Dim Arr(), X As String, T As String, M As String
End Function
'---------------------------------------------
Et dans une cellule, tu inscris ceci :
=modifier_date(A1) en supposant que la date que tu veux
modifier est en A1 . tu dois utiliser ce format de cellules
pour les cellules contenant la fonction : jjjj j mmmm aaaa"," h"h"mm
"mireille" <mireille@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 442CF0F5-9139-475E-8574-0AE6441824CE@microsoft.com...
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 :
CAHR COMMITTEE / COMITE CAHR
MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
ou 2 :
CODE AUFI COMMITTEE / COMITE CODE AUFI
THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
ou bien 3 :
JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui
m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/"))
txt = Mid(Cells(i, 1), 1, deb - 2)
deb = InStrRev(txt, ("/"))
heure = InStrRev(txt, (","))
txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
deb = InStr(LTrim(txt), (" "))
txt = LTrim(Mid(LTrim(txt), deb))
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
Mois = Application.Match(LCase(Tabl(1)), An, 0)
datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
extraire la date en anglais.
Dans un module standard, tu copies la fonction suivante : '--------------------------------------------- Function Modifier_date(Rg As Range) Dim Arr(), X As String, T As String, M As String
End Function '---------------------------------------------
Et dans une cellule, tu inscris ceci : =modifier_date(A1) en supposant que la date que tu veux modifier est en A1 . tu dois utiliser ce format de cellules pour les cellules contenant la fonction : jjjj j mmmm aaaa"," h"h"mm
"mireille" a écrit dans le message de groupe de discussion : Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
Daniel.C
Bonsoir. Je reposte donc ma réponse :
Bonjour. La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test() Dim deb, heure, txt As String, Tabl, An An = Array("january", "february", "march", "april", "may", _ "june", "july", "august", "september", _ "october", "november", "december") deb = InStrRev(ActiveCell, ("/")) heure = InStrRev(ActiveCell, (",")) txt = Mid(Selection, deb + 2, heure - deb - 2) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") mois = Application.Match(LCase(Tabl(1)), An, 0) [A1] = DateSerial(Tabl(2), mois, Tabl(0)) [A1].NumberFormat = "d-mmm" End Sub
Daniel
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
Bonsoir.
Je reposte donc ma réponse :
Bonjour.
La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test()
Dim deb, heure, txt As String, Tabl, An
An = Array("january", "february", "march", "april", "may", _
"june", "july", "august", "september", _
"october", "november", "december")
deb = InStrRev(ActiveCell, ("/"))
heure = InStrRev(ActiveCell, (","))
txt = Mid(Selection, deb + 2, heure - deb - 2)
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
mois = Application.Match(LCase(Tabl(1)), An, 0)
[A1] = DateSerial(Tabl(2), mois, Tabl(0))
[A1].NumberFormat = "d-mmm"
End Sub
Daniel
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 :
CAHR COMMITTEE / COMITE CAHR
MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
ou 2 :
CODE AUFI COMMITTEE / COMITE CODE AUFI
THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
ou bien 3 :
JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui
m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/"))
txt = Mid(Cells(i, 1), 1, deb - 2)
deb = InStrRev(txt, ("/"))
heure = InStrRev(txt, (","))
txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
deb = InStr(LTrim(txt), (" "))
txt = LTrim(Mid(LTrim(txt), deb))
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
Mois = Application.Match(LCase(Tabl(1)), An, 0)
datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
extraire la date en anglais.
Bonjour. La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test() Dim deb, heure, txt As String, Tabl, An An = Array("january", "february", "march", "april", "may", _ "june", "july", "august", "september", _ "october", "november", "december") deb = InStrRev(ActiveCell, ("/")) heure = InStrRev(ActiveCell, (",")) txt = Mid(Selection, deb + 2, heure - deb - 2) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") mois = Application.Match(LCase(Tabl(1)), An, 0) [A1] = DateSerial(Tabl(2), mois, Tabl(0)) [A1].NumberFormat = "d-mmm" End Sub
Daniel
Bonsoir,
J'ai déjà posé la question, mais je ne peux plus accéder au message.
Donc, j'ai une date sous la forme 1 : CAHR COMMITTEE / COMITE CAHR MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 ou 2 : CODE AUFI COMMITTEE / COMITE CODE AUFI THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 ou bien 3 : JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
Je dois extraire la date en anglais et la transfomer en format date.
J'utilise le programme suivant (très largement inspiré de la personne qui m'a aidé la dernière fois !)
deb = InStrRev(Cells(i, 1), ("/")) txt = Mid(Cells(i, 1), 1, deb - 2) deb = InStrRev(txt, ("/")) heure = InStrRev(txt, (",")) txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) deb = InStr(LTrim(txt), (" ")) txt = LTrim(Mid(LTrim(txt), deb)) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") Mois = Application.Match(LCase(Tabl(1)), An, 0) datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse extraire la date en anglais.
Merci beaucoup pour votre aide, Mireille
mireille
Bonjour, Tout est mélangé dans une seule cellule avec un retour chariot. J'ai : <meeting> / <réunion> (retour chariot) <date and time> / <date et heure>
Et le pb, c'est que <meeting> et <réunion> sont écrits n'importe comment ...
J'ai essayé de changer le format de la cellule. Ca ne marche pas, le teste reste en texte ...
"Jacquouille" a écrit :
Bonsoir Ces dates sont dans une seule cellule, ou bien plusieurs? Si c'est possible, regarder en changeant le format de la cellule et vous obtiendrez un nombre du style 38582 ou 38582,25 Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit en Gaulois ou en Grand Breton.
-- Bien amicalmement, "Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" a écrit dans le message de news: > Bonsoir, > > J'ai déjà posé la question, mais je ne peux plus accéder au message. > > Donc, j'ai une date sous la forme 1 : > CAHR COMMITTEE / COMITE CAHR > MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 > ou 2 : > CODE AUFI COMMITTEE / COMITE CODE AUFI > THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 > ou bien 3 : > JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE > THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00 > > Je dois extraire la date en anglais et la transfomer en format date. > > J'utilise le programme suivant (très largement inspiré de la personne qui > m'a aidé la dernière fois !) > > deb = InStrRev(Cells(i, 1), ("/")) > txt = Mid(Cells(i, 1), 1, deb - 2) > deb = InStrRev(txt, ("/")) > heure = InStrRev(txt, (",")) > txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) > deb = InStr(LTrim(txt), (" ")) > txt = LTrim(Mid(LTrim(txt), deb)) > txt = Right(txt, Len(txt) - InStr(txt, " ")) > Tabl = Split(txt, " ") > Mois = Application.Match(LCase(Tabl(1)), An, 0) > datemeet = DateSerial(Tabl(2), Mois, Tabl(0)) > > ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de > nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter > plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse > extraire la date en anglais. > > Merci beaucoup pour votre aide, > Mireille
Bonjour,
Tout est mélangé dans une seule cellule avec un retour chariot. J'ai :
<meeting> / <réunion> (retour chariot)
<date and time> / <date et heure>
Et le pb, c'est que <meeting> et <réunion> sont écrits n'importe comment ...
J'ai essayé de changer le format de la cellule. Ca ne marche pas, le teste
reste en texte ...
"Jacquouille" a écrit :
Bonsoir
Ces dates sont dans une seule cellule, ou bien plusieurs?
Si c'est possible, regarder en changeant le format de la cellule et vous
obtiendrez un nombre du style 38582 ou 38582,25
Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit
en Gaulois ou en Grand Breton.
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" <mireille@discussions.microsoft.com> a écrit dans le message de
news: 442CF0F5-9139-475E-8574-0AE6441824CE@microsoft.com...
> Bonsoir,
>
> J'ai déjà posé la question, mais je ne peux plus accéder au message.
>
> Donc, j'ai une date sous la forme 1 :
> CAHR COMMITTEE / COMITE CAHR
> MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
> ou 2 :
> CODE AUFI COMMITTEE / COMITE CODE AUFI
> THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
> ou bien 3 :
> JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
> THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
>
> Je dois extraire la date en anglais et la transfomer en format date.
>
> J'utilise le programme suivant (très largement inspiré de la personne qui
> m'a aidé la dernière fois !)
>
> deb = InStrRev(Cells(i, 1), ("/"))
> txt = Mid(Cells(i, 1), 1, deb - 2)
> deb = InStrRev(txt, ("/"))
> heure = InStrRev(txt, (","))
> txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
> deb = InStr(LTrim(txt), (" "))
> txt = LTrim(Mid(LTrim(txt), deb))
> txt = Right(txt, Len(txt) - InStr(txt, " "))
> Tabl = Split(txt, " ")
> Mois = Application.Match(LCase(Tabl(1)), An, 0)
> datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
>
> ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
> nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
> plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
> extraire la date en anglais.
>
> Merci beaucoup pour votre aide,
> Mireille
Bonjour, Tout est mélangé dans une seule cellule avec un retour chariot. J'ai : <meeting> / <réunion> (retour chariot) <date and time> / <date et heure>
Et le pb, c'est que <meeting> et <réunion> sont écrits n'importe comment ...
J'ai essayé de changer le format de la cellule. Ca ne marche pas, le teste reste en texte ...
"Jacquouille" a écrit :
Bonsoir Ces dates sont dans une seule cellule, ou bien plusieurs? Si c'est possible, regarder en changeant le format de la cellule et vous obtiendrez un nombre du style 38582 ou 38582,25 Que vous pourriez reprendre, recopier et retransformer en date, qu'elle soit en Gaulois ou en Grand Breton.
-- Bien amicalmement, "Le vin est au repas ce que le parfum est à la femme."
Jacquouille.
"mireille" a écrit dans le message de news: > Bonsoir, > > J'ai déjà posé la question, mais je ne peux plus accéder au message. > > Donc, j'ai une date sous la forme 1 : > CAHR COMMITTEE / COMITE CAHR > MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 > ou 2 : > CODE AUFI COMMITTEE / COMITE CODE AUFI > THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 > ou bien 3 : > JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE > THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00 > > Je dois extraire la date en anglais et la transfomer en format date. > > J'utilise le programme suivant (très largement inspiré de la personne qui > m'a aidé la dernière fois !) > > deb = InStrRev(Cells(i, 1), ("/")) > txt = Mid(Cells(i, 1), 1, deb - 2) > deb = InStrRev(txt, ("/")) > heure = InStrRev(txt, (",")) > txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) > deb = InStr(LTrim(txt), (" ")) > txt = LTrim(Mid(LTrim(txt), deb)) > txt = Right(txt, Len(txt) - InStr(txt, " ")) > Tabl = Split(txt, " ") > Mois = Application.Match(LCase(Tabl(1)), An, 0) > datemeet = DateSerial(Tabl(2), Mois, Tabl(0)) > > ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de > nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter > plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse > extraire la date en anglais. > > Merci beaucoup pour votre aide, > Mireille
mireille
J'ai utilisé IsNumeric(Split(txt, " ")(k)) = True en faisant une boucle sur k qui me permet de trouver le 1er chiffre (qui est toujours le jour). A partir de là, j'extrais la date que je transforme en forma date.
Merci à vous trois !
"Daniel.C" a écrit :
Bonsoir. Je reposte donc ma réponse :
Bonjour. La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test() Dim deb, heure, txt As String, Tabl, An An = Array("january", "february", "march", "april", "may", _ "june", "july", "august", "september", _ "october", "november", "december") deb = InStrRev(ActiveCell, ("/")) heure = InStrRev(ActiveCell, (",")) txt = Mid(Selection, deb + 2, heure - deb - 2) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") mois = Application.Match(LCase(Tabl(1)), An, 0) [A1] = DateSerial(Tabl(2), mois, Tabl(0)) [A1].NumberFormat = "d-mmm" End Sub
Daniel
> Bonsoir, > > J'ai déjà posé la question, mais je ne peux plus accéder au message. > > Donc, j'ai une date sous la forme 1 : > CAHR COMMITTEE / COMITE CAHR > MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 > ou 2 : > CODE AUFI COMMITTEE / COMITE CODE AUFI > THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 > ou bien 3 : > JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE > THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00 > > Je dois extraire la date en anglais et la transfomer en format date. > > J'utilise le programme suivant (très largement inspiré de la personne qui > m'a aidé la dernière fois !) > > deb = InStrRev(Cells(i, 1), ("/")) > txt = Mid(Cells(i, 1), 1, deb - 2) > deb = InStrRev(txt, ("/")) > heure = InStrRev(txt, (",")) > txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) > deb = InStr(LTrim(txt), (" ")) > txt = LTrim(Mid(LTrim(txt), deb)) > txt = Right(txt, Len(txt) - InStr(txt, " ")) > Tabl = Split(txt, " ") > Mois = Application.Match(LCase(Tabl(1)), An, 0) > datemeet = DateSerial(Tabl(2), Mois, Tabl(0)) > > ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de > nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter > plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse > extraire la date en anglais. > > Merci beaucoup pour votre aide, > Mireille
J'ai utilisé IsNumeric(Split(txt, " ")(k)) = True en faisant une boucle sur k
qui me permet de trouver le 1er chiffre (qui est toujours le jour). A partir
de là, j'extrais la date que je transforme en forma date.
Merci à vous trois !
"Daniel.C" a écrit :
Bonsoir.
Je reposte donc ma réponse :
Bonjour.
La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test()
Dim deb, heure, txt As String, Tabl, An
An = Array("january", "february", "march", "april", "may", _
"june", "july", "august", "september", _
"october", "november", "december")
deb = InStrRev(ActiveCell, ("/"))
heure = InStrRev(ActiveCell, (","))
txt = Mid(Selection, deb + 2, heure - deb - 2)
txt = Right(txt, Len(txt) - InStr(txt, " "))
Tabl = Split(txt, " ")
mois = Application.Match(LCase(Tabl(1)), An, 0)
[A1] = DateSerial(Tabl(2), mois, Tabl(0))
[A1].NumberFormat = "d-mmm"
End Sub
Daniel
> Bonsoir,
>
> J'ai déjà posé la question, mais je ne peux plus accéder au message.
>
> Donc, j'ai une date sous la forme 1 :
> CAHR COMMITTEE / COMITE CAHR
> MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30
> ou 2 :
> CODE AUFI COMMITTEE / COMITE CODE AUFI
> THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30
> ou bien 3 :
> JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE
> THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00
>
> Je dois extraire la date en anglais et la transfomer en format date.
>
> J'utilise le programme suivant (très largement inspiré de la personne qui
> m'a aidé la dernière fois !)
>
> deb = InStrRev(Cells(i, 1), ("/"))
> txt = Mid(Cells(i, 1), 1, deb - 2)
> deb = InStrRev(txt, ("/"))
> heure = InStrRev(txt, (","))
> txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2))
> deb = InStr(LTrim(txt), (" "))
> txt = LTrim(Mid(LTrim(txt), deb))
> txt = Right(txt, Len(txt) - InStr(txt, " "))
> Tabl = Split(txt, " ")
> Mois = Application.Match(LCase(Tabl(1)), An, 0)
> datemeet = DateSerial(Tabl(2), Mois, Tabl(0))
>
> ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de
> nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter
> plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse
> extraire la date en anglais.
>
> Merci beaucoup pour votre aide,
> Mireille
J'ai utilisé IsNumeric(Split(txt, " ")(k)) = True en faisant une boucle sur k qui me permet de trouver le 1er chiffre (qui est toujours le jour). A partir de là, j'extrais la date que je transforme en forma date.
Merci à vous trois !
"Daniel.C" a écrit :
Bonsoir. Je reposte donc ma réponse :
Bonjour. La macro suivante lit la cellule active et écrit le résultat en A1 :
Sub test() Dim deb, heure, txt As String, Tabl, An An = Array("january", "february", "march", "april", "may", _ "june", "july", "august", "september", _ "october", "november", "december") deb = InStrRev(ActiveCell, ("/")) heure = InStrRev(ActiveCell, (",")) txt = Mid(Selection, deb + 2, heure - deb - 2) txt = Right(txt, Len(txt) - InStr(txt, " ")) Tabl = Split(txt, " ") mois = Application.Match(LCase(Tabl(1)), An, 0) [A1] = DateSerial(Tabl(2), mois, Tabl(0)) [A1].NumberFormat = "d-mmm" End Sub
Daniel
> Bonsoir, > > J'ai déjà posé la question, mais je ne peux plus accéder au message. > > Donc, j'ai une date sous la forme 1 : > CAHR COMMITTEE / COMITE CAHR > MONDAY 29 JUNE 2009, 9:30 am / LUNDI 29 JUIN 2009, 9h30 > ou 2 : > CODE AUFI COMMITTEE / COMITE CODE AUFI > THURSDAY 25 JUNE 2009, 9:30 am / JEUDI 25 JUIN 2009, 9h30 > ou bien 3 : > JOINT AMBD - ETHICS COMMITTEE / COMITE CONJOINTE AMBD - D'ETHIQUE > THURSDAY 23 APRIL 2009, 3:00 pm / JEUDI 23 AVRIL 2009, 3h00 > > Je dois extraire la date en anglais et la transfomer en format date. > > J'utilise le programme suivant (très largement inspiré de la personne qui > m'a aidé la dernière fois !) > > deb = InStrRev(Cells(i, 1), ("/")) > txt = Mid(Cells(i, 1), 1, deb - 2) > deb = InStrRev(txt, ("/")) > heure = InStrRev(txt, (",")) > txt = LTrim(Mid(LTrim(txt), deb + 2, heure - deb - 2)) > deb = InStr(LTrim(txt), (" ")) > txt = LTrim(Mid(LTrim(txt), deb)) > txt = Right(txt, Len(txt) - InStr(txt, " ")) > Tabl = Split(txt, " ") > Mois = Application.Match(LCase(Tabl(1)), An, 0) > datemeet = DateSerial(Tabl(2), Mois, Tabl(0)) > > ca marche avec la forme1. Mais comme l'utilisateur ne cesse d'inventer de > nouveaux noms avec plein d'espaces, et qu'un jour il finira par rajouter > plein de caractère du style ({@ ou autre, je voudrai une macro qui puisse > extraire la date en anglais. > > Merci beaucoup pour votre aide, > Mireille