Na definição de linha = 0 , comece com linha =1 se quiser "varrer" a planilha à partir da primeira linha.
A sintaxe para Cells e Cells(Numéro da Linha, Numero da Coluna ou Letra da coluna "A")
Para que os valores se alterem é preciso que uma das variaves (linha ou coluna) tb se altere. Nesse caso a linha e a variavel a ser alterada; então a definição das celulas devem ser Cells(linha,1) ou seja na "primeira passada" ira "pegar" o valor de "A1", veja que logo após o Print #1 e acrescentado 1 a variavel linha, então na "segunda passada" Cells(linha,1) representa valor de "A2", assim por diante.
Em sua rotina, como não há acrescimo de caracteres aos valores das celulas, e possivel deletar os Cpo's
ficando assim:
Dados=Cells(linha,1) & espaco & Cells(linha,2) & espaco & zero & espaco & espaco & Cells(linha,3) & espaco & Cells(linha,4) & Cells(linha,5)
Sub GeraTxt()
'Identifica o caminho onde está e será salvo exemplo: C:Desktop
Caminho = ThisWorkbook.Path & Application.PathSeparator
'Determina o nome do arquivo a ser salvo
arquivo = "Exportar_Excel_pTxt.txt"
'"abre" o arquivo txt para gravação dos dados
Open Caminho & arquivo For Output As #1
'variavel com 5 espaços usado para alguns preenchimentos
espaco = " "
'variavel com 0 usado para alguns preenchimentos
zero = "0"
'Posiciona-se na planilha chamada "Export"
Worksheets("plan1").Activate
Range("A1").Select
'Linha de inicio dos dados ( a 1 são os cabecalhos)
linha = 1
'Inicio do loop, executa ate´linha vazia.
Do Until IsEmpty(ActiveCell.Offset(1, 0))
'Preparação dos campos a serem exportados,
'Para que os valores alterem é necessario que linha ou coluna se alterem
Cpo1 = Cells(linha, 1)
Cpo2 = Cells(linha, 2)
Cpo3 = Cells(linha, 3)
Cpo4 = Cells(linha, 4)
Cpo5 = Cells(linha, 5)
'Concatena os dados já arrumados
Dados = Cpo1 & espaco & Cpo2 & espaco & zero & espaco & espaco & Cpo3 & espaco & Cpo4 & Cpo5
ou 'se for utilizar esta maeneira as linhas das variaveis Cpo podem se excluidas
Dados = Cells(linha, 1) & espaco & Cells(linha, 2) & espaco & zero & espaco & espaco & Cells(linha, 3) & espaco & Cells(linha, 4) & Cells(linha, 5)
'Grava o valor em dados no arquivo txt
Print #1, Dados
'Incrementa 1 a variavel linha, para que se desloque ao proximo registro
linha = linha + 1
If Cells(linha, 1) = Empty Then Exit Do
Loop
'fecha o arquivo txt
Close #1
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 14/05/2012 11:28 am