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
#49664
Boa tarde!
Eu estou iniciando com VBA e por isso preciso de uma ajuda. Eu gostaria que a partir da célula que eu estiver (célula ativa), ao acionar o botão para macro rodar, o Excel navegue para a 2ª célula da LINHA ONDE ESTÁ A CÉLULA ATIVA. Por exemplo: se a célula ativa for a "E12", ao acionar o botão a célula "E2" seja selecionada; se a célula ativa for a "H9" então ao acionar o botão a célula "E2" seja selecionada e assim por diante. Ou seja, sempre que o botão for acionado a 2ª célula DA MESMA LINHA ONDE ESTÁ A CÉLULA ATIVA será selecionada.
Grato!
#49669
FJunior escreveu: ... navegue para a 2ª célula da LINHA ONDE ESTÁ A CÉLULA ATIVA...
Não seria da coluna ?

... se a célula ativa for a "H9" então ao acionar o botão a célula "E2" seja selecionada ...
Não seria H2 ?
O comando abaixo irá selecionar a célula da linha 2 na mesma coluna da célula ativa. Veja se é isso.
Código: Selecionar todos
Cells(2, ActiveCell.Column).Select
#49740
Boa tarde Osvaldo.
Não. O que eu estou querendo é que independente da linha ou coluna em que esteja a célula ativa, quando eu acionar o botão a célula selecionada seja sempre a 2ª célula da linha ONDE ESTAVA A CÉLULA ATIVA. Por exemplo: se a célula ativa é a "G6", quando acionado o botão a célula selecionada passe a ser a "G2"; ou caso a célula ativa seja a "G9", então ao acionar o botão, a célula selecionada passe a ser a "G2", ou caso a célula ativa seja a "B4", ao acionar o botão a célula selecionada passe a ser a "B2". Ou seja, a célula selecionada seja sempre a 2ª da mesma linha onde está a célula ativa.
#49741
S I M !!!

