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
Por Micsterminador
Posts
#62094
Prezados,

Como diariamente formato várias tabelas em um padrão interno para utilização em relatórios do WORD, desenvolvi uma macro que executa esta formatação de forma automática. Contudo, o que eu não consegui fazer, é o seguinte:

Após a macro executar a formatação, gostaria que ela pintasse as linhas da tabela de forma alternada, para que uma linha fique branca (sem preenchimento), e a próxima fique cinza, e assim sucessivamente até o final da tabela. A primeira e última linha devem ser desconsideradas, visto que tratam-se do cabeçalho e totalizador.

Se alguém conseguir me auxiliar com esta questão, agradeço.

Atenciosamente,
Michael Freitas Day
Por osvaldomp
#62096
Sugestão: disponibilize diretamente aqui no fórum uma amostra do seu arquivo Excel com algumas linhas com dados, com estrutura exatamente igual ao arquivo original, com as linhas pintadas conforme desejado e com o código atual instalado.
Por Micsterminador
Posts
#62097
Não é possível disponibilizar o código de formatação da tabela, visto que eu o utilizo como suplemento do excel.
Contudo, segue abaixo uma imagem de como fica a tabela após a execução da macro.

Imagem
Por osvaldomp
#62099
osvaldomp escreveu: 10 Fev 2021 às 11:11 Sugestão: disponibilize diretamente aqui no fórum uma amostra do seu arquivo Excel com algumas linhas com dados, com estrutura exatamente igual ao arquivo original, com as linhas pintadas conforme desejado e com o código atual instalado.
Micsterminador agradeceu por isso
Por osvaldomp
#62113
Código: Selecionar todos
Sub PintaIntervalos()
 Dim k As Long
  For k = 10 To Cells(Rows.Count, 7).End(3).Row - 1 Step 2
  Cells(k, 7).Resize(, 6).Interior.ColorIndex = 15
  Next k
End Sub
JCabral, Micsterminador agradeceu por isso
Por Micsterminador
Posts
#62335
Boa tarde,

Agradeço as contribuições. Porém, para que a macro seja funcional, ela deve atuar apenas dentro das células selecionadas.

Atenciosamente,
Michael Freitas Day
Por osvaldomp
#62350
Forneça exemplos e os resultados desejados.
Avatar do usuário
Por Foxtri
Posts Avatar
#62358
Bom dia.
Veja se o resultado desta macro, atende a sua necessidade.
Sub Pintar()
Dim cel As Range
For Each cel In Selection
If cel.Interior.ColorIndex <> 1 And cel.Value <> "" Then
If cel.Row Mod 2 = 0 Then
cel.Interior.ColorIndex = 15
End If
End If
Next
End Sub

Você pode selecionar quantas células quiser , inclusive os cabeçalhos.
O único detalhe é que dependendo do numero da linha onde os dados iniciam, a formatação pode inverter
ou seja inicia ou com linha em branco ou em cinza.
Até
Foxtri
Micsterminador agradeceu por isso
Por Micsterminador
Posts
#62522
Boa tarde Foxtri,

Muito obrigado pela sua ajuda. Realmente, a macro funcionou conforme você descreveu.
Em todos os testes que eu apliquei, a primeira linha ficou cinza. Em um cenário perfeito, a primeira linha deveria ser branca (padrão da empresa). Caso alguém possa ajudar, seria muito útil.

De qualquer forma, agradeço sua atenção.
Micsterminador.
Avatar do usuário
Por Foxtri
Posts Avatar
#62524
Boa tarde
Faça um novo teste, com essa nova macro.
A única condição é que você sempre deve selecionar uma as células com fundo preto do cabeçalho.
Sub Pintar()
Dim cel As Range, i As Integer
For Each cel In Selection
If cel.Interior.ColorIndex = 1 Then i = IIf(cel.Row Mod 2 = 0, 0, 1)
If cel.Interior.ColorIndex <> 1 And cel.Value <> "" Then
If cel.Row Mod 2 = i Then
cel.Interior.ColorIndex = 15
End If
End If
Next
End Sub

Até
Foxtri
Micsterminador agradeceu por isso
Por Micsterminador
Posts
#62551
Bom dia Foxtri,

Funcionou perfeitamente conforme proposto. Apenas alterei a tonalidade do cinza que a macro pinta as células.

Agradeço a ajuda.
Att,
Micsterminador
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