Fórum Excel Bácico, Avançado e Vba
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  Entrar  

 

 Manipular String com VBA

Ir para baixo 
2 participantes
AutorMensagem
JoaoCampelo




Mensagens : 17
Data de inscrição : 04/02/2013

Manipular String com VBA Empty
MensagemAssunto: Manipular String com VBA   Manipular String com VBA EmptyTer Fev 05, 2013 11:06 pm

Boa tarde,

Tenho uma rotina autolisp que envia relação de materiais para um bloco de notas, criando o bloco e o salvando com o nome LISTA - nome.dwg menos o .dwg.
Exemplo TXT:
Tubo de PVC rígido soldável Marrom (barra 6m) - 20mm A.F.
2 Tubo de PVC rígido soldável Marrom (barra 6m) - 20mm A.F.
1 Tubo de PVC rígido soldável Marrom (barra 6m) - 110mm A.F.
2 Tubo de FG NBR 5680 / 5590 / DIN 2240 - 1/2" INC
1 Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 100mm E.S. E A.P.
Eu encontrei uma macro pronta em vba que importa essas linhas, eu estou tentando adaptá-la para quando rodar a macro na planilha modelo, crie uma nova planilha com o nome: LISTA - nometxt(-.txt).xls, tenho também que separar esse planilha em sheets de acordo com o código que termina a frase importada do txt, exemplo: INC E.S. E A.P. A.F. A.Q. - só esses 4 e colocar essa relação separando o texto assim: TEXTO(sem número índice e sem a sigla que denomina a sheet)|QUANTIDADE(número índice)
Estou tendo problema em manipular a string, meu código ficou assim:

Private Sub ImportarTXTListaMaterial_Click()
Dim Campos As Variant
Dim Arquivo As String
Dim i As Long, j As Long, a As Long
Dim Contador As Integer
Contador = 0
Dim Z As Integer
Dim oApp As Excel.Application
Dim oWks As Excel.Workbook
Dim filename As Variant
Dim quant As Variant
Dim Celula As Variant
Dim Colunasb As Range
Dim Colunasc As Range
Dim Colunasd As Range
Dim aux1 As String
Dim aux2 As String
Dim aux3 As String
Dim ca As String
Dim cb As String
Dim aspas As String
Dim layermm As String
Dim layeraspas As String
Dim quantidade As String
Dim tamanho As Long
Dim arra(32) As String
Dim conarra(32) As Long


'Array com a discriminação de cada elemento na Lista De Materiais

