MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Colar Especial

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Colar Especial

    Mensagem  Bão 18/1/2012, 19:02

    Estou usando uma textbox memorando no formato "rich text"...

    Mas encontrei um problema: quando se cola um texto, colam-se junto todas as formatações (tamanha e tipo de fonte, negrito, itálico, cor, etc.)...

    Gostaria que ao colar (Ctrl+V) somente os caracteres fossem inseridos... e ignorasse as formatações...

    Existe um comando de "Colar Especial" no office que possbilita isso... mas em VBA não sei como fazer...

    Agradeço a ajuda!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 18/1/2012, 19:18

    E o campo precisa estar como RichText? Se você não precisa dele nesse formato, talvez fosse melhor mudar. Ou então pode colocá-lo como normal antes de colar e depois voltar para RichText. Algo como:

    Me.NomeDoCampo.TextFormat = acTextFormatPlain
    DoCmd.RunCommand acCmdPaste
    Me.NomeDoCampo.TextFormat = acTextFormatHTMLRichText


    ou, para usar o Colar Especial:

    DoCmd.RunCommand acCmdPasteSpecial


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 18/1/2012, 20:45

    Sim, o campo precisa estar como RichText para possibilitar a edição, como colocar partes do texto em negrito ou itálico...

    Essa primeira opção me parece a melhor, mas estou tendo dificuldade para vinculá-la com o evento "ao apertar tecla" a (Ctrl+V)...

    Poderia me dar mais essa ajuda? Agradeço muito!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 18/1/2012, 21:23

    Podemos fazer isso usando variáveis para capturar e comparar as teclas digitadas. Para tal, vamos declarar, no escopo do módulo do formulário, uma variável tipo Boolean, ou seja, tipo Verdadeiro/Falso. Quando falamos escopo do módulo, estamos dizendo que isso será feito fora dos eventos do formulário ou dos controles do mesmo, ou seja, no início do módulo, logo após a primeira linha Option Compare Database. Caso não tenha uma linha escrito Option Explicit, insira ela antes. Essa linha é importante para garantir que todas as variáveis declaradas no módulo estão sendo devidamente usadas. Ficaria assim o início do módulo:

    Option Compare Database
    Option Explicit
    Dim Colar As Boolean


    Agora, no evento "Ao apertar tecla":

    If KeyCode = vbKeyControl Then
    Colar = True
    Else
    End If

    If KeyCode = vbKeyV Then
    If Colar = True Then
    Código para colar aqui
    Colar = False
    Else
    End If
    Else
    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 13:34

    Criquio, seria pedir demais um pequeno DB com a aplicação dessa função?!

    É que to tentando aqui desde ontem e nada...

    O texto vem com toda a formatação... modifiquei e ficou assim:

    If KeyCode = vbKeyControl Then
    Colar = True
    Else
    End If

    If KeyCode = vbKeyV Then
    If Colar = True Then
    Me.Texto2.TextFormat = acTextFormatPlain
    DoCmd.RunCommand acCmdPaste
    Colar = False
    Else
    End If
    Else
    Colar = False
    End If
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 13:50

    Tente retirar a última linha Colar = False, como no exemplo que eu postei.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 14:36

    Duas observações:

    1. O texto a ser colado não aparece ao apertar Ctrl+V, mas fechando o form e abrindo novamente vê-se que foi colado...

    2. Cola sobre o texto que já está na textbox e cola duas vezes...

    Fiz um post:
    http://www.4shared.com/file/xK_f_J0V/ColarEspecial.html
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 15:49

    Ele cola duas vezes porque alem do que você passou no evento, tambem é colado antes, pelo acesso normal do Ctrl+V. Tente o seguinte: cria uma macro de nome AutoExec e coloque na coluna "Nome da Macro" assim ^V para desabilitar o Ctrl+V normal e ficar valendo apenas o que você inseriu no comando. E para colocar o texto após o que já estiver no campo, coloque algo assim:

    Me.NomeDoCampo.SelStart = Len(Me.NomeDoCampo)

    SelStart significa o local para onde mandar o cursor dentro do campo. Como pegamos todo o tamanho do campo, ou seja, todos os caracteres que estiver nele, o cursor será enviado para o final. Talvez seja interessante colocar uma linha antes de colar:

    Me.NomeDoCampo = Me.NomeDoCampo & VBCRLF
    Me.NomeDoCampo.SelStart = Len(Me.NomeDoCampo)
    DoCmd.RunCommand acCmdPaste


    ou colocar um espaço depois do que já estiver no campo:

    Me.NomeDoCampo = Me.NomeDoCampo & " "

    Tente adaptar para o seu caso.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 19:02

    Criquio, consegui... fiz uma adaptação da sua rotina e saiu tudo beleza... só tinha mais uma pequena questão...

    Reparei que todos os textos "rich text" começam como um < div > e terminan com um < /div >

    Isso acaba com a estrutura dos meus relatórios, pois coloco vários campos num só... tipo: [Texto1] & [Texto2] & [Texto3]...

    E se um deles for "rich text", por causa do < div > salta para a outra linha, como um parágrafo, sendo que no relatório é para ser um texto só, tudo junto...

    Poderia me ajudar nisso?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 19:24

    Geralmente utilizamos tags html para formatar texto e parágrafo. Poste a função completa que está utilizando e tambem um exemplo de como o texto precisa aparecer no relatório.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 19:43

    "Às " & [Hora] & " horas de " & [Data] & ", compareceu nesta repartição, o(a) senhor(a)" & [Nome] & ", que tem o seguinte a declarar: " & [Declaração]

    Sendo que esse último campo, "Declaração", está no formato "rich text"...

    E quando quero juntar todos esses campos num texto só, sem parágrafos, fica assim:

    Às 20:30 horas de 10/10/2000, compareceu nesta repartição, o(a) senhor(a) FULADO DE TAL, que tem o seguinte a declarar:
    Que nunca fez nenhuma postagem no fórum Maximo Access, e se o fizeram em seu nome foi sem sua autorização...


    Mas deveria ser assim, tudo junto, num parágrafo só:

    Às 20:30 horas de 10/10/2000, compareceu nesta repartição, o(a) senhor(a) FULADO DE TAL, que tem o seguinte a declarar: Que nunca fez nenhuma postagem no fórum Maximo Access, e se o fizeram em seu nome foi sem sua autorização...

    Isso ocorre porque todo texto no formato "rich text" começa e termina com um < div >
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 19:48

    Tente substituir os < div > e < / div > por nada:

    "Às " & [Hora] & " horas de " & [Data] & ", compareceu nesta repartição, o(a) senhor(a)" & [Nome] & ", que tem o seguinte a declarar: " & Replace(Replace([Declaração], "< div >", ""), "< / div >", "")


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 20:08

    Muito bom Criquio....

    Testei aqui e ficou bacana...

    Agradeço muito a ajuda....

    Pode colocar [Resolvido]....
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 20:10

    Grato pelo retorno. Tem um botão escrito Resolvido acima e à direita de onde você clica para Enviar a mensagem. Dessa vez eu clico.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 19/1/2012, 20:25

    Foi mal, nem tinha visto... hehe

    Obrigado de novo...

    Sei que já está encerrado, mas tinha só mais uma questão: no textbox, quando eu seleciono parte do texto e movimento o ponteiro do mouse um pouco para cima, aparece uma barra flutuante com as principais formatações (negrito, itálico, sublinhado...)

    Tem como dsativá-la?

    Essa é a última dúvida... prometo... e agradeço!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  criquio 19/1/2012, 21:01

    Ainda não precisei mexer nessa função. Você pode verificar se tem algum runCommand que atenda. Digite, por exemplo, no "Ao receber foco" do campo DoCmd.RunCommand e dê um espaço para exibir a lista de comandos disponíveis. Talvez algum deles atenda.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Convidad 19/1/2012, 21:51

    Olá
    Dando só um pitaco.
    Veja na folha de propriedades do formulário se Menu de Atalho está como Sim.
    Se estiver, mude para não.
    Abraços
    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 21/1/2012, 00:28

    Apesar de ter colocado resolvido, ainda não desenrolei esse "Colar Especial"...

    Tentei fazer assim, pra quando eu apertar o control o texto ficar normal:

    Private Sub Texto2_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyControl Then
    Me.Texto2.TextFormat = acTextFormatPlain
    End If


    E ao liberar, voltar para rich text:

    Private Sub Texto2_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyControl Then
    Me.Texto2.TextFormat = acTextFormatHTMLRichText
    End If


    Isso para poder usar o atalho Crtl=V, e quando terminar o campo voltar a rich text...
    Mas o texto cola em cima do texto já existente na textbox.... como um recortar e colar....

    Sendo que eu gostaria que:
    Apertar Ctrl - mudar textbox para normal
    Apertar V - colar (pois o Ctrl ficou pressionado) o texto da área de transferência no local onde está o cursor
    Liberar V - nada
    Liberar Ctrl - voltar textbox para rich text


    Desculpe a insistência nesse tópico, mas tenho que encontrar uma solução...
    Bão
    Bão
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 105
    Registrado : 04/05/2011

    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Bão 21/1/2012, 22:26

    Alguém para prestar um socorro?!
    avatar
    Convidad
    Convidado


    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Convidad 22/1/2012, 03:25

    Olá Viludo

    Um texto a ser colado em uma caixa de texto sempre irá colocar no inicio dela.
    Se a caixa de texto já tem texto, então você tem que instruir o Access disso

    Assim:
    Verificamos quantos caracteres já tem no texto da textBox:
    Len(Me.CaixaDeTexto)
    Somamos +1 para ir pra outra linha
    e dizemos para o Access onde deve iniciar a colagem do texto:
    Me.CaixaDeTexto.SelStart

    Juntamos tudo:
    Me.CaixaDeTexto.SelStart = Len(Me.CaixaDeTexto) + 1

    Dessa forma a colagem será apos o texto já existente na caixa de texto.


    Adpte no seu código

    Abraços


    Conteúdo patrocinado


    [Resolvido]Colar Especial Empty Re: [Resolvido]Colar Especial

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 13:24