Ir ao conteúdo
  • Cadastre-se

Macro Copiar Nome de Botão


vicentelobo

Posts recomendados

Boa tarde.

Iniciei meus estudos de japonês há uns dias.

Por ter alguns conhecimentos de Excel, estou usando-o para me ajudar a estudar.

Tenho uma planilha com quatro sheets.

A primeira chamei de Database em que vou colocando os ideogramas que estou estudando.

Ela tem três colunas, na primeira coloco um número (até o momento vai de 1 a 30), na segunda o ideograma em hiragana e na terceira o mesmo em caracteres romanos.

Na segunda e terceiras sheets, há células que usam ALEATÓRIOENTRE em conjunto com PROCV, para que sorteie um número entre 1 e 30, mostre o ideograma correspondente em hiragana em uma célula e romano em outra.

A diferença é que na terceira sheet eu devo escrever o correspondente romano do ideograma, em que ele responde com certo ou errado.

Já na quarta sheet pretendo fazer o seguinte. Fiz um botão para cada ideograma, e desejo que em uma célula seja sorteado um ideograma, mostre o texto em romano, e eu deva clicar no botão que contém o ideograma correspondente. Ao clicar, seria executado um macro que copiaria o nome do botão que eu cliquei, colaria em outro lugar e compararia com o texto que está descrito.

Por exemplo, aparece "A" em A1. Devo clicar no botão あ. Ele irá copiar o texto do nome do botão e colar em B1. Em C1 terá um PROCV que irá verificar o ideograma de B1, procurar na Database o correspondente em romanos e se estiver certo, mostrar "Certo", se não, mostrar o correto.

Digamos que em vez de clicar em あ, eu clique em ほ. Ele irá executar o mesmo macro, verificará que está errado, e em C1 irá escrever ほ.

Desejo fazer um macro que seja versátil e possa ser usado em qualquer um dos botões, afinal existem muitos ideogramas, e se criar um macro para cada botão, além de ser muito trabalhoso, irá dar trabalho, caso eu altere algum dos botões.

Imagens:

Database

Database.jpg

Sheet 1

Sheet_1.jpg

Sheet 2

Sheet_2.jpg

Sheet em desenvolvimento

Sheet_3.jpg

Grato,

Vicente.

P.S. para os Moderadores: Este é meu primeiro tópico, assim, caso tenha feito algo errado, por favor, avisem.

Link para o comentário
Compartilhar em outros sites

Boa noite!!!

Para que o pessoal possa ajuda-lo, eu lhe sugiro depositar seu arquivo modelo em site gratuito (www.sendspace.com), depois poste o link aqui.

Olá, fiz o upload da planilha.

http://www.sendspace.com/file/aguioa

Convém dizer que não sei nada de como criar macros escrevendo, apenas gravando.

Grato.

____________________________________________________________________________________________________________________________________________

EDIT.:

Consegui fazer o que eu queria, mas, de forma diferente.

Usei a validação de dados para criar uma lista suspensa com os caracteres.

A lista é alimentada pela coluna H da Database, em que os caracteres são misturados aleatoriamente.

Para impedir que o Excel repetisse algum dos números gerados, mandei somar com a razão entre o número da linha e o total de linhas (Coluna F).

Na coluna G, coloquei a fórmula ORDEM para que o programa indique qual é a posição ordinal que o número correspondente ocupa dentre a coluna F.

Fiz isso apenas para que os dados da coluna suspensa sempre troquem de ordem, assim, eu não me acostumo com o local, e sim com a imagem do ideograma.

Descobri como fazer isso nesse site http://dicasdeexcel.com.br/2012/07/02/sorteio-sem-repeticao-no-excel/.

Voltando à sheet que eu estava inicialmente, em A1 é gerado um ideograma aleatório.

Em B1 há a representação romana desse caractere.

Em C1 há a lista suspensa.

Em D1, uma célula mostra "Certo" se eu escolher o ideograma correto, ou, caso erre, ele mostra o que eu deveria ter selecionado.

Em A4 há um procv que dá a representação romana do caractere que eu escolhi, para ver se está certo em D1.

Como o programa recalcula os aleatórios a cada alteração de qualquer célula, coloquei um macro que copia o texto caractere de A1 em B1, deixando o mesmo estático, assim, garantindo que eu possa estudar.

Também alterei umas coisas nas fórmulas para que eu não precise alterá-las quando inserir mais ideogramas.

Segue link com a nova planilha.

http://www.sendspace.com/file/ii09ta.

Ainda acharia interessante se alguém soubesse como fazer um macro para fazer o que eu queria inicialmente.

Grato.

Link para o comentário
Compartilhar em outros sites

Bom dia!!

Eu ainda não entendi legal, mas veja esse exemplo.

Imagina que você está na na guia "Plan3" ao clicar no botão あ, será copiado otexto desse botão para a guia "Plan3" na célula C1, o resto é só adaptar.

Sub Botão1_Clique()
With ActiveSheet
.Range("C1") = .Shapes("Botão 1").TextFrame.Characters.Text
End With
End Sub

Att

Link para o comentário
Compartilhar em outros sites

Boa noite!

Agradeço pela atenção!

É quase isso que eu gostaria. No caso, esse macro irá copiar apenas o botão 1, mesmo que eu coloque o mesmo macro no botão 2, por exemplo, ele copiará o primeiro.

Há como fazer desse um "macro coringa", que o mesmo macro funcione em todos os botões.

Grato.

Link para o comentário
Compartilhar em outros sites

Use o comando CALL

Sub Coringa()

'faça algo

End Sub

Sub Botão1_Clique()
Call Coringa '<- chama a macro Coringa no Botão1
End Sub

Sub Botão2_Clique()
Call Coringa '<- chama a macro Coringa no Botão2
End Sub

Sub Botão3_Clique()
Call Coringa '<- chama a macro Coringa no Botão3
End Sub

Sub Botão4_Clique()
Call Coringa '<- chama a macro Coringa no Botão4
End Sub

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@vicentelobo

 

Veja se ajuda.

O código abaixo insere na célula C1 da planilha ativa, texto igual ao texto (no seu caso igual ao ideograma) do botão clicado.
Instale o código em um módulo comum e atribua a ele todos os botões que desejar.
 

Sub CopiaTextoBotãoClicado()  [C1] = ActiveSheet.Buttons(Application.Caller).CaptionEnd Sub
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@zinhovba 

 

Muito obrigado pela atenção, seu macro funcionou, mas, o do oswaldomp faz melhor o que eu quero.

 

@osvaldomp

 

Não sei como agradecer, seu código consegue fazer exatamente o que eu quero! 

Um macro coringa, que pega o nome de qualquer botão e serve para todos. 

 

Vocês dois me motivaram a estudar vba, algo que sempre tive curiosidade em aprender. 

Obrigado. (:

 

Vicente.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...