Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Avatar do usuário
Por RicardoGuitt
Posts Avatar
#68202
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?
Por osvaldomp
#68203
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
RicardoGuitt, JCabral agradeceu por isso
Avatar do usuário
Por RicardoGuitt
Posts Avatar
#68204
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.
Por osvaldomp
#68207
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
Avatar do usuário
Por RicardoGuitt
Posts Avatar
#68213
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.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#68214
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?
RicardoGuitt agradeceu por isso
Por osvaldomp
#68216
Se nada aconteceu então você instalou em lugar errado. 8-)

No arquivo que você postou não encontrei nenhum deles instalado. :?:
RicardoGuitt agradeceu por isso
Avatar do usuário
Por RicardoGuitt
Posts Avatar
#68225
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.
Avatar do usuário
Por RicardoGuitt
Posts Avatar
#68226
@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.
Por osvaldomp
#68228
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
RicardoGuitt agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord