COMO SELECIONAR E USAR O ARQUIVO ABERTO VBA EXCEL

ADRIANOX 21/02/2014 08:58:53
#435071
Amigos, bom dia!

Estou fazendo uma Macro no VBA Excel para abrir uma arquivo Txt.

A abertura do arquivo eu já consegui e aprendi aqui no VBmania.

Comando:

Shell [Ô]C:\Windows\System32\Notepad.exe K:\DAF\CONTABILIDADE\Pasta Usuários\Adriano\03 - Macros\Fiscal\SISCOSERV[Ô], vbMaximizedFocus

Problema:

O problema é que quando eu abro o arquivo txt eu perco a referencia. Pois a intenção de abrir o arquivo txt é copiar e colar dados da planilha em excel para o txt e depois salva-lo com a informação que eu copiei e colei do excel.

Solução Desejada:

Eu preciso além de abri-lo manter ele selecionado para

Copiar as informações desejadas.
Em seguida Salvar o arquivo txt no mome desejado e diretório desejado.

Grato.

ADRIANOX 21/02/2014 09:19:53
#435072
Amigos do VBmania, Apenas complementando o problema na hora de salvar.

Estou com um problema em uma das minhas macros. Estou precisando abrir um txt e copiar e colar as informações da planilha excel no txt e salva-lo como .XML e com codificação: UTF-8.

Abertura do Arquivo:

A abertura do arquivo eu aprendi aqui no VBMANIA o seguinte comando:

Shell [Ô]C:\Windows\System32\Notepad.exe K:\DAF\CONTABILIDADE\Pasta Usuários\Adriano\03 - Macros\Fiscal\SISCOSERV[Ô], vbMaximizedFocus

Problema: O comando funciona e abre o arquivo desejado, porém, ele perde a referencia, ele abre mas, não fica com o programa selecionado para que eu possa executar o comando de colar no txt.

Solução Desejada:

Abrir o arquivo txt e copiar e colar as informações da planilha excel.
Em seguida salvar o txt em formato XML e com codificação: UTF-8.

Aos salvar quero escolher o nome no qual o arquivo irá ser salvo.
KERPLUNK 21/02/2014 11:36:20
#435079
Amigo, vejo pela sua pergunta que você é bem iniciante ainda. Gosto de ajudar nesses casos. Portanto se prepare para ler um pouco:
Por ser ainda iniciante, você está com a [Ô]visão de usuário[Ô], onde para transferir conteúdo de um arquivo para o outro, você usa o programa específico para abri-lo, seleciona o texto desejado e cola no outro. Acontece que não é assim que fazemos, digo, nós programadores.
Nesse caso, você vai fazer o que o notepad e o excel fazem nos seus processos de abertura. Para o caso de abrir um arquivo texto, seria:

Dim arquivo As String
Dim conteudo As String
Open [Ô]K:\DAF\CONTABILIDADE\Pasta Usuários\Adriano\03 - Macros\Fiscal\SISCOSERV[Ô] For Input As #1
Do While Not EOF(1)
Line Input #1, conteudo
arquivo = arquivo & conteudo
Loop
Close #1

Analisando linha por linha:
As duas primeiras são de declarações de variáveis que vão ler o conteúdo do arquivo.

Open [Ô]c:\caminho\arquivo.txt[Ô] For Input As #1
Esta linha, seria o equivalente de abrir o notepad, clicar no menu abrir e especificar o arquivo.

O bloco de Loop abaixo disso, percorre o arquivo inteiro, lendo cada linha que é representada pela variável [Ô]conteudo[Ô], e em seguida concatenamos(juntamos textos), das variáveis arquivo e conteudo. Com essa concatenação feita em cada linha, no final, a variável [Ô]arquivo[Ô], vai conter todas as linhas do arquivo e ela será o que você vai colar no excel(ou vice versa).

O processo para com o arquivo do excel é bem semelhante à isso, mas primeiro, veja se consegue esse funcionar.
ADRIANOX 21/02/2014 13:18:33
#435082
KERPLUNK, boa tarde!

Obrigado por seu retorno, mas, o código que você informou, até faz a leitura e o processamento, porém, não aconteceu nada e o txt também não abriu.

