FORMATAR DATA PERSONALIZADA

IRENKO 25/04/2017 14:59:53
#473556
Boa tarde! Estou com um pequeno problema para formatar datas em uma planilha como segue:

Carrego dessa forma como texto:

12016
112016
122016

depois formato

Plan4.Range([Ô]A[Ô] & CStr(Linha)) = Format(Left(!NovaData, 1), [Ô]00[Ô]) + [Ô]/[Ô] + Format(Right(!NovaData, 4), [Ô]0000[Ô])
Plan4.Range([Ô]A[Ô] & Linha).NumberFormat = [Ô]mm/yyyy[Ô]

O formato de saída deveria ser como abaixo:
01/2016
11/2016
12/2016

acontece que a segunda e terceira data não formata corretamente ficando sempre com 01/2016. Onde estou errando na função acima?
MARIOANDRADE 25/04/2017 17:54:09
#473559
Você está usando um Loop ou For para percorrer todas as linhas?
JONATHANSTECKER 27/04/2017 10:52:13
#473612
Nessa formatação você ignora o segundo digito dos meses.
Plan4.Range([Ô]A[Ô] & CStr(Linha)) = Format(Left(!NovaData, 1), [Ô]00[Ô]) + [Ô]/[Ô] + Format(Right(!NovaData, 4), [Ô]0000[Ô])
Plan4.Range([Ô]A[Ô] & Linha).NumberFormat = [Ô]mm/yyyy[Ô]

Se quiser continuar formatando dessa forma, apenas crie uma simples condição.
Se o texto de data conter 6 digitos...
Plan4.Range([Ô]A[Ô] & CStr(Linha)) = Format(Left(!NovaData, 2), [Ô]00[Ô]) + [Ô]/[Ô] + Format(Right(!NovaData, 4), [Ô]0000[Ô])

DS2T 27/04/2017 11:16:04
#473614
Você deve estar esquecendo de atualizar a variável NovaData no loop.

Abraços!
IRENKO 27/04/2017 13:09:25
#473621
Desculpe-me o atraso mas resolvi conforme abaixo:

Plan4.Range([Ô]A[Ô] & CStr(Linha)) = Left(!NovaData, Len(!NovaData) - 4) + [Ô]/[Ô] + Format(Right(!NovaData, 4), [Ô]0000[Ô])

Obrigado a todos pelas sugestões.
Tópico encerrado , respostas não são mais permitidas