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?
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.
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 = "@"
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