Excel VBA ou Formule pour convertir du texte en Date avec le type d'heure

J'ai un certain nombre de données où sa date / horodatage a été importée dans Excel sous forme de texte. Excel ne le reconnaît pas vraiment comme date avec le temps. par exemple 25.08.2011 16:17:59 (mm.jj.aaaa hh: mm: ss)

Maintenant, je dois le convertir en une date avec l'heure afin qu'il puisse être utilisé pour d'autres calculs avec excel.

Comment puis-je faire ça? La solution de contournement actuelle consiste à "saisir à nouveau" le contenu. Signifie que si vous cliquez dans la cellule pour activer "modifier" et appuyez simplement sur retour ensuite, il est automatiquement converti par Excel en une heure de date. Je peux automatiser les choses par la macro VBA ci-dessous, mais bien que j'aie une gamme assez vaste de plus de 30'000, cela prend beaucoup de temps et vous ne pouvez pas changer la fenêtre / ou l'application entre-temps car cela fonctionne via l'interface graphique.

 Set c = Range("A1").Cells
 c.Select
 For row = c.row To 30000
     SendKeys "{F2}", True
     SendKeys "{ENTER}", True
 Next row

D'autres suggestions pour automatiser ce genre de choses beaucoup plus rapidement? J'ai déjà essayé les autres possibilités suivantes mais n'ont pas fonctionné:

  • modifiez le format de la cellule à ce jour avec un format personnalisé jj.aaaa hh: mm: la valeur de la cellule ss n'est pas automatiquement convertie en date
  • en utilisant la formule DATEVALUE (String): la valeur est convertie mais elle convertit simplement la date et l'heure est perdue, par exemple 25.08.2011 00:00:00 (mm.jj.aaaa hh: mm: ss)
  • en utilisant la formule TIMEVALUE (String), la valeur est convertie mais elle convertit simplement l'heure et la date est perdue, par exemple 00.00.1900 16:17:59 (mm.jj.aaaa hh: mm: ss)
  • En utilisant la fonction VBA " Format() " par exemple valeur get changer le format mais toujours reconnu par la suite comme texte, par exemple

    Dim myVar sous forme de chaîne myVar = Format(cellule.valeur, "jj/mm/aaaa hh:nn:ss")

  • en utilisant une macro VBA avec une cellule.FormulaR1C1 = "25.08.2011 16: 17:59" mais cela ne fonctionne pas non plus. la valeur reste reconnue comme texte

Merci pour votre aide

demandé sur