- 28 Jan 2020 às 15:40
#51994
Prezados, boa tarde!
Estou fazendo uma macro, e tranquei no código, procurei diversos tópicos parecidos mas não consegui sanar minha dúvida. O que eu preciso é de uma macro que separe o texto informado em um Textbox e coloque nas colunas a, b e c.
Obs: Parte 1 resolvido, novo problema no EDIT.
Parte 1
Ex.:
Texto colocado no Text box:
MGLU3 C 600 250250
PETR4 C 600 250250
SUZB3 C 500 250250
RENT3 C 600 250250
CVCB3 C 200 250250
texto na coluna A = "MGLU3" coluna B 'C" coluna C "600"
e o código 250250 seria apagado ou utilizado como indicador de quebra de linha, porem o excel está identificando como parte da próxima linha "250250PTR4
O código deverá copiar as 3 primeiras informações e colar em diferentes colunas de uma linha e ao ir pra próxima iniciar em uma nova linha.
Ex:
[A1]-------[B1]-------[C1]
MGLU3--- C --------600
[A2]-------[B2]------[C2]
PETR4---- C ------ 600
.....
Através do fórum já consegui fazer um pouco do código para separar o texto, a planilha esta em anexo.
Grato pela atenção de todos.
Edit:
Consegui fazer um código, acho que ele está bem bagunçado, fiquem a vontade para ar
ruma-lo.
Na forma como tá, ele está colocando na planilha em ordem, porem agora queria colocar os resultados em células específicas.
Ex: Todos os primeiros valores de cada linha vão ficar sempre na coluna "C" variando apenas a linha;
todos os segundos valores vão ficar na coluna "A" variando apenas a linha;
Todos os terceiros valores ficariam na coluna "D".
Ficando assim:
[A1]------[B1]------[C1]
C ----- MGLU3 -- 600
[A2]------[B2]------[C2]
C ------ PETR4--- 600
Segue código.
Sub CommandButton1_Click()
'-----------------------------------------
'ADICIONAR RAPIDO
'-----------------------------------------
'----------------------------------------
'ideia do código
'----------------------------------------
'texo na box
'MGLU3 C 600 250250
'PETR4 C 600 250250
'SUZB3 C 500 250250
'RENT3 C 600 250250
'CVCB3 C 200 250250
'código
' separar o texto até o delimitador "250250"
' se chegar no código, iniciar na proxima linha
' cadastrar nas celulas a, o primeiro texto, b o segundo, c o terceiro
' cadastrar a proxima linha
Dim CodCliente As String
Dim a() As String
Dim b() As String
Dim p() As String
Dim Vvalor As Integer
texto = TextBox1
CodCliente = 250250 'vai ser colocado manual em txtbox
y = Split(texto, CodCliente) ' separa texto que tem o valor do codigo do cliente
ocorrencia = UBound(y) ' conta quantas vezes foram ocorreram o cod do cliente para repetir o for
ocorrencia2 = ocorrencia * 2
Range("A1").Select
For i = 0 To ocorrencia ' repete o split pelo numero de ocorrencias do codigo do cliente
b() = Split(texto, CodCliente) ' separa o texto sem o cod cliente
For Vvalor = 0 To 3
p() = Split(b(i), " ")
Planilha1.Select
Ulinha = Range("c1000000").End(xlUp).Row
'adicionar carteira
On Error Resume Next
ActiveCell.Offset(Ulinha, Vvalor) = p(Vvalor)
On Error GoTo 0
Next
Next i
End Sub
Grato novamente pela atenção de todos!
Estou fazendo uma macro, e tranquei no código, procurei diversos tópicos parecidos mas não consegui sanar minha dúvida. O que eu preciso é de uma macro que separe o texto informado em um Textbox e coloque nas colunas a, b e c.
Obs: Parte 1 resolvido, novo problema no EDIT.
Parte 1
Ex.:
Texto colocado no Text box:
MGLU3 C 600 250250
PETR4 C 600 250250
SUZB3 C 500 250250
RENT3 C 600 250250
CVCB3 C 200 250250
texto na coluna A = "MGLU3" coluna B 'C" coluna C "600"
e o código 250250 seria apagado ou utilizado como indicador de quebra de linha, porem o excel está identificando como parte da próxima linha "250250PTR4
O código deverá copiar as 3 primeiras informações e colar em diferentes colunas de uma linha e ao ir pra próxima iniciar em uma nova linha.
Ex:
[A1]-------[B1]-------[C1]
MGLU3--- C --------600
[A2]-------[B2]------[C2]
PETR4---- C ------ 600
.....
Através do fórum já consegui fazer um pouco do código para separar o texto, a planilha esta em anexo.
Grato pela atenção de todos.
Edit:
Consegui fazer um código, acho que ele está bem bagunçado, fiquem a vontade para ar
ruma-lo.
Na forma como tá, ele está colocando na planilha em ordem, porem agora queria colocar os resultados em células específicas.
Ex: Todos os primeiros valores de cada linha vão ficar sempre na coluna "C" variando apenas a linha;
todos os segundos valores vão ficar na coluna "A" variando apenas a linha;
Todos os terceiros valores ficariam na coluna "D".
Ficando assim:
[A1]------[B1]------[C1]
C ----- MGLU3 -- 600
[A2]------[B2]------[C2]
C ------ PETR4--- 600
Segue código.
Sub CommandButton1_Click()
'-----------------------------------------
'ADICIONAR RAPIDO
'-----------------------------------------
'----------------------------------------
'ideia do código
'----------------------------------------
'texo na box
'MGLU3 C 600 250250
'PETR4 C 600 250250
'SUZB3 C 500 250250
'RENT3 C 600 250250
'CVCB3 C 200 250250
'código
' separar o texto até o delimitador "250250"
' se chegar no código, iniciar na proxima linha
' cadastrar nas celulas a, o primeiro texto, b o segundo, c o terceiro
' cadastrar a proxima linha
Dim CodCliente As String
Dim a() As String
Dim b() As String
Dim p() As String
Dim Vvalor As Integer
texto = TextBox1
CodCliente = 250250 'vai ser colocado manual em txtbox
y = Split(texto, CodCliente) ' separa texto que tem o valor do codigo do cliente
ocorrencia = UBound(y) ' conta quantas vezes foram ocorreram o cod do cliente para repetir o for
ocorrencia2 = ocorrencia * 2
Range("A1").Select
For i = 0 To ocorrencia ' repete o split pelo numero de ocorrencias do codigo do cliente
b() = Split(texto, CodCliente) ' separa o texto sem o cod cliente
For Vvalor = 0 To 3
p() = Split(b(i), " ")
Planilha1.Select
Ulinha = Range("c1000000").End(xlUp).Row
'adicionar carteira
On Error Resume Next
ActiveCell.Offset(Ulinha, Vvalor) = p(Vvalor)
On Error GoTo 0
Next
Next i
End Sub
Grato novamente pela atenção de todos!
Você não está autorizado a ver ou baixar esse anexo.