vba – définissez datatables dans la cellule à quelle date s'affiche

Probablement une question simple, je ne peux pas identifier ma figure car je ne comprends pas encore complètement comment aborder les différentes "couches" dans excel (ce que datatables sont effectivement dans une cellule par rapport à ce qui est affiché … Ex. rendez-vous amoureux)

J'ai datatables suivantes dans mes cellules

10/17/2014 10/18/2014 10/19/2014 10/20/2014 

J'ai couru le code vba suivant pour éventuellement reformater ces données:

 Sheet1.Range("C2", "C1000").NumberFormat = "dd-mmm-yyyy" 

Cela fait apparaître mes données comme suit:

 17-Oct-2014 18-Oct-2014 19-Oct-2014 20-Oct-2014 17 octobre 2014 17-Oct-2014 18-Oct-2014 19-Oct-2014 20-Oct-2014 18 octobre 2014 17-Oct-2014 18-Oct-2014 19-Oct-2014 20-Oct-2014 19-octobre-2014 17-Oct-2014 18-Oct-2014 19-Oct-2014 20-Oct-2014 

Ce qui est en fait ce que je veux être. Seul le problème est que si je clique sur l'intérieur de la cellule réelle, datatables sont encore au format 10/18/2014 .

Maintenant, de ma compréhension, le "format" changera simplement la façon dont datatables sont affichées. Je ne peux pas find en ligne comment prendre ce qui s'affiche à l'écran et modifier la valeur de la cellule à ce qui est affiché. Je pense que c'est un problème "populaire" et demandé à plusieurs resockets, alors peut-être que mes compétences de search sont juste disponibles et je ne peux pas find l'article. Toute aide serait appréciée. Je vous remercie.

J'ai lu que je pouvais utiliser "Coller spécial", mais cela me oblige à formater des cellules, puis copyr et coller les valeurs manuellement, ce qui n'est pas ce que je voudrais. J'aimerais bien automatiser complètement cela dans VBA.

Essaye ça:

 Sheet1.Range("C1:C1000").Value = Sheet1.Evaluate("""'"" & INDEX(TEXT(C1:C1000,""dd-mmm-yyyy""),)") 

Le ' au début force la sortie dans le text.

Vous pouvez également le faire de cette façon:

 Sheet1.Range("C1:C1000").NumberFormat = "@" Sheet1.Range("C1:C1000").Value = Sheet1.Evaluate("INDEX(TEXT(C1:C1000,""dd-mmm-yyyy""),)") Sheet1.Range ("C1: C1000"). NumberFormat = "@" Sheet1.Range("C1:C1000").NumberFormat = "@" Sheet1.Range("C1:C1000").Value = Sheet1.Evaluate("INDEX(TEXT(C1:C1000,""dd-mmm-yyyy""),)") 

Cela transformera les nombres qui sont formatés en dates de text qui ressemblent à des dates. En d'autres termes, si une reference ou des formules mathématiques sur ces cellules devront les couvrir en numbers.