Também não houve a ação de colar a informação.

Eu já fiz a macro que trabalhou as informações no Excel e inclusive a ação de copiar já esta pronta.

O que estou precisando é abrir o txt (Isso eu já consegui, mas, esta perdendo a referencia) e colar as informações no txt.

Depois, preciso salvar essas informações com o seguinte formato.

.XML e com codificação: UTF-8.

Nova explicativa:

Abertura do Arquivo:

A abertura do arquivo eu aprendi aqui no VBMANIA o seguinte comando:

Shell [Ô]C:\Windows\System32\Notepad.exe K:\DAF\CONTABILIDADE\Pasta Usuários\Adriano\03 - Macros\Fiscal\SISCOSERV[Ô], vbMaximizedFocus

Problema: O comando funciona e abre o arquivo desejado, porém, ele perde a referencia, ele abre mas, não fica com o programa selecionado para que eu possa executar o comando de colar no txt.

Solução Desejada:

Abrir o arquivo txt e copiar e colar as informações da planilha excel.
Em seguida salvar o txt em formato XML e com codificação: UTF-8.

Aos salvar quero escolher o nome no qual o arquivo irá ser salvo.
KERPLUNK 21/02/2014 13:27:29
#435084
Então basicamente você quer é salvar o conteúdo do excel em um XML, não entendi porque tem que ter o arquivo de texto...
ADRIANOX 21/02/2014 13:28:48
#435085
KERPLUNK, boa tarde!

Agora eu entendi o que você quis realizar com o código que enviou, o problema que ele esta lendo o txt, mas, o txt esta vazio, por isso que ele não tras informação quando executa.

As informações estão no Excel e serão coladas e salvas no txt conforme a formatação informada.

Veja, existe uma sheet no Excel, na propria planilha onde esta a macro chamada Base

ele irá selecionar as linhas 1 ao 18 e copiar essas informações e colar no txt.

veja, as informações baixo são as linhas 1 a 18 da planilha (sheet) no excel chamada Base.

essa é a informação que quero passar para o txt.

O codigo que você me enviou esta contando as informações do txt, mas, ele ainda esta vazio.

<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô] ?>
<IncluirRAS xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xsi:noNamespaceSchemaLocation=[Ô]incluir_RAS.xsd[Ô]>
<NumeroRASEmpresa>14/00013605</NumeroRASEmpresa>
<NomeVendedor>EUROP ASSISTANCE (AUSTRIA) VAMOS FILES</NomeVendedor>
<EnderecoVendedor>A-1220 WIEN</EnderecoVendedor>
<CodigoPaisVendedor>72</CodigoPaisVendedor>
<Operacao>
<NumeroServAdqEmpresa>13605</NumeroServAdqEmpresa>
<CodigoNbs>118054000</CodigoNbs>
<CodigoPaisDestino>105</CodigoPaisDestino>
<ModoPrestacao>1</ModoPrestacao>
<DataInicio>2014-02-04</DataInicio>
<DataConclusao>2014-02-04</DataConclusao>
<Valor>5663.43</Valor>
</Operacao>
<InfoComplementar>SERVIÇOS DE ASSISTÊNCIA AVCW-06</InfoComplementar>
<CodigoMoeda>220</CodigoMoeda>
</IncluirRAS>
ADRIANOX 21/02/2014 13:33:51
#435086
Citação:

:
Então basicamente você quer é salvar o conteúdo do excel em um XML, não entendi porque tem que ter o arquivo de texto...



Motivo:

é por que ele possui caracteres especiais e quando eu salvo do Excel direto no txt, onde já caracteres especiais como [Ô], ele me acrescenta aspas.

São exatamente as aspas que estão atrapalhando minha macro, pois essa informação com aspas é rejeitada pelo sistema da receita federal.

Agora, quando eu copio e colo diretamente no txt e salvo, ele não carrega essas aspas por causa dos caracteres especiais.

Veja como esta no arquivo do excel:

