Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Dúvida em concatenar células via Macro

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
tobias.comim
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Jul 19, 2011 9:41 am

Dúvida em concatenar células via Macro

Mensagem por tobias.comim »

Prezados,

sou um leitor assíduo do fórum, porém é a minha primeira participação.

Meu problema: preciso gerar um arquivo txt apartir de uma macro, onde o resultado é:
concatenação das seguintes células/range:
planilha.AlocGerais, célula B4;
planilha ED, range células b3 até ultima preenchida
range células z3 até ultima preenchida
mais as constantes: r4, ent, traco.

Fiz da seguinte forma:
Sub Gerar_EDs_CP()

Dim b4 As Range, z3 As Range, b3 As Range, inicio As Range
Dim inib3 As Range, iniz3 As Range
Const r4 As String = ":BOOL;"
Const prefCP As String = "CTR"
Const traco As String = "_"
Const ent As String = "_ENT AT"
Dim Destino_Arquivo, Valor_Celulaz3, Valor_Celulab3 As String
Dim i As Integer
Dim j As Range
Dim k As Range
Dim qtd_real As Range
Dim a, Num_Arquivo, Cont_Coluna, Cont_linha, larg_campo As Integer

Destino_Arquivo = ActiveWorkbook.Path & "/1.txt"
'Obter número do identificador livre do arquivo seguinte.
Num_Arquivo = FreeFile()

' Tentativa de abrir o arquivo de destino
Open Destino_Arquivo For Output As #Num_Arquivo

' Se ocorrer um erro vai relatar
If Err <> 0 Then
MsgBox "Não encontrou o arquivo " & Destino_Arquivo
Selection.Activate
End
End If


Worksheets("AlocGerais").Activate

Set b4 = Range("B4")
Set qtd_real = Range("B102")



Worksheets("ED").Activate
Set z3 = Range("Z3")
Set b3 = Range("B3")
'Set inicio = Range("au3:au5000")
Set inib3 = Range("b3:b5000")
Set iniz3 = Range("z3:z5000")


For Each k In inib3 ' varre as celulas da planilha.coluna ED.B3
For Each j In iniz3 ' varre as celulas da planilha.coluna ED.Z3
If k.Value <> 0 Then ' se estiver preenchida
Valor_Celulab3 = k.Text 'atribui o valor preenchido a variavel

If j.Value <> 0 Then ' se estiver preenchida
Valor_Celulaz3 = j.Text 'atribui o valor preenchido a variavel

End If
End If

Print #Num_Arquivo, Format$(b4 & traco & Valor_Celulab3 & ent & Valor_Celulaz3 & r4)

If k.Value = Empty Then ' Se a linha estiver vazia sai do laço
'MsgBox "Ultima linha"

Exit For
Exit Sub
End If

If j.Value = Empty Then ' Se a linha estiver vazia sai do laço
'MsgBox "Ultima linha"

Exit For
End If

Next j
Next k



' concatenação final para .txt
'MsgBox (b4 + traco + Valor_Celulab3 + ent + Valor_Celulaz3 + r4)

Close #Num_Arquivo
MsgBox ("Arquivo TXT gerado com êxito.")


End Sub
[/i][/i]

Coloco em anexo a planilha, para facilitar a visualização do problema.
O resultado da concatenação deveria ser identico a coluna AU.
Anexos
planilha_teste.zip
(97.53 KiB) Baixado 218 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


tobias.comim
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Jul 19, 2011 9:41 am

Re: Dúvida em concatenar células via Macro [Resolvido]

Mensagem por tobias.comim »

Prezados,

cosneguir resolver a minha questão.
Grato a todos os que visualizaram o problema.


Sds,


Responder