Página 1 de 1

Automaticamente mesclar células em casos de texto igual

Enviado: 30 Nov 2015 às 10:17
por Signori0804
Bom dia,

Estou com problema para rodar minha Macro e não sei o porquê.
Basicamente eu gostaria de comparar o texto entre duas células e, em caso de serem iguais, rodar uma série de mesclagens de células no mesmo conjunto de linha.
Segue o código criado:

Dim i As Integer

For i = 2 To i = 1000

If [Ai].Text = [A(i-1)].Text Then
Range("[A(i-1)]:[Ai]").Select
Selection.Merge
Range("[B(i-1)]:[Bi]").Select
Selection.Merge
Range("[C(i-1)]:[Ci]").Select
Selection.Merge
Range("[H(i-1)]:[Hi]").Select
Selection.Merge
Range("[I(i-1)]:[Ii]").Select
Selection.Merge
Range("[J(i-1)]:[Ji]").Select
Selection.Merge
Range("[K(i-1)]:[Ki]").Select
Selection.Merge
Range("[L(i-1)]:[Li]").Select
Selection.Merge
Range("[K(i-1)]:[Ki]").Select
Selection.Merge
Range("[M(i-1)]:[Mi]").Select
Selection.Merge
End If

Next



Obrigado pela ajuda desde já.

Att.

Rodrigo Signori

Automaticamente mesclar células em casos de texto igual

Enviado: 30 Nov 2015 às 12:13
por Parkeless
Boa tarde,

Cara, nunca vi essa forma de referência a um range, e testando aqui não consegui fazer funcionar; isso está certo?

Range("[A(i-1)]:[Ai]")

Em casos assim geralmente faço, Range("A" & i-1 & ":A" & i & "").

Além disso, vi uma falha no início; ao invés de For i = 2 To i = 1000, escreva, For i = 2 to 1000.

Se ainda assim não der certo, posta a planilha com os dados originais VS o que devem ser no final, que bolo algo e te mando.

Automaticamente mesclar células em casos de texto igual

Enviado: 30 Nov 2015 às 15:09
por Signori0804
Parkeless,

Obrigado pela resposta, mas ainda não deu!
Basicamente eu gostaria de que meu programa analisasse a tabela abaixo, por exemplo, e que as linhas repetidas fossem mescladas a fim de que eu obtivesse uma planilha sem repetições nesses campos (Vendas 122 e 128 ficariam com linhas mescladas).

122 II Gabriel II COOPERATIVA REG. AGROP. SANTA RITA DE CALDAS LTDA
122 II Gabriel II COOPERATIVA REG. AGROP. SANTA RITA DE CALDAS LTDA
123 II Luiz II PA PNEUS LTDA
124 II William II POUSO CAP LTDA
125 II William II USINAGEM SAO CARLOS LTDA - ME
126 II Otávio II CENTRO AUTOMOTIVO VAREJÃO
128 II Otávio II LUIZ ANTONIO DE ALMEIDA
128 II Otávio II LUIZ ANTONIO DE ALMEIDA
128 II Otávio II LUIZ ANTONIO DE ALMEIDA
130 II William II CLIMA MINAS LTDA - EPP


Eu acabei modificando o código de acordo com suas dicas e algumas coisas que vi na net e está, no momento, sem funcionar, assim:

Dim i As Integer
Dim k As Integer

i = 2
k = 1

For i = 2 To 1000

If ["A"&k].Text = ["A"&i].Text Then
Range(["A"&k] & ["A"&i]).Select
Selection.Merge
Range(["B"&k] & ["B"&i]).Select
Selection.Merge
Range(["C"&k] & ["C"&i]).Select
Selection.Merge
Range(["H"&k] & ["H"&i]).Select
Selection.Merge
Range(["I"&k] & ["I"&i]).Select
Selection.Merge
Range(["J"&k] & ["J"&i]).Select
Selection.Merge
Range(["K"&k] & ["K"&i]).Select
Selection.Merge
Range(["M"&k] & ["M"&i]).Select
Selection.Merge
Else
End If
i = i + 1
k = k + 1

Next



Obrigado!

Re: Automaticamente mesclar células em casos de texto igual

Enviado: 30 Nov 2015 às 15:54
por alexandrevba
Boa tarde!!

Eu não entendi, seria algo assim?
Código: Selecionar todos
Sub AleVBA_976()
    Dim lRow As Long
    lRow = Cells(Rows.Count, "C").End(xlUp).Row
    Application.DisplayAlerts = False
    For I = lRow To 2 Step -1
        If Cells(I, 1) = Cells(I - 1, 1) Then
            Range(Cells(I, 1), Cells(I - 1, 1)).Merge
            Range(Cells(I, 2), Cells(I - 1, 2)).Merge
            Range(Cells(I, 3), Cells(I - 1, 3)).Merge
        End If
    Next I
    Application.DisplayAlerts = True
End Sub