Dates et format

gourdin

XLDnaute Impliqué
Bonjour,

Après avoir longuement recherché des solutions via des discussions similaires, je n'ai pas réussi.

Une colonne contient des dates au format nombre suite à un copier coller (que je ne souhaite pas modifier).
Quand je fais "manuellement" : copier E8 (contient la valeur 1) + collage spécial "Multiplication" mes dates s'affichent comme des nombres et c'est ce je souhaite obtenir.

Je souhaite automatiser en VBA mais cela ne fonctionne pas.

J'utilise le code (cf. l'exemple du fichier joint) :
Range("E8").Copy 'contient la valeur 1
Range("C9:C22").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False

Merci de votre aide
 

Pièces jointes

  • collage_special.xlsm
    21 KB · Affichages: 26

job75

XLDnaute Barbatruc
Bonjour gourdin, mapomme,

Avec un tableau VBA c'est aussi très rapide :
Code:
Sub Convertir()
Dim tablo, i&
With Range("C9:C22")
    tablo = .Value
    For i = 1 To UBound(tablo)
        If IsDate(tablo(i, 1)) Then tablo(i, 1) = CDate(tablo(i, 1))
    Next
    .Value = tablo
End With
End Sub
Sur 140 000 lignes l'exécution se fait chez moi en 1,5 seconde, la macro de mapomme en 0,9 seconde.

A+
 

gourdin

XLDnaute Impliqué
Bonsoir,
J'ai le même problème avec des dates au format plus long tel que "09/06/2018 15:43:00"
J'ai utilisé le code de "mapomme" mais cela ne fonctionne pas sur toutes les cellules.
Voir pièce jointe
Merci
 

Pièces jointes

  • collage_special2.xls
    53.5 KB · Affichages: 14

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Essayer le code suivant:
VB:
Sub TexteEnDateHeureA()
  t = Range("C9:C22").Value2
  For i = 1 To UBound(t)
    If Not IsNumeric(t(i, 1)) Then t(i, 1) = DateValue(Split(t(i, 1))(0)) + TimeValue(Split(t(i, 1))(1))
  Next i
  Range("C9:C22").NumberFormat = "dd/mm/yyyy hh:mm:ss"
  Range("C9:C22") = t
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG