Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Avatar do usuário
Por Shylock
Avatar
#69181
Olá, pessoal! Criei uma pequena macro para importar arquivos CSV (que, depois, é copiado para outra guia). Uma das colunas desses arquivos é relativo à diferença de tempo. Na primeira linha desta coluna, aparece o "melhor tempo". Nas seguintes, as diferenças em relação a essa primeira (Ex.: C1="137.417"; C2="+0340"...). O problema está nesse sinal de "+"! A planilha interpreta como sendo uma fórmula e coloca, automaticamente, o sinal de "=" antes, ocasionando um erro, geralmente, #DESPEJAR. Manualmente, é claro, é fácil corrigir, mas, eu gostaria de uma solução dentro da macro de importação para que essa interpretação de "ser uma fórmula" não aconteça. Agradeço, desde já, a ajuda, e segue a parte da macro:
Código: Selecionar todos
Sub ImportarCSV()

    Dim filename__path As Variant
    Dim ws As Worksheet
    Dim xConnect As Object
    
    Application.ScreenUpdating = False ' Para de atualizar a tela para executar as funções
    
    ' Aqui usamos uma janela de "Abrir Arquivo" para pegar o nome do arquivo csv que será importado
    filename__path = Application.GetOpenFilename(FileFilter:="Csv (*.CSV), *.CSV", Title:="Escolha o arquivo CSV")
    If filename__path = False Then Exit Sub ' Há 2 validações, se o arquivo é CSV e se algum arquivo foi selecionado

    Set ws = ThisWorkbook.Sheets("CSV") 'Seleciona a folha "CSV"
    
    ws.Cells.Clear 'Limpa o conteúdo de toda a folha

    'Importamos o arquivo CSV escolhido na aba "CSV" celula A1
    With ws.QueryTables.Add(Connection:="TEXT;" & filename__path, Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFilePlatform = 65001
        .TextFileCommaDelimiter = True
        .Refresh
    End With
    
    CopiarTabela 'Chama a função CopiarTabela para passar a tabela ao endereço correto em Info Corridas
    

    For Each xConnect In ActiveWorkbook.Connections
    If xConnect.Name <> "ThisWorkbookDataModel" Then xConnect.Delete 'Limpa a conexão feita com o CSV
    Next xConnect
    
    MsgBox ("Arquivo importado com sucesso!") 'Avisamos ao usuário que deu tudo certo
    
    Application.ScreenUpdating = True 'Volta a atualizar a tela
    
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord