FORMATANDO DADOS AO EXPORTAR PARA EXCEL
Olá !
estou exportando os dados para o excel de uma tabela que tenho...
porém, os campos numéricos, aparece como texto... as datas, ficas no formato [Ô]mm/dd/aaaa[Ô]...
gostaria de fazer as datas ficarem corretas, e os valores, aparecerem o modo de dinheiro com R$ ...
o código que estou usando peguei aqui no vbmania mesmo...
agradeço as respostas...
estou exportando os dados para o excel de uma tabela que tenho...
porém, os campos numéricos, aparece como texto... as datas, ficas no formato [Ô]mm/dd/aaaa[Ô]...
gostaria de fazer as datas ficarem corretas, e os valores, aparecerem o modo de dinheiro com R$ ...
o código que estou usando peguei aqui no vbmania mesmo...
Screen.MousePointer = vbHourglass
Set vObjExcel = CreateObject([Ô]Excel.Application[Ô]) [ô]Abre o Excel
With vObjExcel
.Workbooks.Add [ô]Cria nova Planilha
Barra.Max = Lista.ListItems.Count
Barra.Value = 0
Barra.Visible = True
For i = 1 To 7
.Cells(1, i) = Lista.ColumnHeaders(i).Text
Next i
For i = 1 To Lista.ListItems.Count
For x = 0 To 6
If x = 0 Then
.Cells(i + 1, x + 1) = Lista.ListItems(i).Text
Else
.Cells(i + 1, x + 1) = [Ô][ô][Ô] & Lista.ListItems(i).SubItems(x)
End If
Next x
Barra.Value = i
Next i
[ô]Ajustando as Dimensões da Tabela...
.Columns([Ô]A:AZ[Ô]).AutoFit
.Rows([Ô]1:65536[Ô]).AutoFit
.Visible = True [ô]Mostra o Excel
End With
Screen.MousePointer = vbDefault
Barra.Visible = False
agradeço as respostas...
Bom dia,
é simples trabalhar com formatação do campos no excel com VBA.
segue o exemplo abaixo.
With vObjExcel
.Columns([Ô]A:A[Ô]).Select
.Selection.NumberFormat = [Ô]$#,##0.00[Ô]
.Columns([Ô]B:B[Ô]).Select
.Selection.NumberFormat = [Ô]dd/mm/yyyy[Ô]
End With
No exemplo enviado está selecionando a coluna A inteira para formatar como moeda, depois seleciona a coluna B para formatar como Data.
No seu codigo vc pode formatar assim que vc preenche estes campos.
.Cells(i + 1, x + 1) = Lista.ListItems(i).Text
.Columns(i + 1, x + 1).Select
.Selection.NumberFormat = [Ô]dd/mm/yyyy[Ô]
Testa ai e posta se funcionou.
é simples trabalhar com formatação do campos no excel com VBA.
segue o exemplo abaixo.
With vObjExcel
.Columns([Ô]A:A[Ô]).Select
.Selection.NumberFormat = [Ô]$#,##0.00[Ô]
.Columns([Ô]B:B[Ô]).Select
.Selection.NumberFormat = [Ô]dd/mm/yyyy[Ô]
End With
No exemplo enviado está selecionando a coluna A inteira para formatar como moeda, depois seleciona a coluna B para formatar como Data.
No seu codigo vc pode formatar assim que vc preenche estes campos.
.Cells(i + 1, x + 1) = Lista.ListItems(i).Text
.Columns(i + 1, x + 1).Select
.Selection.NumberFormat = [Ô]dd/mm/yyyy[Ô]
Testa ai e posta se funcionou.
Tiago, o .colums(...).select gerou um erro...
coloquei .cells(....).select e deu certinho...
só aproveitando o tópico, vc saberia me indicar onde consigo mais informações sobre formatação de dados, bordas de tabelas, gráficos, etc...
já dei uma olhada no google e aqui no vbmania, mas não encontrei nenhum material legal !
Obrigado!
coloquei .cells(....).select e deu certinho...
só aproveitando o tópico, vc saberia me indicar onde consigo mais informações sobre formatação de dados, bordas de tabelas, gráficos, etc...
já dei uma olhada no google e aqui no vbmania, mas não encontrei nenhum material legal !
Obrigado!
Ferdead,
Bom o jeito mais fácil que eu acho de programar em vba é trabalhar via macro no excel , word e ppt, ele gera automaticamente os codigo em vb.
Mas tome cuidado que com o tipo de versão do office que vc estará usando para gerar as macros, pois da ocorre muitos erros de versões, principalmente com o 2007. O correto é ir fazendo e testando em duas versões diferentes como 2003 e 2007.
Thiago
Bom o jeito mais fácil que eu acho de programar em vba é trabalhar via macro no excel , word e ppt, ele gera automaticamente os codigo em vb.
Mas tome cuidado que com o tipo de versão do office que vc estará usando para gerar as macros, pois da ocorre muitos erros de versões, principalmente com o 2007. O correto é ir fazendo e testando em duas versões diferentes como 2003 e 2007.
Thiago
Tópico encerrado , respostas não são mais permitidas