arra(1) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 3/4 Chr(34) INC"
arra(2) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 1 Chr(34) INC"
arra(3) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 1.1/4 Chr(34) INC"
arra(4) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 1.1/2 Chr(34) INC"
arra(5) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 2 Chr(34) INC"
arra(6) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 2.1/2 Chr(34) INC"
arra(7) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 3 Chr(34) INC"
arra(Cool = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 4 Chr(34) INC"
arra(9) = "Tubo de FG NBR 5680 / 5590 / DIN 2440 - 6 Chr(34) INC"
arra(10) = "Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 40mm E.S. E A.P."
arra(11) = "Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 50mm E.S. E A.P."
arra(12) = "Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 75mm E.S. E A.P."
arra(13) = "Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 100mm E.S. E A.P."
arra(14) = "Tubo de PVC (NBR 5688) com ponta / bolsa - 6 metros - 150mm E.S. E A.P."
arra(15) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 20mm A.F."
arra(16) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 25mm A.F."
arra(17) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 32mm A.F."
arra(18) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 40mm A.F."
arra(19) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 50mm A.F."
arra(20) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 60mm A.F."
arra(21) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 75mm A.F."
arra(22) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 85mm A.F."
arra(23) = "Tubo de PVC rígido soldável Marrom (barra 6m) - 110mm A.F."
arra(24) = "Tubo de Cobre - Classe E - Pressão de Serviço 14,0 kg/cm² - 104mm A.Q."
arra(25) = "Tubo de Cobre - Classe E - Pressão de Serviço 19,0 kg/cm² - 79mm A.Q."
arra(26) = "Tubo de Cobre - Classe E - Pressão de Serviço 20,0 kg/cm² - 66mm A.Q."
arra(27) = "Tubo de Cobre - Classe E - Pressão de Serviço 21,0 kg/cm² - 54mm A.Q."
arra(28) = "Tubo de Cobre - Classe E - Pressão de Serviço 24,0 kg/cm² - 42mm A.Q."
arra(29) = "Tubo de Cobre - Classe E - Pressão de Serviço 25,0 kg/cm² - 35mm A.Q."
arra(30) = "Tubo de Cobre - Classe E - Pressão de Serviço 26,0 kg/cm² - 28mm A.Q."
arra(31) = "Tubo de Cobre - Classe E - Pressão de Serviço 34,0 kg/cm² - 22mm A.Q."
arra(32) = "Tubo de Cobre - Classe E - Pressão de Serviço 41,0 kg/cm² - 15mm A.Q."

'Array com a quantidade de cada elemento na Lista De Materiais
For conarra(a) = 0 To UBound(conarra)
conarra(a) = 0
Next

'Contador de array com a discriminação dos materiais
a = 0
'Contador de array com quantidade dos materiais
con = 0
'Contador de linhas
i = 2
'abre um "mini" explorer de arquivos
Arquivo = Application.GetOpenFilename("Arquivos Texto(*.txt), *.txt")
'retorna o nome do arquivo aberto
filename = Application.GetOpenFilename(, , "Select Programme")
filename = Mid(filename, InStrRev(filename, "\") + 1)
'abre o arquivo texto
Open Arquivo For Input As #1
'Novo arquivo excel
Set oApp = New Excel.Application
Set oWks = oApp.Workbooks.Add
oWks.SaveAs "C:\Autodesk\AutoCAD_2012_English_Win_64bit\Minhas Rotinas\filename.xls"
ActiveSheet.Name = "Plan1"
Worksheets("Plan1").Activate
Sheets.Add
ActiveSheet.Name = "INC"
Sheets("INC").Move After:=Sheets("Plan1")
Sheets.Add
ActiveSheet.Name = "E.S. E A.P."
Sheets("E.S E A.P.").Move After:=Sheets("INC")
Sheets.Add
ActiveSheet.Name = "A.F."
Sheets("A.F.").Move After:=Sheets("E.S. E A.P.")
Sheets.Add
ActiveSheet.Name = "A.Q."
Sheets("A.Q.").Move After:=Sheets("A.F.")
'Trabalhando na sheet plan1
Set Colunasa = Range("A1:A20000")
Set Colunasb = Range("B1:B20000")
Set Colunasc = Range("C1:C20000")
Set Colunasd = Range("D1:D20000")
Set Colunase = Range("E1:E20000")

'Enquanto não chega ao fim do arquivo texto
While Not (EOF(1))
'Captura 1 linha e armazena na variável Linha
Line Input #1, linha
'separa os campos e armazena na variável "Campos"
Campos = Split(linha, "")
'Distribui os campos na planilha
For j = 0 To UBound(Campos)
Cell(i, j + 1).Value = Campos(j)
Next
'incrementa uma linha
i = i + 1
Wend
'fecha o arquivo texto
Close #1

For i = 2 To UBound(Campos)
ca = Cell(AI).Value
cb = Cell(BI).Value
cc = Cell(CI).Value
cd = Cell(DI).Value
ce = Cell(EI).Value
aux1 = InStr(ca, "Tubo", 1)
quantidade = Left(ca, (aux1 - 2))
aux2 = InStr(ca, "mm", 1)
aspas = Chr(34)
aux3 = InStr(ca, aspas, 1)
tamanho = Len(ca)
layermm = Right(ca, ((tamanho - aux2) - 2))
layeraspas = Right(ca, ((tamanho - aux3) + 1))
cb = Right(ca, ((tamanho - aux1) + 1))
'cb = quantidade
'cc = Left(ca, ((tamanho - aux1) + 1))
cc = layermm
cd = layeraspas

For a = 0 To UBound(arra)
If arra(a) = cb Then
conarra(a) = conarra(a) + 1
End If
Next






If (cc Or cd) = INC Then
ActiveSheet.Name = "INC"
End If





End Sub



Mas não está compilando. Ainda não tenho definido toda a lógica, mas não sei se a maneira que estou colocando os comandos e funções está correto. Tive VB há muitos anos na faculdade e estou bem enferrujado, se alguém puder me ajudar! Obrigado!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Manipular String com VBA Empty
MensagemAssunto: Re: Manipular String com VBA   Manipular String com VBA EmptyTer Fev 05, 2013 11:08 pm

Boa noite!!

Já foi respondido em:
http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=7011

Att
Ir para o topo Ir para baixo
JoaoCampelo




Mensagens : 17
Data de inscrição : 04/02/2013

Manipular String com VBA Empty
MensagemAssunto: Re: Manipular String com VBA   Manipular String com VBA EmptyQua Fev 06, 2013 12:54 pm

Muito obrigado!
Ir para o topo Ir para baixo
JoaoCampelo




Mensagens : 17
Data de inscrição : 04/02/2013

Manipular String com VBA Empty
MensagemAssunto: Resolvido   Manipular String com VBA EmptyQua Fev 06, 2013 1:20 pm

Resolvido!
Ir para o topo Ir para baixo
Conteúdo patrocinado





Manipular String com VBA Empty
MensagemAssunto: Re: Manipular String com VBA   Manipular String com VBA Empty

Ir para o topo Ir para baixo
 
Manipular String com VBA
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» Manipular janela pop up do internet explorer pelo VBA
» Trabalhando com String importada do .TXT
» Dúvida Gráficos Fonte de Dados Texto (String)

Permissões neste sub-fórumNão podes responder a tópicos
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: