Página 1 de 1

Mesclar no VBA

Enviado: 06 Dez 2021 às 22:06
por RicardoGuitt
Olá noa noite!
Gostaria de saber se é possivel mesclar linhas a partir de uma informação na coluna A então mesclar as linhas de A:G
Mantendo o texto centralizado, qual seria essa função no VBA?

Re: Mesclar no VBA

Enviado: 06 Dez 2021 às 23:24
por osvaldomp
RicardoGuitt escreveu: 06 Dez 2021 às 22:06 ... então mesclar as linhas de A:G ~~~> mesclar A:G significa mesclar colunas e não mesclar linhas. ;)
#

Mesclar células no Excel não é uma manobra bem-vinda ...
Segue um comando básico pois você não forneceu informações suficientes para a elaboração de uma solução.
Código: Selecionar todos
 If Range("A5").Value = "BozoNeverMore" Then
  Range("A5:G5").Merge
  Range("A5:G5").HorizontalAlignment = xlCenter
 End If
#
Segue uma alternativa sem mesclar células.
Código: Selecionar todos
 If Range("A5").Value = "BozoNeverMore" Then
  Range("A5:G5").HorizontalAlignment = xlCenterAcrossSelection
 End If

Re: Mesclar no VBA

Enviado: 07 Dez 2021 às 01:51
por RicardoGuitt
osvaldomp, vou tentar deixar mais claro, o que eu preciso é que se em qualquer linha da coluna 1 (A) eu digitar um texto especifico então o texto fique centralizado entre as colunas A:G
Ex: Ricardo na linha 2 da coluna A
Então o nome Ricardo ficará centralizado na linha 2 de A2:G2
Se for na linha 5 a mesma coisa A5:G5.

Re: Mesclar no VBA

Enviado: 07 Dez 2021 às 09:02
por osvaldomp
Instale uma cópia de um dos códigos abaixo no módulo da planilha de interesse.
Para acessar o módulo clique com o direito na guia da planilha e escolha Exibir Código.

opção1 - mesclar (não recomendável)
Código: Selecionar todos
Private  Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Column > 1 Then Exit Sub
 If Target.Value = "Ricardo" Then
   Cells(Target.Row, 1).Resize(, 7).Merge
   Cells(Target.Row, 1).Resize(, 7).HorizontalAlignment = xlCenter
  End If
End Sub
#

opção2 - sem mesclar porém com efeito visual semelhante
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If targe.Count > 1 Then Exit Sub
 If Target.Column > 1 Then Exit Sub
 If Target.Value = "Ricardo" Then Cells(Target.Row, 1).Resize(, 7).HorizontalAlignment = xlCenterAcrossSelection
End Sub

Re: Mesclar no VBA

Enviado: 07 Dez 2021 às 18:58
por RicardoGuitt
osvaldomp,
Eu não consegui, não funcionou...
Segue anexo a planilha em questão.
Onde estão os nomes é o que eu gostaria
de centralizar nas colunas e linhas.

Re: Mesclar no VBA

Enviado: 07 Dez 2021 às 20:43
por osvaldomp
RicardoGuitt escreveu: 07 Dez 2021 às 18:58 Eu não consegui, não funcionou...
osvaldomp escreveu:Instale uma cópia de um dos códigos abaixo no módulo da planilha de interesse.
Você precisa instalar um dos códigos. Lembra disso?

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 00:06
por RicardoGuitt
@osvaldomp
Sim eu lembro, instalei os dois e nada aconteceu...

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 08:05
por osvaldomp
Se nada aconteceu então você instalou em lugar errado. 8-)

No arquivo que você postou não encontrei nenhum deles instalado. :?:

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 11:34
por RicardoGuitt
Eu estou começando com VBA muito recentemente, provavelmente foi isso… eu instalei a partir de um modulo
Na verdade em um deles deu erro 424 que eu não faço a mimima ideia de como resolver e em outra situação até funcionou mas sonente em uma inica linha e fazendo com a formula procv não funcionasse por completo…
E sim no arquivo que enviei não tem nenhum instalado, foi mais para mostrar o que eu quero, mas obrigado @osvaldomp vou continuar tentando.

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 13:18
por RicardoGuitt
@osvaldomp
Consegui dessa forma abaixo:
If Target.Count > 1 Then Exit Sub
If Target.Column > 1 Then Exit Sub
If Target.Value = "RICARDO" Then Cells(Target.Row, 1).Resize(, 7).HorizontalAlignment = xlCenterAcrossSelection
End Sub

Talvez ou com certeza a planilha não está com a macro dá melhor forma mas funcionou!
Segue anexo.

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 13:23
por RicardoGuitt
Muito Obrigado @osvaldomp

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 14:44
por osvaldomp
Olá, @RicardoGuitt .

No caso de múltiplos nomes, ao invés de repetir as instruções para cada um dos nomes, é possível montar uma matriz com todos os nomes e colocar as instruções uma única vez. Veja abaixo.
Código: Selecionar todos
 Dim nomes As Variant
  If Target.Column > 1 Then Exit Sub
  nomes = Array("IRINEU", "LEON", "PAULO", "RICARDO", "STEPHANIE")
   If Not IsError(Application.Match(Target.Value, nomes, 0)) Then
    Cells(Target.Row, 1).Resize(, 7).HorizontalAlignment = xlCenterAcrossSelection
   End If

Re: Mesclar no VBA

Enviado: 08 Dez 2021 às 17:26
por RicardoGuitt
Boa Tarde @osvaldomp
Ficou perfeito!
Você é Fera!!!
Muito Obrigado!