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.
Por Henrique92
Posts
#38100
Olá Caros Amigos e parceiros colaboradores.

Eu gostaria muito de saber se há alguma forma de eu automatizar uma ação programada em uma célula excel.

Exemplo: Quando eu tiver concluído uma tarefa, gostaria de ao dar um duplo enter ou ctrl + enter ou ctrl + duplo clique com botão esquerdo do mouse , aparecesse na célula que eu fiz isto a mesma formatação que aparece na célula E8.

Agradeço desde já. Muito obrigado.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#38154
Código: Selecionar todos
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 [E8:E9].Copy
 Target.PasteSpecial xlFormats
End Sub
Por osvaldomp
#38268
Não é possível desfazer Via Ctrl+z . Para desfazer, após instalar o código abaixo no lugar do anterior, aplique duplo clique nas células mescladas .
Alterei o código para não ficar mais vinculado à formatação de E8:E9, pois se você alterar a formatação daquelas células o código iria retornar resultado indesejado.
Duplo clique para mesclar, duplo clique para desfazer a mesclagem.
Se ao desfazer a mesclagem você quiser também limpar o conteúdo, então remova no código o apóstrofo do início da linha abaixo (em vermelho).
'Selection.Value = ""
Código: Selecionar todos
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Selection.MergeCells = False Then
  With Selection
   .Resize(2).MergeCells = True
   .NumberFormat = "General"
   .HorizontalAlignment = xlCenter
   .VerticalAlignment = xlCenter
   .WrapText = True
    With .Interior
     .Pattern = xlLightUp
     .PatternThemeColor = xlThemeColorAccent3
     .Color = 16446442
     .TintAndShade = 0
     .PatternTintAndShade = -0.249946592608417
    End With
  End With
 Else
  Cancel = True
  With Selection
   .MergeCells = False
     With .Interior
      .Pattern = xlGray16
      .PatternThemeColor = xlThemeColorLight2
      .Color = 16446442
      .TintAndShade = 0
      .PatternTintAndShade = 0.799981688894314
     End With
     With .Borders
      .LineStyle = xlContinuous
      .Weight = xlMedium
      .ThemeColor = 1
     End With
  End With
  'Selection.Value = ""
 End If
End Sub

Por osvaldomp
#38730
Henrique92 escreveu:... mas infelizmente a formatação funciona apenas para células mescladas em 2.
Porque infelizmente ? A solução funciona para o exemplo que você colocou aqui. Se você queria algo a mais você deveria ter colocado no seu exemplo. :(

Teria como haver variação para outros tamanhos?
Não sou adivinho pra descobrir o que você quer dizer com "outros tamanhos" :?:
Por Henrique92
Posts
#38732
osvaldomp escreveu:
Henrique92 escreveu:... mas infelizmente a formatação funciona apenas para células mescladas em 2.
Porque infelizmente ? A solução funciona para o exemplo que você colocou aqui. Se você queria algo a mais você deveria ter colocado no seu exemplo. :(

Teria como haver variação para outros tamanhos?
Não sou adivinho pra descobrir o que você quer dizer com "outros tamanhos" :?:
Então. Na verdade eu gostaria de clicar na célula e ela apenas mudar a cor de fundo, pelo menos.

Quando clico com esse VBA que você, gentilmente, me passou, a célula se mescla em duas não importa se ela era apenas 1 ou 3 ou 4 mescladas. e quando clico novamente elas retornam apenas como uma única célula sem mescla.
Por Henrique92
Posts
#38735
Consegui com a primeira parte do seu macro, mas não consigo voltar ao formato anterior. :/

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect([A1:I1000], Target) Is Nothing Then

With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
With .Interior
.Pattern = xlLightUp
.PatternThemeColor = xlThemeColorAccent3
.Color = 16446442
.TintAndShade = 0
.PatternTintAndShade = -0.249946592608417
End With
End With

End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
Por Henrique92
Posts
#38792
Por favor :/ Isso seria muito importante para mim.

Eu só gostaria que a cada vez que eu desse um duplo clique mudasse o fundo e se eu desse mais outra vez voltasse ao normal. Pelo código inicial até funciona quando faço isso, mas apenas em células mescladas. Se clico em uma célula que não é ela se mescla em duas. :/

Gostaria que isso funcionasse para qualquer célula, mesclada ou não. Só o fundo que mudasse. :/
Por osvaldomp
#38794
Disponibilize um novo arquivo Excel com T O D O S os casos possíveis de ocorrer e com o resultado desejado para C A D A C A S O.

Coloque as explicações na própria planilha.
Editado pela última vez por osvaldomp em 02 Dez 2018 às 18:48, em um total de 1 vez.
Por osvaldomp
#38966
Henrique92 escreveu:"Após duplo clique a célula ficar com uma cor - preenchimento - cinza por cima. Seja a célula mesclada ou não. Com um segundo duplo clique ela voltar ao normal. "
Código: Selecionar todos
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveCell.Interior.Color = IIf(ActiveCell.Interior.Color = 16446442, 15921906, 16446442)
 Cancel = True
End Sub
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