<?xml version=[Ô]1.0[Ô] encoding=[Ô]UTF-8[Ô] ?>
<IncluirRAS xmlns:xsi=[Ô]http://www.w3.org/2001/XMLSchema-instance[Ô] xsi:noNamespaceSchemaLocation=[Ô]incluir_RAS.xsd[Ô]>

Veja como ele salva no txt quando eu salvo diretamente do excel para txt

[Ô]<?xml version=[Ô][Ô]1.0[Ô][Ô] encoding=[Ô][Ô]UTF-8[Ô][Ô] ?>[Ô]
[Ô]<IncluirRAS xmlns:xsi=[Ô][Ô]http://www.w3.org/2001/XMLSchema-instance[Ô][Ô] xsi:noNamespaceSchemaLocation=[Ô][Ô]incluir_RAS.xsd[Ô][Ô]>[Ô]

Viu como ele me acrescentou as aspas?

KERPLUNK 21/02/2014 13:38:28
#435088
Certo, é isso mesmo, você quer salvar conteúdo do excel para um arquivo XML. Nesse caso, esqueça o txt, notepad e tudo mais. Você tem duas maneiras de fazer isso. Uma é uma macro no próprio excel para fazer isso. Outra é um programa que abra a planilha, pegue os dados e crie o XML.
Entenda uma coisa importante: XML não é simplesmente um arquivo txt.

Então o que você prefere? Com uma macro, vai ser mais [Ô]simples[Ô], mais fácil de entender o código, mas vai dar mais trabalho e fica mais difícil de fazer manutenção e detectar erros. Fazendo um programa para isso, fica tecnicamente um pouco mais complexo no começo, mas é muito mais seguro e mais fácil de se fazer manutenção
ADRIANOX 21/02/2014 13:38:30
#435089
Citação:

:
Então basicamente você quer é salvar o conteúdo do Excel em um XML, não entendi porque tem que ter o arquivo de texto...



Não estou conseguindo salvar do Excel diretamente no xml com as especificações necessárias.

Sempre quando vou salvar em xml no Excel ele dá erro e não processa o XML.

Quando eu jogo do Excel para o txt com a ação ou função de copiar e colar, não terá problemas com as aspas que o próprio programa inclui para manter as informações, quando salvo diretamente do excel para o txt.

Devido a esses motivos que estou querendo copiar e colar para o txt e só depois salvar as informações.
ADRIANOX 21/02/2014 13:45:14
#435090
[quote]:
Você tem duas maneiras de fazer isso. Uma é uma macro no próprio excel para fazer isso. Outra é um programa que abra a planilha, pegue os dados e crie o XML.
Entenda uma coisa importante: XML não é simplesmente um arquivo txt.

Então o que você prefere?

Bom, eu já tentei gerar diretamente no Excel no xml em SUPLEMENTOS > XML TOOLS, além de funcionar apenas na versão 2007, pois as demais versões superiores esta dando erro de usuário não definido.

Mesmo gerando esse XML diretamente do excel através do XML TOOLS, o sistema da receita esta dando o erro 5 e, quando eu faço o processo de copiar e colar no txt e arrumar as diferenças na mão, o arquivo processa normalmente pela receita.

Gostaria da linguagem VBA, pois não sei se vou ter dinheiro para pagar esse programa que gera o xml, no qual você citou, por isso estou recorrendo a macro em vba do excel.

Eu já trabalhei o arquivo todo, com a macro que eu fiz, mas, o processo de copiar do excel e colar no txt é manual, inclusive a ação de salvar com codificação: UTF-8.

Quando eu faço isso, a receita aceita e valida com sucesso as informações.

Grato.
KERPLUNK 21/02/2014 13:49:51
#435092
Ok, vejo que você não é um programador ainda, você é um usuário que está querendo automatizar alguma tarefa, muito boa iniciativa. Vamos lá:
Para gerar o XML, não precisa de nenhuma ferramenta especial, uma macro do excel vai dar conta. Do mesmo modo que mostrei a abertura do arquivo, também é possível fazer a [Ô]escrita[Ô], você pode percorrer os dados do excel e ir gravando no arquivo texto. Pode ser assim?
Página 1 de 2 [14 registro(s)]
Faça seu login para responder