Notifications
Clear all

Concatenar pedidos

6 Posts
2 Usuários
0 Reactions
2,069 Visualizações
(@caiocito)
Posts: 0
New Member
Topic starter
 

Olá pessoal, bom dia!

Meu problema é o seguinte: preciso concatenar todos os pedidos (coluna C) que aparecem para a mesma pasta (coluna A). Pode ser em outra planilha conforme o exemplo. Gostaria que fosse concatenado todos os pedidos pulando uma linha e inserindo um ";" entre os pedidos.
Acredito que seja um problema trivial para vocês, porém eu não consegui resolver sozinho. Me puderem me ajudar agradeço.

Obs: mesmo quando não houver pedidos, a pasta deve aparecer na tabela.

 
Postado : 28/09/2018 7:39 am
(@xlarruda)
Posts: 0
New Member
 

Não veio exemplo...

 
Postado : 28/09/2018 8:00 am
(@caiocito)
Posts: 0
New Member
Topic starter
 

Não veio exemplo...

Verifica se agora foi por gentileza. Obg.

 
Postado : 28/09/2018 8:24 am
(@xlarruda)
Posts: 0
New Member
 

Veja se é isso o que deseja:

 
Postado : 28/09/2018 8:53 am
(@caiocito)
Posts: 0
New Member
Topic starter
 

Veja se é isso o que deseja:

Show andré! É isso mesmo que eu precisava, porém temos um problema aqui. No exemplo funcionou perfeitamente. Mas minha base é muito grande. Tem por volta de 60mil linhas e o excel está demorando para processar os dados. Até agora nao consegui concluir o procedimento de arrastar a formula para baixo. Tem como resolver isto de uma forma mais rápida? Obrigado.

 
Postado : 02/10/2018 5:41 am
(@xlarruda)
Posts: 0
New Member
 

Talvez uma rotina direta possa deixar mais rápido o processo...
Veja se funciona:

Option Explicit
Option Compare Text

Sub Concatenar_Pedidos()
Dim w, ws As Worksheet
Dim ultcel, lastcel, i As Long
Dim cel As Range
Dim mystring As String

Application.ScreenUpdating = False

Set w = Sheets("pedidos")
Set ws = Sheets("tabela completa")
ultcel = ws.Range("A" & Rows.Count).End(xlUp).Row
lastcel = w.Range("A" & Rows.Count).End(xlUp).Row

    For Each cel In w.Range("A2:A" & lastcel)
        For i = ultcel To 3 Step -1
            If ws.Range("A" & i).Text = cel.Text And ws.Range("A" & i).Offset(0, 2).Value <> "" Then
                mystring = ws.Range("A" & i).Offset(0, 2).Text & vbNewLine & mystring
            End If
        Next i
            Select Case Len(mystring)
                Case Is > 1
                     cel.Offset(0, 1).Value = Mid(mystring, 1, WorksheetFunction.Search("", mystring, Len(mystring) - 1) - 1)
            End Select
       mystring = vbNullString
    Next

Set cel = Nothing

Application.ScreenUpdating = True

End Sub

Segue também em anexo:

 
Postado : 02/10/2018 6:13 am