Boa tarde!
Gente, sou nova no forum, cheguei a dar uma olhada nos outros tópicos mas não encontrei algo que me atendesse. Peço desculpas caso já exista algum tópico com este assunto, neste caso peço por gentileza que me direcionem rsrs.
O caso é o seguinte fiz essa macro para selecionar e pintar as células preenchidas no intervalo de A7:P27, mas agora preciso expandir a área do intervalo de modo que ele compreenda as áreas A7:P27 e também a A44:P61, mas não consigo fazer isso de maneira que funcione.
Alguém poderia me salvar? rs
Obrigada!
Sub Selecionar()
Dim Intervalo As Range
Set Intervalo = [A7].SpecialCells(xlTextValues)
Intervalo.Select
Selection.Interior.ColorIndex = 36
End Sub
Boa tarde amiga, não sei se entendi corretamente mas lá vai.
Acho que é só isso:
Sub Selecionar() Dim Intervalo As Range Set Intervalo = [A7:P27].SpecialCells(xlTextValues) Intervalo.Select Selection.Interior.ColorIndex = 36 Set Intervalo = [A44:P61].SpecialCells(xlTextValues) Intervalo.Select Selection.Interior.ColorIndex = 36 End Sub
Atenciosamente,
Alex Lacerda
controleremoto@gmail.com
Funcionou!!
Eu tinha feito isso antes,mas com certeza fiz errado, rs. Colando a sua versão funcionou perfeitamente rs.
O problema era a peça entre a cadeira e o computador mesmo rsrs.
Muito obrigada pela ajuda!
Att.
Amigo, agora apareceu um problema:
Se, por algum motivo, em algum dos intervalos não existir ao menos uma célula preenchida, ele dá erro.
Só funciona perfeitamente se ambos os intervalos possuirem células preenchidas.
Saberia me informar alguma outra maneira?
Desde já agradeço.
Atenciosamente,
Você realmente precisa da propriedade SpecialCells? Caso não, só removê-la e a macro vai pintar esse intervalo, independente de ter valores ou não.
Caso sim, você pode mandar resumir, caso dê erro.
Assim:
Sub Selecionar() Dim Intervalo As Range On Error Resume Next Set Intervalo = [A7:P27].SpecialCells(xlTextValues) Intervalo.Select Selection.Interior.ColorIndex = 36 Set Intervalo = [A44:P61].SpecialCells(xlTextValues) Intervalo.Select Selection.Interior.ColorIndex = 36 End Sub
Ele vai continuar a rotina, mesmo dando algum erro.
Testei aqui e, realmente não dá mais erro, no entanto a macro acaba fazendo uma coisa errada:
as duas áreas A7:P27 e A44:P61 se tratam de dois formulários que precisam ficar na mesma planilha. E esta macro precisa selecionar e pintar apenas as células com preenchimento em ambos os intervalos.
Estes formulários podem ser preenchidos assim: somente o primeiro, somente o segundo, ou ambos.
Nesta que você enviou ele seleciona e pinta as células preenchidas em ambas e as do primeiro formulário, no segundo formulário ele seleciona e pinta as células preenchidas e a célula que você selecionou por último, portanto acaba sobrando uma célula formatada vazia.
Na vdd não sei muito sobre vba, pode ser outro meio além do SpecialCells contanto que satisfaça essas condições.
Espero ter conseguido explicar mais ou menos...
Desde já agradeço a ajuda.
Att.
Seria interessante entender mais algumas coisas, e, se for possível, anexar aqui um exemplo da planilha (se tiver dados privados, mude-os por fictícios).
1. Você precisa que a macro ou pinte ou o formulário de cima, ou o de baixo, ou ambos?
2. É necessário que ele pinte toda essa área delimitada para o formulário, ou apenas os campos onde exista algum valor, como ela já está fazendo?
Então ela precisa pintar ambas, caso ambas possuam células com preenchimento, do contrário, apenas o formulário que possuir células preenchidas.
Farei uma outra planilha fictícia e posto aqui, acredito que será mais fácil mesmo. rsrs
Muito obrigada.
Poste via opção "Anexar", por favor. Não tenho acesso a links externos por aqui =)
Última dúvida. Se houver célula preenchida, pintar o formulário TODO ou apenas as células preenchidas?
Fiz a planilha.
Ela possui 4 macros:
desfazer formatação - que volta às células à formatação em branco sem apagar os dados.
Marcar Texto: que é a macro que estamos tentando fazer, que deveria pintar de amarelo apenas as células preenchidas naquele intervalo.
Conferir: Pinta a célula ativa de branco e vai para a linha abaixo.
Limpar dados: apaga os dados e volta a formatação para branco.
Teste assim: coloque um valor qualquer em ambos os formulário e clique em marcar texto.
Depois coloque qualquer valor apenas no formulário 1 e marque o texto.
Feito isso, coloque qualquer valor apenas no formulário 2, e marque o texto. Daí você poderá ver que, além das células com valores, ele pinta também a célula que você selecionou por último.Esse é o erro que preciso corrigir.
Muito obrigada pela ajuda!!
O arquivo que você enviou veio sem os módulos de macro.
Para todos os efeitos, tirei o critério para selecionar (de fato SELECIONAR a célula) para apenas pintar as preenchidas. Veja se é suficiente:
Sub Selecionar()Dim Intervalo As Range
On Error Resume Next
Set Intervalo = [A7].SpecialCells(xlTextValues)
Intervalo.Interior.ColorIndex = 36Set Intervalo = [A44].SpecialCells(xlTextValues)
Intervalo.Interior.ColorIndex = 36
End Sub
[/code}
Boa Noite!
Desculpe a demora para responder, só fui ter acesso à internet agora.
Nossa que estranho, abri a planilha e tb não deu certo rs, desculpe por isso.
Testei a sua macro aqui e funcionou perfeitamente!
Muito obrigada pela ajuda! Você me salvou hehe
Att.