Convertir en Macro

Bonjour à tous,

J'ai un problème avec une macro enregistrée.

J'importe dans un fichier excel, un fichier au format "csv". Jusque là pas de problème.

En colonne B, j'ai une date et une heure au format "25/03/2022 05:06:59". Lorsque j'utilise l'assistant conversion afin que mes données soient séparées en 2 colonnes, en B la date et en C l'heure, pas de problème. Sauf que je voulais automatiser cette manipulation. J'ai enregistré une macro, mais plus rien ne va. En colonne B j'ai bien la date, en colonne C, les heures au format anglais et en D "AM" ou "PM".

Je ne comprends pas pourquoi ça fonctionne quand je le fais manuellement et plus à l'aide d'une macro.

Voici ma macro

Sub Macro6()
'
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.TextToColumns Destination:=Range("B2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub

Pourriez vous m'aider svp ?

Je joins un fichier exemple.

Merci et bonne soirée.

Sandrine

12test.xlsm (15.48 Ko)

Bonjour,

Essayez ceci:

Sub SéparateurJour()
    Application.DisplayAlerts = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Range("B2:B" & DerLig).TextToColumns Destination:=Range("B2:B" & DerLig), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
    :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    Range("B2:B" & DerLig).NumberFormat = "m/d/yyyy"
End Sub

Cdlt

Bonjour,

Merci pour votre aide mais malheureusement ça ne fonctionne toujours pas.

J'ai toujours les heures au format anglais qui s'affichent.

Cdt,

Je ne comprends pas:

En colonne B, j'ai une date et une heure au format "25/03/2022 05:06:59". Lorsque j'utilise l'assistant conversion afin que mes données soient séparées en 2 colonnes, en B la date et en C l'heure, pas de problème. Sauf que je voulais automatiser cette manipulation

C'est bien ce que vous aviez demandé, l'automatisation, non!

Sous quelle forme souhaitez-vous voir l'heure?

Bonjour,

Oui c'est bien ce que j'avais demandé l'automatisation, j'avais réussi avec ma macro enregistrée. Sauf que lorsque j’exécute la macro l'heure s'affiche en format anglais. comme ceci :

capture1

Alors que je voulais qu'elle s'affiche de cette façon :

image

Merci pour votre aide.

Sandrine

Bonjour,

Effectivement c'est bizarre, alors on passe par une autre méthode,

Essayez ceci:

Sub SéparateurJour()
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Range("D2:D" & DerLig).FormulaR1C1 = "=TEXT(RC[-2]-INT(RC[-2]),""hh:mm:ss"")"
    Range("C2:C" & DerLig).FormulaR1C1 = "=INT(RC[-1])"
    Range("C2:D" & DerLig).Value = Range("C2:D" & DerLig).Value
    Range("B2:B" & DerLig).Delete
End Sub

Cdlt

Bonjour,

Merci pour votre aide. ça fonctionne.

Bonne journée.

Sandrine

Rechercher des sujets similaires à "convertir macro"