Comment changer le Format d'une cellule en texte en utilisant VBA

J'ai une colonne "durée" dans une feuille Excel. Son format de cellule change toujours - je veux convertir la durée de minutes en secondes, mais à cause du formatage de la cellule, il me donne toujours des réponses différentes.

Je pensais qu'avant de faire la conversion, je pouvais convertir ce format de cellule en texte afin qu'il le considère comme une valeur de texte et ne pas essayer de le formater automatiquement.

Actuellement, je copie toutes les données dans le bloc-notes, puis je les sauvegarde sur la feuille Excel pour les supprimer tout le format précédent. Existe-t-il un moyen d'automatiser la mise en forme d'une cellule en texte à l'aide de VBA?

47
demandé sur Community 2011-11-25 10:10:18

3 réponses

Pour répondre à votre question directe, c'est:

Range("A1").NumberFormat = "@"

Ou

Cells(1,1).NumberFormat = "@"

Cependant, je suggère de changer le format pour ce que vous voulez réellement afficher. Cela vous permet de conserver le type de données dans la cellule et d'utiliser facilement des formules de cellule pour manipuler les données.

83
répondu Justin Self 2011-11-25 20:03:39

Eh bien, cela devrait changer votre format en texte.

Worksheets("Sheetname").Activate
Worksheets("SheetName").Columns(1).Select 'or Worksheets("SheetName").Range("A:A").Select
Selection.NumberFormat = "@"
6
répondu Jon 2011-11-25 20:02:53

Un point: vous devez définir la propriété NumberFormat avant de charger la valeur dans la cellule. J'avais un nombre à neuf chiffres qui s'affichait toujours comme 9.14 E + 08 lorsque le NumberFormat a été défini après le chargement de la cellule. Définir la propriété avant de charger la valeur a fait apparaître le nombre comme je le voulais, en tant que texte direct

Ou:

Pourriez-vous essayer un autofit en premier.
Excel_Obj.Colonnes ("A: V").EntireColumn.Ajustement automatique de la

5
répondu Dan McSweeney 2015-04-29 17:56:45