Página 1 de 1

Macro Pintar Células

Enviado: 10 Fev 2021 às 10:40
por Micsterminador
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

Re: Macro Pintar Células

Enviado: 10 Fev 2021 às 11:11
por osvaldomp
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.

Re: Macro Pintar Células

Enviado: 10 Fev 2021 às 11:54
por Micsterminador
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

Re: Macro Pintar Células

Enviado: 10 Fev 2021 às 12:00
por osvaldomp
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.

Re: Macro Pintar Células

Enviado: 10 Fev 2021 às 15:43
por Micsterminador
Segue
format_tables.xlsx

Re: Macro Pintar Células

Enviado: 10 Fev 2021 às 16:33
por osvaldomp
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

Re: Macro Pintar Células

Enviado: 12 Fev 2021 às 16:37
por Foxtri
Boa tarde.
Deixo mais uma opção.
Até

Foxtri

Re: Macro Pintar Células

Enviado: 19 Fev 2021 às 14:22
por Micsterminador
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

Re: Macro Pintar Células

Enviado: 19 Fev 2021 às 17:26
por osvaldomp
Forneça exemplos e os resultados desejados.

Re: Macro Pintar Células

Enviado: 20 Fev 2021 às 09:13
por Foxtri
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

Re: Macro Pintar Células

Enviado: 27 Fev 2021 às 14:40
por Micsterminador
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.

Re: Macro Pintar Células

Enviado: 27 Fev 2021 às 15:51
por Foxtri
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

Re: Macro Pintar Células

Enviado: 01 Mar 2021 às 11:37
por Micsterminador
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