XL 2019 Récuper une partie de cellule en VBA

  • Initiateur de la discussion Initiateur de la discussion bambi
  • Date de début Date de début

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 !

bambi

XLDnaute Occasionnel
Bonjour à tous

Je reviens vers vous pour une demande d'aide VBA

J'ai des cellules dans ce format
03 12 2021 14:31:55

Je voudrais les transformer avec le VBA pour récupérer la date puis l'heure
et

Le formatage ne suffit pas car je suis susceptible de récuperer ces valeurs dans une feuille de filtre
Et le formatage ne fait que masquer les données donc mes filtres ne marchent plus

Donc j'ai besoin de réellement transformer (ou extraire) sous les deux formats date seule et heure seule

Merci d'avance 😉
 
A adapter au besoin, mais sur le principe :

VB:
Sub Macro1()
Dim MyDate As String
Dim MyTime As String

MyDate = VBA.Left(Range("A1"), 10)
MyTime = VBA.Right(Range("A1"), 8)

MsgBox ("Date : <" & MyDate & "> / Heure = <" & MyTime & ">")

End Sub
 
Dernière édition:
Bonjour bambi, le fil,

ouvre le fichier ci-joint, et fais Ctrl e 🙂

VB:
Sub Essai()
  [B1].NumberFormat = "dd mm yyyy"
  [B1] = DateSerial(Year([A1]), Month([A1]), Day([A1]))
  [B2].NumberFormat = "hh:mm:ss"
  [B2] = TimeSerial(Hour([A1]), Minute([A1]), Second([A1]))
End Sub

soan
 

Pièces jointes

Merci à vous trois pour vos propositions
Je complète ma demande avec un fichier
La date a modifier est en colonne A
Les heures
sont en colonnes E et G
J'ai mis 4 lignes mais dans l'absolu, je ne sais jamais combien je vais avoir de lignes à traiter
Merci d'avance
 

Pièces jointes

Bonjour bambi,

ton fichier en retour. 🙂

fais Ctrl e ➯ travail effectué ; code VBA :

VB:
Option Explicit

Sub Essai()
  Dim dlg&, lig&: dlg = Cells(Rows.Count, 1).End(3).Row
  [A1].Resize(dlg).NumberFormat = "dd mm yyyy"
  [E1].Resize(dlg).NumberFormat = "hh:mm:ss"
  [G1].Resize(dlg).NumberFormat = "hh:mm:ss"
  For lig = 1 To dlg
    With Cells(lig, 1)
      If .Value <> "" Then
        .Value = DateSerial(Year(.Value), Month(.Value), Day(.Value))
        With .Offset(, 4)
          If .Value <> "" Then .Value = TimeSerial(Hour(.Value), Minute(.Value), Second(.Value))
        End With
        With .Offset(, 6)
          If .Value <> "" Then .Value = TimeSerial(Hour(.Value), Minute(.Value), Second(.Value))
        End With
      End If
    End With
  Next lig
End Sub

soan
 

Pièces jointes

- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
12
Affichages
1 K
Retour