Boa tarde, tenho uma macro que me retorna valores pré determinados e os salva em .txt. Ela funciona muito bem mas as informações saem um tanto embaralhadas. Gostaria de que as informações retornadas se mantivessem em colunas pois atualmente elas saem assim:
Cod. Barras Descrição Diagnostico
7896659600530 FARINHA TRIGO SANANDUVA 5KG PAO CASEIRO Inventario possivel erro
7891356053894 BATEDEIRA BRITANIA PEROLA MAX 220V Inventario erro
7891331014865 CEREAL NUTRY 30G NUTS MORANGO Inventario erro
7899751200431 GOJI BERRY Q-VITA 70G Inventario erro
7891000094532 RACAO PURINA FRISKIES 85G PEIXE Inventario erro
7898510454535 BIFINHO PRIMOCAO 60G FRANGO Inventario erro
7896029007303 RACAO WHISKAS 500g FILHOTE CARNE LEITE Inventario erro
A macro que uso:
Sub SalvarComoTXT()
UserForm1.Show
End Sub
Sub ExecutarSalvarTXT(mPlan As Worksheet, mPathSave As String)
Dim NovoArquivoXLS As Workbook
'Cria um novo arquivo excel
Set NovoArquivoXLS = Application.Workbooks.Add
'Copia a planilha para o novo arquivo criado
mPlan.Copy Before:=NovoArquivoXLS.Sheets(1)
'Salva o arquivo
Application.DisplayAlerts = False
NovoArquivoXLS.SaveAs mPathSave & "" & mPlan.Name & ".txt", _
FileFormat:=xlText, CreateBackup:=False
NovoArquivoXLS.Close
Set NovoArquivoXLS = Nothing
Application.DisplayAlerts = True
MsgBox "Novo arquivo salvo em: " & mPathSave & "" & mPlan.Name & ".txt", vbInformation
End Sub
'UserForm1
Private Sub CommandButton1_Click()
'Chama a rotina para salvar como txt
'Será salvo um novo arquivo txt com base na planilha seleciona na lista de opções
Call ExecutarSalvarTXT(Sheets(lstPlanilhas.Text), ThisWorkbook.path)
Unload Me 'Fecha o form
End Sub
Private Sub UserForm_Initialize()
'Chama a rotina para preencher a lista das planilha disponíveis no arquivo
Call PreencheLista
End Sub
Private Sub PreencheLista()
Dim sht As Worksheet
lstPlanilhas.Clear
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "Principal" Then 'Não exibe a planilha Principal
lstPlanilhas.AddItem sht.Name
End If
Next sht
End Sub
Com userform:
Private Sub CommandButton1_Click()
'Chama a rotina para salvar como txt
'Será salvo um novo arquivo txt com base na planilha seleciona na lista de opções
Call ExecutarSalvarTXT(Sheets(lstPlanilhas.Text), ThisWorkbook.path)
Unload Me 'Fecha o form
End Sub
Private Sub lstPlanilhas_Change()
End Sub
Private Sub UserForm_Initialize()
'Chama a rotina para preencher a lista das planilha disponíveis no arquivo
Call PreencheLista
End Sub
Private Sub PreencheLista()
Dim sht As Worksheet
lstPlanilhas.Clear
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "Principal" Then 'Não exibe a planilha Principal
lstPlanilhas.AddItem sht.Name
End If
Next sht
End Sub
e gostaria que ficasse como segue em anexo. Alguém pode me dar uma mão? Obrigado.
Postado : 22/04/2016 1:38 pm