Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Comparar parte do nome do arquivo com um valor de uma célula

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
rjuliano
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Sex Fev 03, 2012 2:06 pm

Comparar parte do nome do arquivo com um valor de uma célula

Mensagem por rjuliano »

Olá, eu estou com o seguinte problema, eu recebo planilhas diárias de operação de várias unidades. O padrão do nome das planilhas é a seguinte:

AA_MM_DD-NOME_DA_UNIDADE.XLS

Onde:

AA - Ano (dois digitos)
MM - Mês (dois digitos)
DD - Dia (dois digitos)

Eu gostaria de uma rotina onde fosse possível comparar a data do nome do arquivo com a data gravada numa das célula da planilha de operação a fim de evitar o carregamento desses dados caso essa comparação me retorne falsa.

Caso alguém puder me dar uma luz em como fazer isso já agradeço.

Abraços

EDIT 01:

Pelo que eu andei vendo, eu mudei o padrão do nome do arquivo para este:

AA-MM-DD_NOME_DA_UNIDADE.XLS

No meu procedimento eu já uso o Application.GetOpenFilename, então eu já consigo jogar essa informação para uma célula.

Pra tirar o caminho do arquivo da string, eu estou usando:
Right$(STRING, TAMANHO)

Depois, pra tirar o nome da unidade, eu estou usando:
Left$(STRING, TAMANHO)

Sendo assim, eu termino com a célula apenas com "AA-MM-DD".

O meu problema agora é dizer pro excel que eu estou usando essa formatação ("AA-MM-DD"), como que eu faço pra dizer ao Excel qual o formato de data estou usando?

edit 02:

Eu desencanei de tentar formatar a data, cheguei ao seguinte código abaixo. Acredito eu que exista uma solução mais "limpa", mas acredito que esse codigo ai já basta para o que eu quero.

Código: Selecionar todos

    Dim ray(1 To 3) As String
    
    filetoopen = Application.GetOpenFilename
    If filetoopen = False Then Exit Sub

    'PADRÃO: \AAAA-MM-DD_NOME_DA_UNIDADE.xls
    data = Right$(filetoopen, 30)
    data = Left$(data, 10)
    
    ray(1) = Right$(data, 2)
    ray(2) = Right$(data, 5)
    ray(2) = Left$(ray(2), 2)
    ray(3) = Left$(data, 4)

    Cells(1, 1) = Join(ray, "/")


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder