Como Mudar as caracteristicas das mensagens do Msgbox ou InputBox ?

Anônima
2015-05-22T05:49:10+00:00

Bom Dia pessoal.

Como sou inciante em VBA, achei muito bom,pratico e facil de usar o Msgbox,InputBox nas rotinas que estou comecando a praticar.

Gostaria de saber se tem alguma maneira de mudar a caracteristica das mensagens com negrito ou tamanho de letra para poder destacar em determinados trechos das mensagens sem usar outros artificios complicados.

Desde ja agradeco

Tadao

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-31T20:22:52+00:00

Sobre Range("A1"), é mais simples do que você perguntou: se você escrever Range("A1") em qualquer componente do seu projeto VBA, o Excel interpretará que é a célula A1 da planilha ativa.

Da mesma forma, se você escrever Worbooks("Pasta1.xlsm").Worksheets("Plan1").Range("A1"), de qualquer componente se referenciará à célula A1 da planilha A1 da pasta de trabalho Plan1. Onde você escreve o código independe...


"Eu entendo Pasta de Trabalho como Diretorio"

A terminologia é importantíssima:

  • Pasta de Trabalho: um arquivo de Excel (xlsx, xlsm, xls, etc.)
  • Planiliha: uma "aba" de uma pasta de trabalho
  • Diretório: um caminho do Windows Explorer que possui arquivos.

Infelizmente, há muita confusão nisso. A própria microsoft chama pasta de trabalho de planilha, em alguns casos...

E a tal da "pasta" do windows explorer confunde com a "pasta de trabalho", do Excel... complicado =\


"

ThisWorkbook se refere à pasta de trabalho que está executando o código

e a mesma coisa que dizer ThisWorkbook se refere ao arquivo que esta executando o codigo?"

Correto!


"se tenho os codigos escritos no arquivo cartao pontos e tiver que ativar o arquivo dados(Workbooks("dados"), e do arquivo dados quiser voltar ou acessar celulas do arquivo cartao ponto em vez de escrever (Workbooks("cartao ponto")) e a mesma coisa que escrever ThisWorkbook que vai entender como sendo o arquivo cartao ponto onde estao escritos os codigos?."Correto!


Esta resposta foi útil?

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-26T02:55:59+00:00

Tadao, a indicação da Lucíola está correta. Você provavelmente recebeu dicas de pequenas rotinas VBA de mim ou no máximo mais duas pessoas. O melhor lugar para tirar dúvidas VBA é no link que ela te passou mesmo. Poste no canal mostrado abaixo:

Bom, respondendo sua pergunta, não é possível mudar as características de um inputbox dessa forma como deseja. Se quiser personalizar algo desse nível, sugiroq ue você crie um formulário (UserForm) e faça ele se passar por uma caixa de mensagem / diálogo.

O máximo que você pode fazer com a função nativa é alterar o parâmetro Buttons utilizando as partes de enumerações como vbInformation, vbYesNo, etc. para modificar botões ou ícones.

Esta resposta foi útil?

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-22T12:10:55+00:00

Olá, TadaoKano! Tudo bem?

Bem-vindo à Comunidade da Microsoft.

Para este cenário com relação à Projeto VBA, sugiro postar sua dúvida na comunidade disponível para desenvolvedores:

Para mais informações, acesse Developer Network

Espero ter ajudado.

Até mais,

Esta resposta foi útil?

0 comentários Sem comentários

17 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2015-05-31T20:14:34+00:00

    "Desculpe eu ser meio insistente devido ao meu pouco conhecimento mas voce disse que para executar com F5 ou botao, deve colocar os codigos no Module, mas o mesmo codigo que voce postou, colei em Sheet1(sheet1) do arquivo cartao ponto e tanto o botao que coloquei no arquivo cartao ponto como o F5 esta funcionando como abaixo anexado."

    Realmente funciona, mas não é uma boa prática de programação. Verá que com o tempo, não é possível executar todo tipo de código se inseri-lo na classe de uma planilha ou pasta de trabalho. Declarações mais avançadas usando palavras chave como WithEvents, por exemplo, não funcionarão se você colar o código nessas classes.


    "Ainda nao fiz codigo parecido mas e muito interessante,mas ja fiz um codigo que dando dois clics muda a cor da celula, e esse codigo eu escrevi(nao sei porque) no sheet que eu queria que executasse. "

    Se você quer que a macro execute quando dê dois cliques na célula, ela obrigatoriamente deverá ficar no evento BeforeDoubleClick da classe da planilha que deseja que esse efeito ocorra. Você pode colocar também na classe do ThisWorkbook, mas esse é um tópico mais avançado, por enquanto.


    "Ja fiz um codigo que ao abrir uma pasta execute automaticamente, e esse codigo como os outros coloquei tudo em This Workbook, mas se tivesse escrito em Module nao funcionaria"

    Correto, não funcionaria.


    Resumindo, bem a grosso modo: coloque código qeu respondam a eventos do Excel nas classes das planilhas ou pasta de trabalho. Coloque código que vc execute explicitamente com a tecla F5, ou um botão de comando na planilha, por exemplo, em módulos.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2015-05-31T19:55:30+00:00

    "Mas se substituir o copy com select no seu codigo, da erro de numero 1004, porque sera?"

    Conforme escrevi: "2 - Se você tentar selecionar a planilha de uma pasta de trabalho que não esteja ativa, obterá erro. (esse foi o seu caso)"


    "wsDados.Range("A1").CurrentRegion.Offset(1).Resize(Range("A1").CurrentRegion.Rows.Count-1).Copy"

    Isso fica difícil demais para entender. Quebre seu raciocínio em várias linhas:

        Dim rArea As Range

        Set rArea = wsDados.Range("A1").CurrentRegion.Offset(1)

        Set rArea = rArea.Resize(rArea.Rows.Count - 1)

        rArea.Copy


    ".......dai deu Zebra....nao copia toda regiao dos dados, mas se nao usar o filtro, ou seja nao tiver lacuna na coluna 4 funciona normal."

    Você entendeu bem. CurrentRegion expande até encontrar uma lacuna. Se esse não é seu caso, você terá que definir os dados qeu quer copiar de uam forma diferente, como usar, por exemplo, o método Range.End.


    Esta resposta foi útil?

    0 comentários Sem comentários