Macro permettant de changer un format date + heure en ne gardant que la date

  • Initiateur de la discussion Initiateur de la discussion achatenet
  • 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 !

achatenet

XLDnaute Nouveau
Bonsoir,

Dans le cadre de mon stage, je dois réaliser une macro permettant le retraitement d'une extraction tiré d'un logiciel. Cete extraction possède des doublons qui sont différencié par la date de création. Or une même ligne peut avoir été créé avec un léger décalage temporel empéchant la suppression des doublons.

J'ai réussi à réaliser une macro mais elles m'inversent le jours et la date à chaque fois que je clique sur mon bouton executant la macro.

Voici mon code :

Private Sub CommandButton1_Click()
Dim monDico As Object
Dim i As Integer

Set monDico = CreateObject("Scripting.Dictionary")

Application.ScreenUpdating = False

i = 1
Do While Cells(i, "A") <> ""
If Not monDico.Exists(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) Then
monDico(Cells(i, "A") & Cells(i, "B") & Cells(i, "C") & Cells(i, "D")) = ""
i = i + 1
Else
Rows(i).EntireRow.Delete
End If
Loop
For Each C In Sheets("Data RDV").Range("A1:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
C.Value = Left(C, 10)
C.NumberFormat = "dd/mm/yyyy"
Next C
Range("A2:Z1000").Sort Key1:=Range("B2"), Order1:=xlAscending
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E597"), Type:=xlFillDefault
Range("E2:E597").Select
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F597"), Type:=xlFillDefault
Range("F2:F597").Select

[F2].AutoFill Destination:=Range("F2:F" & Range("A65536").End(xlUp).Row)
[E2].AutoFill Destination:=Range("E2:E" & Range("D65536").End(xlUp).Row)


End Sub




Voyez vous d'où peux venir le problème ? Auriez vous une solution ?


Merci d'avance pour votre réactivité !


Amicalement !
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonsoir achatenet, et bienvenue,

Peut-être en modifiant comme ceci:

Code:
For Each C In Sheets("Data RDV").Range("A1:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
    C.Value = Cdate(Left(C, 10))
Next C
Dans ce cas, la ligne de mise au format de la cellule n'est plus indispensable, mais tu peux la conserver.

Cordialement.
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonsour®

🙄 en reprenant la réponse de Papou-net ...
VB:
For Each C In Sheets("Data RDV").Range("A1:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
     C.Value = Int(C)
     C.NumberFormat = "dd/mm/yyyy"
Next C
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonjour à tous,

Merci pour vos propositions, malheureusement aucune n'a marché... Au vue des autres topics je pense qu'il est plus simple pour tous le monde que je joigne un classeur excel.

Pour rappel ma demande ne porte que sur le chgt de format de la date, le reste fonctionne.

Merci de votre sur votre temps pour m'aider, c'est vraiment sympa !
 

Pièces jointes

Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonsour®

il faut commencer la conversion à la ligne 2 !!!

VB:
 For Each c In Sheets("Data RDV").Range("A2:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
    c.Value = Int(CDate(c))
    'c.NumberFormat = "dd/mm/yyyy"
Next c
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonjour,

J'aimerai faire l'inverse, c'est à dire en partant de la date, j'aimerai y ajouter une heure.

Je m'explique, dans la colonne B, j'ai mes dates,
Dans ma colonne A, j'ai des données (A,B,C,D...)

J'aimerai effectuer comme ci-dessous

Si A=1, alors B = date + 11:30:00
Si A=2, alors B = date + 12:00:00
etc...

J'ai repris le code du dessus, en essayant d'y ajouter l'heure.

Code:
For Each c In Sheets("test").Range("A2:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
   
if Range("A" & c) = "1" then
    c.Value = Int(CDate(c))
    'c.NumberFormat = "dd/mm/yyyy" & "11:30:00"

if Range("A" & c) = "2" then
    c.Value = Int(CDate(c))
    'c.NumberFormat = "dd/mm/yyyy" & "12:00:00"

Next c

Cependant, ça ne marche pas... Auriez-vous une idée svp?

Merci d'avance ;-)
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonsour®
Bonjour,

J'aimerai faire l'inverse, c'est à dire en partant de la date, j'aimerai y ajouter une heure.

Je m'explique, dans la colonne B, j'ai mes dates,
Dans ma colonne A, j'ai des données (A,B,C,D...)

J'aimerai effectuer comme ci-dessous

Si A=1, alors B = date + 11:30:00
Si A=2, alors B = date + 12:00:00
etc...

VB:
For Each c In Sheets("test").Range("A2:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
   
  select case c.value
      case 1
            C.offset(0,1) = int(C.offset(0,1))+timevalue("11:30:00")  
      case 2
            c.offset(0,1) = int(C.offset(0,1))+timevalue("12:00:00") 
     ' case 3  '---------  adapter les lignes en commentaire selon besoin
      '     c.offset(0,1) = int(C.offset(0,1))+timevalue("14:30:00") 
      ' case ?
      '     c.offset(0,1) = int(C.offset(0,1))+timevalue("?h:?m:?s") 

      case else
            '----------
  end select 
next
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonjour à tous,

Peux-tu essayer avec :

VB:
For Each c In Feuil1.Range("A2:A" & Range("A" & Application.Rows.Count).End(xlUp).Row)
If c = 1 Then c.Offset(, 1) = c.Offset(, 1).Value & " 11:30:00"
If c = 2 Then c.Offset(, 1) = c.Offset(, 1).Value & " 12:00:00"
Next c

A+ à tous

Edition : Oups... Bonjour Geedee
 
Re : Macro permettant de changer un format date + heure en ne gardant que la date

Bonjour à tous,

VB:
For Each c In Feuil1.Range("H2:H" & Range("H" & Application.Rows.Count).End(xlUp).Row)
If c = 1 Then c.Offset(, 4) = c.Offset(, 4).Value & " 11:30:00"
If c = 2 Then c.Offset(, 4) = c.Offset(, 4).Value & " 12:00:00"
Next c

Décalage de 0 ligne et 1 colonne

A+ à tous
 
- 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
10
Affichages
547
Réponses
17
Affichages
2 K
Réponses
0
Affichages
460
Réponses
2
Affichages
1 K
Retour