Detalhes em VBA que poucas pessoas sabem Parte 6
em 19 de Agosto de 2021
Você sabia que não é necessário a aplicação de ‘Select’ para poder atribuir algum valor em uma célula e em até mesmo em ‘Sheets’ diferentes ou ‘Workbooks’ diferentes? Se não, Leia este artigo para saber mais. Me chamo Gutemberg, tenho experiência com VBA Excel a mais de 10 anos, e te convido nessa incrível jornada desta fantástica tecnologia!!
Pois bem! Abra um módulo padrão em seu VBE, Visual Basic Editor de dentro do seu Excel:
1º Passo – Com o seu excel aberto dê um Alt + F11, para abrir o VBE;
2º Passo – Em seguida insira um módulo através do menu/opção Inserir/Módulo;
3º Passo – Digite, ou copie, o seguinte exemplo básico abaixo dentro do módulo, este exemplo é apenas didático e servirá para comprovar o que estou falando, imagine que você tenha 2 sheets de nome Plan1 e PLan2 na mesma pasta de trabalho e que queira atribuir o valor que se encontra na sheet “Plan1” na célula ‘A1’ na célula ‘A1’ da sheet ‘Plan2’:
Sub valueSelect()
Sheets(“Plan2”).Range(“A1”).Value = Sheets(“Plan1”).Range(“A1”).Value
End Sub
Ao invés de:
Sub valueSelect()
Sheets("Plan1").Select ‘ Caso ainda tiver de ser selecionada
Sheet(“Plan1”).Range(“A1”).Copy
Sheets("Plan2").Select
Range(“A1”).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
4º Passo – Dê ‘F5’ para executar, ou clique no botão de executar que possui um desenho de uma seta verde apontando para a direita na parte superior do Editor. Note que, as 2 formas ou técnicas resultam no mesmo resultado, porém, a 1ª é mais performática em 2 pontos a saber: 1º A redução de linhas para se fazer determinada a ação e consequentemente melhor para manutenções futuras; 2º Por não mexer na área de transferência do Windows, a 1ª forma é mais performática no que diz respeito a utilização da memória do seu pc.
A 2ª forma é derivada do gravador de macros e, portanto, deve ser evitada na medida em que você progride no conhecimento desta tecnologia. Raramente utilizo a segunda forma, há casos em que ela deverá ser aplicada, porém, raríssimas vezes.
Uma coisa que temos de ter em mente é, não é necessário para a atribuição de valor em uma célula o método de selecionar, pois, este é um recurso do gravador e serve para quem esta aprendendo macros, logo, se você desejar ser conhecido como um verdadeiro dev em VBA, deverá abolir esta prática dentre outras.
Sub valueSelect()
Sheets(“Plan2”).Range(“A1”) = Sheets(“Plan1”).Range(“A1”)
End Sub
Espero que tenham gostado e, se puder, deixarem aquele comentário ‘maroto’, ficarei grato. Há, ainda, a possibilidade de omitirmos a propriedade Value, ou seja, execute o exemplo abaixo e note que rodará sem problemas.
Até a Próxima!!