Comment formater une variable date/heure en date

Bonjour à tous,

J'ai un petit souci de variable date, comme vous l'avez compris dans mon titre.

J'extrais des date de mon outil de planification M S Project qui sont au format 03/10/2014 14:31:00

J'importe ces dates dans un fichier excel dans une cellule au format STANDARD car il y a du texte.

ex:

titre1:

03/10/2013 14:31:00

titre2:

21/10/2013 09:05:00

Au début de mon code, les variables sont déclarées comme suit:

Public feuil As String

Public fich As String

Public newpro As Variant

Public x As Variant

Pour valider la variable à chaque passage:

MaVar= ""

Je n'arrive pas à formater mes dates en:

21/10/2013 sans les heures, si je le fait sur mon fichier d'origine, à chaque mis à jour de MS Project, les heures reviennent, et je ne trouve pas de solution en VBA.

Pouvez-vous me venir en aide ?

Merci

Je ne peux joindre le fichier qui est trop confidentiel et difficile à reproduire en simple fichier.

@+

Robert

Bonjour Boby71C

Il suffit de définir une variable date

Dim ValDate as Date

A+

Bonjour,

Merci de me répondre.

Désolé, ça ne marche pas.

Je pense qu'il est également nécessaire de définir un format date après la collecte de la variable, mais je ne suis pas assez pointu en VBA pour le faire.

@+

Robert

Bonjour,

pour n'avoir que la date :

dat1 = int(ta_date)

eric

Re,

Merci Eric

Il y a certainement quelque chose que je ne comprends pas. J'ai allégé mon fichier joint, mais le code ne fonctionnera pas car je ne peux joindre le fichier qui apporte les données. Avec mon petit fichier, peut être comprendrez-vous mieux mon sujet que j'explique peut être mal.

Merci pour votre aide

@+

Robert

Tu n'as pas du tout de date au format 03/10/2014 14:31:00.

Tu as un texte avec 2 dates dedans...

Tu aurais pu précisé si tu voulais la 1ère ou la seconde.

Une fonction personnalisée qui t'extrait l'une ou l'autre :

Function extraitDate(chaine As String, numDate As Long) As Date
    Dim decoup
    decoup = Split(chaine, Chr(10))
    Select Case numDate
    Case 1: extraitDate = decoup(1)
    Case 2: extraitDate = decoup(5)
    End Select
    extraitDate = Int(CDate(extraitDate))
End Function

Appelable en vba ou à partir d'une feuille.

Ex: =extraitDate(D3;2)

eric

Bonjour à tous,

Merci pour le code VBA.

Je l'ai placé dans mon petit fichier, sur la feuille Encours, mais ça ne fonctionne pas. Il y a certainement quelque chose que je ne comprends pas.

De plus, je ne sais pas comment l'ajouter à mon code d'origine, sachant que le fichier joint ne traite que une colonne et que j'ai des données identiques en colonnes:

D

P

Q

R

S

Merci à tous

@+

Robert

Bonjour,

Tu n'explique pas ce que tu veux faire à part que tu as besoin d'une date qui est dans une chaine. On ne sait toujours pas laquelle tu veux d'ailleurs...

Comment veux-tu que l'on devine ?

eric

Désolé de mal m'exprimer.

Je viens de corriger mon petit morceau de fichier pour qu'il soit totalement autonome.

Les données collectées sont en A6 à G7. Les dates sont au format du fichier collecteur de MS Project.

Je désir avoir en D3

"H1 :

03/10/2013

H2 :

28/10/2013

Sans les heures

Merci pour votre patience.

@+

Robert

Avec une seule ligne de données impossible d'en tirer des conclusions valables.

Avec ce que tu fournis

="H1 : " & CAR(10) & TEXTE(ENT(G6);"jj/mm/aaa")  & CAR(10)  & CAR(10)  & CAR(10) &"H1 : " & CAR(10) &  TEXTE(ENT(G7);"jj/mm/aaa") 

est suffisant

eric

Avec mon code, ça fonctionne, mais avec les heures.

Avec votre code, j'ai un message d'erreur, il n'accepte pas les ; avant les formats dates

Mon code

'Cells(i, 4).Value = "H1 : " & Chr(10) & ConfHarmo1 & Chr(10) & Chr(10) & Chr(10) & "H2 : " & Chr(10) & ConfHarmo2

Le votre

Cells(i, 4).Value = "H1 : " & CAR(10) & TEXTE(ENT(G6);"jj/mm/aaa") & CAR(10) & CAR(10) & CAR(10) &"H1 : " & CAR(10) & TEXTE(ENT(G7);"jj/mm/aaa")

Heuuu, c'était une formule que je t'avais mis, pas un code...

Cells(i, 4).Value = ....

On voit que tu fais une boucle, et que tu te refuses donc à donner un fichier qui représente vraiment ton besoin.

C'est donc ma dernière intervention ici, pas envie d'y revenir 5 ou 10 fois à t'arracher les renseignements.

Essaie en remplaçant ConfHarmo1 par :

format(int(ConfHarmo1),"dd/mm/yyyy")

Idem pour l'autre

eric

Eric,

Excuses moi de te mettre en colère. Je ne suis pas un cador en VBA et je ne refuse pas de mettre mon fichier, mais il est trop confidentiel et de plus, il va chercher des données dans un autre fichier qui est sur notre réseau.

J'ai faits la modification et ça a l'air de fonctionner.

Je joints mon petit fichier, si ça peut aider d'autres exceliens.

Je vais maintenant m'atteler à l'adapter à mon fichier final.

Merci beaucoup pour ton aide.

@+

Robert

On peut toujours faire un fichier, réduit à l'essentiel pour le problème, avec des données bidons.

eric

Re

ça fonctionne très bien sur mon fichier final.

Merci à tous.

Et encore plus merci Eric pour ta patience.

Désolé de m' être mal exprimé

@+

Robert

Rechercher des sujets similaires à "comment formater variable date heure"