Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro VBA et date

4 réponses
Avatar
Serge Nazarian
Bonjour,

J'ai un problème avec une macro

La cellule active (de contenu sans importance) est en colonne 1 d'une
certaine ligne. Dans la cellule en deuxième colonne de cette même ligne j'ai
:
CARTE 11/02/2010 MAGASIN1
Je souhaite récupérer 11/02/2010 dans la cellule active (en première colonne
de la ligne).
Je fais donc :
ActiveCell.Value = Mid(ActiveCell.Offset(0, 1), 7, 10)
Malheureusement je récupère :
02/11/2010

Je soupçonne un problème de format de date français-anglais, mais ne sait
comment le résoudre.

Bien sûr si le contenu de la cellule active est :
CARTE 23/02/2010 MAGASIN2
je récupère bien
23/02/2010

Merci pour toute aide.
Cordialement,
--
Serge Nazarian

4 réponses

Avatar
JB
Bonjour,

ActiveCell.Value = CDate(Mid(ActiveCell.Offset(0, 1), 7, 10))

JB
http://boisgontierjacques.free.fr/

On 3 mar, 14:59, "Serge Nazarian" wrote:
Bonjour,

J'ai un problème avec une macro

La cellule active (de contenu sans importance) est en colonne 1 d'une
certaine ligne. Dans la cellule en deuxième colonne de cette même lig ne j'ai
:
CARTE 11/02/2010 MAGASIN1
Je souhaite récupérer 11/02/2010 dans la cellule active (en premièr e colonne
de la ligne).
Je fais donc :
ActiveCell.Value = Mid(ActiveCell.Offset(0, 1), 7, 10)
Malheureusement je récupère :
02/11/2010

Je soupçonne un problème de format de date  français-anglais, mai s ne sait
comment le résoudre.

Bien sûr si le contenu de la cellule active est :
CARTE 23/02/2010 MAGASIN2
je récupère bien
23/02/2010

Merci pour toute aide.
Cordialement,
--
Serge Nazarian


Avatar
michdenis
Bonjour,

Essaie comme ceci :
La fonction split() requiert Excel 2000 ou plus récent.

Dim MaDate As String, X As Variant

With ActiveCell
MaDate = Mid(.Offset(0, 1), 7, 10)
X = Split(MaDate, "/")
.Value = CDate(DateSerial(X(2), X(1), X(0)))
End With





"Serge Nazarian" a écrit dans le message de groupe de discussion :
4b8e6b8b$0$23907$
Bonjour,

J'ai un problème avec une macro

La cellule active (de contenu sans importance) est en colonne 1 d'une
certaine ligne. Dans la cellule en deuxième colonne de cette même ligne j'ai
:
CARTE 11/02/2010 MAGASIN1
Je souhaite récupérer 11/02/2010 dans la cellule active (en première colonne
de la ligne).
Je fais donc :
ActiveCell.Value = Mid(ActiveCell.Offset(0, 1), 7, 10)
Malheureusement je récupère :
02/11/2010

Je soupçonne un problème de format de date français-anglais, mais ne sait
comment le résoudre.

Bien sûr si le contenu de la cellule active est :
CARTE 23/02/2010 MAGASIN2
je récupère bien
23/02/2010

Merci pour toute aide.
Cordialement,
--
Serge Nazarian
Avatar
Serge Nazarian
Re-Bonjour,

ActiveCell.Value = CDate(Mid(ActiveCell.Offset(0, 1), 7, 10))
marche parfaitement.
Je n'ai pas essayé la proposition de michdenis, mais je le remercie ainsi
bien sûr que JB. Cela faisait une heure au moins que je galérais et le
problème a été résolu en moins de 5 minutes grâce au forum.

Cordialement,
--
Serge Nazarian
Avatar
FFO
Salut à toi

Mets plutôt comme ceci :

ActiveCell.Value = Cdate(Mid(ActiveCell.Offset(0, 1), 7, 10))


Celà devrait faire

Dis moi !!!!!