Me parece que você nem testou o comando que passei :(

De novo ~~~> "ou caso a célula ativa seja a "B4", ao acionar o botão a célula selecionada passe a ser a "B2". Ou seja, a célula selecionada seja sempre a 2ª da mesma linha onde está a célula ativa. " ~~~> não é mesma linha, amigo, É MESMA COLUNA.
#49757
FJunior, tudo ok.
Então, se você reparar bem na resposta do nosso amigo "osvaldomp", notará que a linha de código que ele exemplificou para que você aplique em sua macro, funcionará perfeitamente, já que quando você acionar o botão, o Excel levará o cursor para a Linha 2 da Coluna Ativa.
Código: Selecionar todos
Cells(2, ActiveCell.Column).Select
Note que a coluna ativa, nada mais é, do que a coluna onde se encontra o cursor, independente da linha onde ele estiver.

Quando você diz que quer selecionar a Linha 2 da Coluna Ativa, automaticamente entendemos que você quer sair da Linha/Endereço Atual, exemplo "G6" para a Linha 2 da Coluna onde está o cursor, exemplo "G2" .
#49760
x92 escreveu: Note que a coluna ativa, ...
Não existe o termo "coluna Ativa" na nomenclatura ou na documentação do Excel.
#49782
Boa noite Osvaldo.
Eu testei o comando que vc me passou, mas não deu certo; não consegui descobrir onde eu estou errando, mas acredito que não estou sabendo associá-lo ao restante do meu comando. O formulário carrega corretamente os dados e quando eu aciono o botão "Anterior" ou "Próximo" tudo funciona direitinho. Porém, o problema está quando a célula ativa DEIXA DE SER DA 2ª COLUNA e aí quando aciono um dos botões, os dados são carregados no formulário fora de ordem. Por isso, que eu queria que os comandos dos botões levassem o cursor para a célula da coluna 2 para que os dados fossem carregados corretamente em cada textbox do formulário. Vou anexar a planilha e se puder me ajudar agradeço.
Você não está autorizado a ver ou baixar esse anexo.
#49788
Bom dia!

Me permitam um aparte, fora do foco deste post.

Junior,
Veja o que acha de trocar o código:
Código: Selecionar todos
'LETRAS MINÚSCULAS
'------------------------------------
    'Letra a minúscula
    slimpo = Replace(palavra, "á", "a")
    slimpo = Replace(slimpo, "à", "a")
    slimpo = Replace(slimpo, "â", "a")
    slimpo = Replace(slimpo, "ä", "a")
    
      'Letra e minúscula
    slimpo = Replace(slimpo, "é", "e")
    slimpo = Replace(slimpo, "è", "e")
    slimpo = Replace(slimpo, "ê", "e")
    slimpo = Replace(slimpo, "ë", "e")
    
    'Letra i minúscula
    slimpo = Replace(slimpo, "í", "i")
    slimpo = Replace(slimpo, "ì", "i")
    slimpo = Replace(slimpo, "î", "i")
    slimpo = Replace(slimpo, "ï", "i")

    'Letra o minúscula
    slimpo = Replace(slimpo, "ó", "o")
    slimpo = Replace(slimpo, "ò", "o")
    slimpo = Replace(slimpo, "ô", "o")
    slimpo = Replace(slimpo, "ö", "o")
    slimpo = Replace(slimpo, "ø", "o")

    'Letra u minúscula
    slimpo = Replace(slimpo, "ú", "u")
    slimpo = Replace(slimpo, "ù", "u")
    slimpo = Replace(slimpo, "û", "u")
    slimpo = Replace(slimpo, "ü", "u")

    
'LETRAS MAIÚSCULAS
'------------------------------------
    'Letra A maiúscula
    slimpo = Replace(slimpo, "Á", "A")
    slimpo = Replace(slimpo, "À", "A")
    slimpo = Replace(slimpo, "Â", "A")
    slimpo = Replace(slimpo, "Ä", "A")

    'Letra E maiúscula
    slimpo = Replace(slimpo, "É", "E")
    slimpo = Replace(slimpo, "È", "E")
    slimpo = Replace(slimpo, "Ê", "E")
    slimpo = Replace(slimpo, "Ë", "E")
    
    'Letra I maiúscula
    slimpo = Replace(slimpo, "Í", "I")
    slimpo = Replace(slimpo, "Ì", "I")
    slimpo = Replace(slimpo, "Î", "I")
    slimpo = Replace(slimpo, "Ï", "I")

    'Letra O maiúscula
    slimpo = Replace(slimpo, "Ó", "O")
    slimpo = Replace(slimpo, "Ò", "O")
    slimpo = Replace(slimpo, "Ô", "O")
    slimpo = Replace(slimpo, "Ö", "O")
    slimpo = Replace(slimpo, "Ø", "O")
    
      'Letra U maiúscula
    slimpo = Replace(slimpo, "Ú", "U")
    slimpo = Replace(slimpo, "Ù", "U")
    slimpo = Replace(slimpo, "Û", "U")
    slimpo = Replace(slimpo, "Ü", "U")
por este (EDITADO:
Código: Selecionar todos
    'As 5 vogais, maiúsculas e minúsculas
    slimpo = palavra
    Vogais1 = "áàâä-éèêë-íìîï-óòôöø-úùûü-ÁÀÂÄ-ÉÈÊË-ÍÌÎÏ-ÓÒÔÖØ-ÚÙÛÜ"
    Vogais2 = "aaaa-eeee-iiii-ooooo-uuuu-AAAA-EEEE-IIII-OOOOO-UUUU"
    For Idx = 1 To Len(Vogais1)
        slimpo = Replace(slimpo, Mid(Vogais1, Idx, 1), Mid(Vogais2, Idx, 1))
    Next
Se quiser incluir Çç fica fácil. Quanto ao Ø, será que não seria melhor substituí-lo por zero ao invés da vogal "O"? Em informática ele representa zero, embora na engenharia ele represente várias coisas.

Se esta mensagem colabora para a solução do problema, peço que dê um Like, clicando no botão com o "positivo", acima e a direita.

Jimmy San Juan
#49795
FJunior escreveu: Por exemplo: se a célula ativa é a "G6", quando acionado o botão a célula selecionada passe a ser a "G2" ...
Com base no seu projeto, se entendi corretamente, no exemplo acima você deveria selecionar B6 e não G2. Ou seja, selecionar sempre a célula da coluna B na linha da célula ativa. Seria isso?

Este comando seleciona a célula da coluna B na linha da célula ativa
Código: Selecionar todos
Cells(ActiveCell.Row, "B").Select
Este comando seleciona a célula da coluna B correspondente à linha que contém o último registro (no seu exemplo, B15)
Código: Selecionar todos
Cells(Rows.Count, "B").End(3).Select
dicas:
1. reveja o uso desnecessário do comando Application.EnableEvents
2. não utilize Select, pois esse comando retarda a execução e limita na elaboração do código
3. reveja a necessidade da função TiraAscento()
4. se você adicionar uma ComboBox no Form, poderá carregar nela todos os nomes existentes no Banco e aí poderá selecionar qual registro deseja examinar/atualizar/excluir.
5. não sei qual a sua intenção ao elaborar esse projeto, mas existe um recurso nativo no Excel que permite fazer exatamente o que o seu projeto faz ~~~> menu Desenvolvedor / Formulário
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