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]Limitar caracteres

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Limitar caracteres

    Mensagem  vallfon 18/1/2013, 21:09

    Como inserir dados de uma caixa de texto do access em duas células distintas do excel?
    Exemplo: a caixa de texto do access insere 100 caracteres na célula A1 e o que passa disso é inserido na célula A2.
    Sou iniciante.
    Muito Grato!
    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]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  criquio 18/1/2013, 23:22

    Não testei, mas veja se é algo assim:

    Código:
    Dim oApp As Object, nCar as Integer, nVezes As Integer, Texto As String
     
        Set oApp = CreateObject("Excel.Application")

            oApp.workbooks.Open "C:\Caminho\Nome do arquivo.xlsx"
            oApp.Visible = False
            oApp.Worksheets("Plan1").Activate

            nVezes = 1

            For nCar = 1 To Len(Me.NomeDoCampo)
                If nCar Mod 100 <> 0 Then
                    Texto = Texto & Mid(Me.NomeDoCampo, nCar, 1)
                Else
                    oApp.Worksheets("Plan1").Sheets("A" & nVezes) = Texto
                    Texto = ""
                    nVezes = nVezes + 1
                End If
            Next

            oApp.Application.Quit
        Set oApp = Nothing


    .................................................................................
    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.

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 19/1/2013, 01:33

    Criquio, tentei usar colocando o código num botão mas deu problema no código:

    oApp.Worksheets("Plan1").Sheets("A" & nVezes) = Texto

    Desejo inserir os dados em duas células específicas, A16 e A17 e cada uma delas receberá, no máximo, 100 caracteres.

    Fiz mais um teste e não deu erro, contudo não funcionou. Usei o código abaixo, modificação do seu.

    Sub Limite()
    Dim wks As Object, nCar As Integer, nVezes As Integer, Texto As String

    Set WKB = EXC.Workbooks.Open("C:\Users\Mari\Desktop\Júlio\ConAccExcel\Form.xlsm")
    Set wks = WKB.Worksheets(1)
    nVezes = 7
    For nCar = 1 To Len(Me.TxtDetalhe)
    If nCar Mod 100 <> 0 Then
    Texto = Texto & Mid(Me.TxtDetalhe, nCar, 1)
    Else
    wks.Range("A" & nVezes) = Texto
    Texto = ""
    nVezes = nVezes + 1
    End If
    Next
    WKB.Close
    EXC.Quit
    End Sub
    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]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  criquio 19/1/2013, 02:47

    Tente algo assim:

    Código:
    Dim oApp As Object, nCar As Integer, nVezes As Integer, Texto As String
     
        Set oApp = CreateObject("Excel.Application")

            oApp.workbooks.Open CurrentProject.Path & "\Teste.xls"
            oApp.Visible = False
            oApp.Worksheets("Plan1").Activate

            nVezes = 16

            For nCar = 1 To Len(Me.Texto0)
                If nCar Mod 100 <> 0 And nVezes <= 17 Then
                    If nCar < 100 Then
                        Texto = Texto & Mid(Me.Texto0, nCar, 1)
                    Else
                        Texto = Texto & Mid(Me.Texto0, nCar - 1, 1)
                    End If
                Else
                    oApp.ActiveSheet.Range("A" & nVezes).Select
                    oApp.ActiveCell.Value = Texto
                    Texto = ""
                    nVezes = nVezes + 1
                End If
            Next

            oApp.ActiveSheet.Range("A1").Select

            oApp.ActiveWorkbook.Save
            oApp.Application.Quit

        Set oApp = Nothing


    .................................................................................
    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.

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 20/1/2013, 00:43

    Criquio,muito grato!! Funcionou perfeitamente.
    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 20/1/2013, 01:21

    Criquio só para terminar. O código funcionou muito bem em células não mescladas, contudo na mesclagem A16:H16 e A17:H17 não funcionou. Cem caracteres foram inseridos no primeiro intervalo e os demais na célula A61. Será que dá para resolver isso?
    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]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  criquio 20/1/2013, 01:37

    Como você está referenciando as células? Células mescladas se transformam em uma só, nomeado pela primeira célula na mesclagem, no caso, "A16" e "A17". Se referenciar apenas essas duas, deve funcionar. Fiz um teste aqui e funcionou tranquilo.


    .................................................................................
    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.

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 20/1/2013, 04:49

    Tudo bem! Está acontecendo o seguinte agora: ocorre a inserção nas células A16 e A17 e o que vem após(A18,A19, etc) é apagado. Creio que seja por causa desta parte do código:

    Else
    oApp.ActiveSheet.Range("A" & nVezes).Select
    oApp.ActiveCell.Value = Texto
    Texto = ""
    nVezes = nVezes + 1
    '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]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  criquio 20/1/2013, 10:59

    Você havia mencionado que queria copiar o texto para a A16 e a A17, por isso elaborei o código apenas para essas duas. Se a intenção é continuar inserindo texto nas outras células, precisa alterar a linha quem tem nVezes <= 17 para acomodar todo os texto nas células seguintes.


    .................................................................................
    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.

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 21/1/2013, 12:45

    Creio que não me expressei corretamente! O que estou dizendo é que o código faz a inserção corretamente nas células A16 e A17. Contudo, tenho outros dados nas células posteriores (A18,A19,A20, etc) que são apagados quando aciono o código. Aí prejudica o trabalho já realizado. Para ser mais exato é apago todos os dados contidos no intervalo de A18 até A67.
    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]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  criquio 21/1/2013, 13:16

    Tente trocar toda a parte abaixo:

    Código:
            nVezes = 16

            For nCar = 1 To Len(Me.Texto0)
                If nCar Mod 100 <> 0 And nVezes <= 17 Then
                    If nCar < 100 Then
                        Texto = Texto & Mid(Me.Texto0, nCar, 1)
                    Else
                        Texto = Texto & Mid(Me.Texto0, nCar - 1, 1)
                    End If
                Else
                    oApp.ActiveSheet.Range("A" & nVezes).Select
                    oApp.ActiveCell.Value = Texto
                    Texto = ""
                    nVezes = nVezes + 1
                End If
            Next
    por:

    Código:
          oApp.ActiveSheet.Range("A16:H16").Select
          oApp.ActiveCell.FormulaR1C1 = Left(Me.Texto0, 100)
          oApp.ActiveSheet.Range("A17:H17").Select
          oApp.ActiveCell.FormulaR1C1 = Mid(Me.Texto0, 101, 100)
    Não se esquecendo de trocar o nome do campo Texto0 para o nome correto do seu campo.

    Nesse caso, nas declarações Dim, pode deixar apenas a variável oApp As Object e excluir as outras.


    .................................................................................
    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.

    vallfon
    vallfon
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 15/05/2012

    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  vallfon 21/1/2013, 18:23

    Criquio, funcionou perfeitamente! É isso! Mais fácil que pensava. Salve!!!

    Conteúdo patrocinado


    [Resolvido]Limitar caracteres Empty Re: [Resolvido]Limitar caracteres

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 04:59