Bom dia
Busquei na base do Fórum por uma solução para um problema e encontrei um código disponibilizado pelo MAURO COUTINHO adaptado já de outro. A macro executa 90% do que desejo e sendo assim gostaria de contar com a ajuda dos especialistas para fazer apenas uma adaptação. Pela macro, o texto é quebrado em linhas e colunas no excel, não é isso que desejo.
Eu preciso importar todo o conteúdo do arquivo texto para uma única célula específica (que já está definida no código). A única adaptação no código e não buscar por quebras de linhas ou colunas. Importar o texto conforme está e colar em uma célula.
Obrigado!
Segue o código:
Public Sub ImportarArqTextoGrandes()
Dim ultimaFila, fila, contador As Long
Dim linea, NomeArquivo As String
Dim Ficheiro As String
Dim S As String, N As Integer, X As Variant
Dim rg As Range
Set rg = Range("A1")
'Calcula a última linha da planilha
Selection.End(xlDown).Select
ultimaFila = Selection.Row
'Seleciona a primeira vazia
Selection.End(xlUp).Select
'Abre a Cx de Dialogo ABRIR
ArquivoTxt = Application.GetOpenFilename("Arquivos Texto(*.txt), *.txt")
'Se nenhum arquivop selecionado sai da rotina
If ArquivoTxt = False Or ArquivoTxt = "False" Then Exit Sub
Ficheiro = ArquivoTxt
'Abre o arquico texto selecionado
Open Ficheiro For Input As #1
'Variaveis de linhas e colunas
fila = 1
contador = 1
'Enquanto o arq rexto contiver linhas preenchidas
Do Until EOF(1)
Line Input #1, S
'Subsdtitui somene o caracter de Tabulação
X = Split(S, Chr(9))
For N = 0 To UBound(X)
rg.Offset(0, N) = X(N)
Next N
'Mensagem na barra de status
Application.StatusBar = "Lendo linha número = " & contador
'Atualiza as Variáveis e coluna e linhas
fila = fila + 1
contador = contador + 1
'Cria nova planilha quando planilha atual estiver cheia
If fila > ultimaFila Then
'Aplica formatação na aba atual
ActiveSheet.Range("A:O").Columns.AutoFit
ActiveSheet.Range("A1:$O$" & contador - 1).Font.Size = 8
'Adiciona uma nova Aba
Worksheets.Add after:=ActiveSheet
'Reinicia as Variáveis
fila = 1
contador = 1
'Redefine os Ranges
Set rg = Range("A1")
Set rg = rg.Offset(0, 0)
'Força o Reinicio
GoTo sReiniciar
End If
Set rg = rg.Offset(1, 0)
sReiniciar:
Loop
'Fecha o arquivo Texto
Close #1
ActiveSheet.Range("A:O").Columns.AutoFit
ActiveSheet.Range("A1:$O$" & contador).Font.Size = 8
End Sub
Postado : 26/11/2015 7:15 am