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

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 !
 

Papou-net

XLDnaute Barbatruc
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.
 

Modeste geedee

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

Bonsour®

:rolleyes: 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
 

achatenet

XLDnaute Nouveau
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

  • Help version 1.xls
    35.5 KB · Affichages: 97

Modeste geedee

XLDnaute Barbatruc
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
 

kalek93

XLDnaute Nouveau
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 ;-)
 

Modeste geedee

XLDnaute Barbatruc
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
 

JCGL

XLDnaute Barbatruc
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
 

JCGL

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
17
Affichages
793
Réponses
0
Affichages
128

Statistiques des forums

Discussions
312 023
Messages
2 084 715
Membres
102 637
dernier inscrit
TOTO33000