VBA- probleme pour afficher l'heure au bon format

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

airsage

XLDnaute Junior
Bonjour,

Dans le fichier joint dans la feuille "Incident", j'ai des cellules du type "JJ/MM/AAAA HH:MM:SS"
Je viens scinder la date et l'heure dans 2 cellules differentes.
- Pas de problème pour le format date, par contre impossible de mettre l'heure au format heure mais reste au format texte.
Vous pouvez voir la macro "Module_test" que j'ai créé

Merci par avance pour votre aide.
 

Pièces jointes

Re : VBA- probleme pour afficher l'heure au bon format

Bonsour®

2 possibilités :
par formule :
date Evénement=Ent(DateHeureEvt) nformat de cellule jj/mm/aaaa
H évenement = MOD(DateHeureEvt ; 1) format de celleule hh:mm:ss

par conversion de données
selectionner la colonne (après avoir ajouté une colonne à droite
menu données > Convertir
largeur fixe(date 8pos ,2espaces,heure 8pos,fin de ligne
à l'étape 3
1er colonne date choisir JMA
2eme colonne : non distribuée
3eme colonne : standard
4eme colonne : non distribuée
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 88
  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 64
  • Capture.JPG
    Capture.JPG
    55.8 KB · Affichages: 68
Re : VBA- probleme pour afficher l'heure au bon format

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)

With Sheets("Incident") 'prend en compte l'onglet "Incident"
    dl = .Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 7 (=G)
    Set pl = .Range("G2:G" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Incident"
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    cel.Offset(0, 5).NumberFormat = "dd/mm/yyyy" 'définit le format de la cellule en colonne L (à adapter à ton cas)
    cel.Offset(0, 6).NumberFormat = "hh:mm:ss" 'définit le format de la cellule en colonne M (à adapter à ton cas)
    cel.Offset(0, 5).Value = cel.Value 'copie la valeur de la cellule cel en colonne L
    cel.Offset(0, 6).Value = cel.Value 'copie la valeur de la cellule cel en colonne M
Next cel 'prochaine cellule de la boucle
End Sub
 
Re : VBA- probleme pour afficher l'heure au bon format

Re bonjour a tous,

Merci à vous pour le temps passé sur mon problème mais je n'ai pas été assez clair la première fois. voici ce que je veux essayer de faire.

@Modeste geedee : le principe est bon quand je fais le test à la main, pas pas quand je l'automatise par une macro. Je dois avoir un problème de format anglais/français

@Robert : ta macro fonctionne visuellement mais que tu cliques sur une cellule je vois la date et l'heure apparaitre. Je ne peux pas exploiter cette manière dans un tableau croisé dynamique.

@Paf : voici le code utilisé pour la colonne D :

Sub test()

Dim NbLignes As Integer
Dim f As Worksheet

Set f = ActiveSheet 'selectionne ta feuille active
NbLignes = f.UsedRange.Rows.Count

' Génération colonnes "Date Ouverture Incident" et "Heure Ouverture Incident"

Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("E1").Select
ActiveCell.FormulaR1C1 = "Date Ouverture Incident"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Heure Ouverture Incident"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=DATEVALUE(DAY(LEFT(RC[-1],10))&""/""&MONTH(LEFT(RC[-1],10))&""/""&YEAR(LEFT(RC[-1],10)))"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=LEFT(RIGHT(RC[-2],8),8)"
Selection.AutoFill Destination:=Range("F2:F" & NbLignes), Type:=xlFillDefault
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E" & NbLignes), Type:=xlFillDefault
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("F:F").Select
Selection.Copy
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("G:G").Select
Application.CutCopyMode = False
Selection.Copy
Columns("F:F").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("G:G").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("D😀").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("D😀").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("E:E").Select
Selection.NumberFormat = "hh:mm:ss"
end sub

Merci par avance pour votre aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
432
  • Question Question
Microsoft 365 erreur de date
Réponses
2
Affichages
523
Réponses
10
Affichages
654
Réponses
9
Affichages
851
Réponses
2
Affichages
503
Retour