Ir ao conteúdo
  • Cadastre-se

Giancarlo de Oliveira

Membro Pleno
  • Posts

    25
  • Cadastrado em

  • Última visita

posts postados por Giancarlo de Oliveira

  1. Boa tarde,

     

    Caros pesquisei no forum, mas não encontrei formas de usar os conteudos para o meu problema.

    Criei um form com uma listbox, essa listbox traz os dados de uma região especifica e reservada

    da planilha, que tem apenas essa função, no caso de fornecer os dados para preencher a listbox,

    até aí tudo funcionando.

     

    o que eu preciso é criar uma rotina nesse form, para que quando uma ou mais linhas da listbox

    estejam selecionadas, através de um botão ou duplo click esses dados sejam copiados para

    uma outra região da planilha.

     

    Tenho um critério importante, quando a linha selecionada na listbox for copiada para a região de

    destino, esses dados precisam ser empilhados logo abaixo do ultimo registro, isso considerando

    a célula A5 como referencia de topo, ou seja abaixo de A5 pode ser em qualquer linha em branco.

     

    Algo assim é possivel ?

    Existe alguma outra forma de reproduzir essa ação ?

     

    Muito grato a qualquer ajuda.

    Fiquem com Deus e ótima semana a todos.

  2. Boa tarde,

     

    Caros estou trabalhando em um formulário VBA para que os usuários de um setor 

    insiram 3 tipos de dados diferentes em uma listbox. Depois preciso transferir esses dados 

    para a planilha, mas de forma que os dados da listbox sejam inseridos em colunas que não 

    ficam exatamente uma ao lado outra.

     

    Na prática, estou tentando fazer com que os dados das três colunas da minha listbox, 

    sejam inseridos na minha planilha, seguindo a seguinte ordem:

    A 1º coluna da listbox deve ser inserida na coluna F da planilha

    A 2º coluna da listbox                ||            na coluna D da planilha

    A 3º coluna da listbox                ||            na coluna I   da planilha

     

    Fora que ainda tenho que conseguir que o código seja capaz de empilhar esses dados

    sempre abaixo dos demais preenchimentos que já devem existir na planilha.

     

    Existe algum método que faça essa rotina ?

    Estou enviado meu trabalho para facilitar o entendimento, nesse exemplo

    que estou enviando já inseri um código, que transfere da listbox para a planilha,

    mas não sei como aplicar esses critérios que expliquei mais acima.

     

    Agradeço qualquer opinião.

    Fiquem com Deus

     

     

     

    TESTE ATIVIDADES.zip

  3. Boa noite,

     

    Patropi, o código atende metade da premissa. 

    Com esse código consegui alterar as referencias de coluna e isso já é muito bom :D

    Mas quando alteramos os valores de alguma célula que eu já tenha inserido algum dado

    a hora acaba sendo atualizada. 

     

    No meu caso preciso que após a hora surgir pela 1º vez ela não se atualize mais, mesmo

    mudando o valor de alguma célula que já foi preenchida. 

     

    Tenho um outro projeto que esse código já está me ajudando :thumbsup:

    Já agradeço de qualquer forma.

    Abraço irmão.

     

     

    Att.

    Gian

  4. Boa noite.

    Amigos estou travado em um problema relacionado a planilha com compartilhamento e Macros.

    Descobri da pior forma que minha planilha cheia de macros e forms não funciona ao ativar o

    compartilhamento dessa pasta de trabalho.

     

    Minha planilha funciona full em um computador, porém ao compartilhar a pasta de trabalho,

    os demais usuários apesar de conseguir visualizar os dados inseridos, não conseguem acessar

    os botões da planilha. Os botões servem para chamar os meus forms e disparar algumas ações

    para o preenchimento da planilha.

     

    A gênero de conselho, informação, caridade enfim...rsss É possível contornar esse limitação de

    alguma forma ? Quais seriam os caminhos possíveis para contornar. Já estou considerando usar

    uma pasta de trabalho intermediária sem macros que fique compartilhada e sirva de "banco de dados"

    entre as planilhas que tem os forms.

     

    Alguém já teve que lidar com isso, existe alguma solução confiável nesse sentido ?

    Se alguém se interessar pelo caso posso postar a planilha.

     

    Obrigado adiantado.

    Gian

     

     

     

     

  5. Boa noite,

     

    Amigos usei o seguinte código do @CasaDoHardware

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim li As Long

    li = ActiveCell.Row

    If Cells(li, 2).Value <> "" Then Exit Sub

    If Target.Column <> 1 Then Exit Sub
    If Range("A" & Target.Row).Value <> "" Then
       Range("B" & Target.Row).Value = Time
      
    End If

    End Sub

     

    Mas queria expandir o uso desse código para utiliza-lo referenciado em outras 

    colunas da minha planilha.

    Nessa versão ele já funciona referenciado nas colunas A e B, onde ao inserir

    algum valor em células da coluna A, na célula ao lado (coluna ) surge a hora.

     

    Tentei  alterar alguns parâmetros desse código para que ele também faça essa

    função referenciado por exemplo:

    ao inserir algum dado em células da H, na mesma e na coluna M apareça a hora.

    É possivel ?

  6. @CasaDoHardware

    Deu certo com o seu código...:D:D

    O problema não era o código que você me sugeriu, nem os códigos que eu já uso.

    O problema era a planilha em si.

     

    Tive que exportar meus formulários, copiar o códigos e recolocar tudo em uma pasta de trabalho nova.

    Inseri os códigos que você sugeriu e a minha planilha já esta funcionando como deveria, assim que clico 

    no botão salvar dos meus forms, o código desprotege a planilha, insere os dados nas células e ao fim

    do código protege novamente a planilha.

     

    Muito show.

    Estou muito satisfeito com resultado, todos os recursos que eu tentei implementar estão operacionais e 

    tudo graças a sua ajuda @CasaDoHardware, @Patropi e demais colegas do Fórum.

    Graças a vocês finalizei esse projeto.

     

    Muito Obrigado à todos.

    Att.

    Gian 

     

     

     

  7.  

    @CasaDoHardware

    Beleza :thumbsup::thumbsup:

    Vou testar aqui e já digo se deu certo :)

     

    Mas obrigado de qualquer forma

    adicionado 13 minutos depois

    @CasaDoHardware

    Não conseguir usar o seu exemplo...:(

     

    Abaixo está o código que estou usando atualmente no botão salvar do meu form

     

    Private Sub btnSalvar_Click()

    'SE FOR CÓDIGO, CONFIRMA NECESSIDADE MALETA (SIM MARCA A CHECKBOX, NÃO SALVA O VALOR NÃO)
    If cmbCodigo.Value <> "" Then
    Dim maleta As VbMsgBoxResult
    maleta = MsgBox("CÓDIGO SELECIONADO" + vbCrLf + "NECESSÁRIO MALETA ?", vbYesNo, "Maleta")
        If maleta = 6 Then
        chkMaleta.Value = True
        Else
        chkMaleta.Value = False
        End If
    End If


    'ATIVA A PLANILHA
    ThisWorkbook.Worksheets("Rotativo").Activate

     

    'SELECIONA A CÉLULA A5
    Range("A5").Select

     

    'PROCURA A PRIMEIRA CÉLULA VAZIA
     Do
     If Not (IsEmpty(ActiveCell)) Then
     ActiveCell.Offset(1, 0).Select
     End If

     Loop Until IsEmpty(ActiveCell) = True

     

    'INSERE OS VALORES VALORES DAS TXT(s), CMB(s) E DEMAIS ITENS NA PLANILHA
    ActiveCell.Value = txtProntuario.Value
     ActiveCell.Offset(0, 1).Value = txtNome.Value
      ActiveCell.Offset(0, 2).Value = cmbOrigem.Value
       ActiveCell.Offset(0, 3).Value = cmbComplemento1.Value
        ActiveCell.Offset(0, 4).Value = cmbDestino.Value
         ActiveCell.Offset(0, 5).Value = cmbComplemento2.Value
          ActiveCell.Offset(0, 6).Value = cmbVeiculo.Value
           ActiveCell.Offset(0, 7).Value = txtSolicitante.Value
            ActiveCell.Offset(0, 12).Value = Now
             ActiveCell.Offset(0, 10).Value = cmbCodigo.Value
              ActiveCell.Offset(0, 17).Value = txtObservacoes.Value

     

    'INSERE A PALAVRA "MALETA" OU "NÃO" DE ACORDO COM A SELEÇÃO DA CHECKBOX
    If chkMaleta.Value = True Then
    ActiveCell.Offset(0, 11).Value = "MALETA"
    Else
    ActiveCell.Offset(0, 11).Value = "NÃO"
    End If

     

    'ATRIBUI O TEXTO NÃO PARA A COLUNA CÓDIGO CASO NENHUM CODIGO TENHA SIDO SELECIONADO
    If cmbCodigo.Value = "" Then
    ActiveCell.Offset(0, 10).Value = "NÃO"
    End If


    ActiveWorkbook.Save
    Unload Me
     
    End Sub
     

    É possível usar o seu código adaptando a estrutura que já estou usando ?

     

     

     

  8. Boa noite,

     

    Amigos estou em um pé de briga com uma planilha que estou produzindo para o meu trabalho.

    Tenho diversos macros, alguns botões, 7 forms e até agora com muita ajuda de todos aqui do

    Fórum esses recursos estão funcionando perfeitamente.

     

    Os forms servem para que os usuários gerem solicitações de atendimento e ao clicar em salvar

    esses dados são direcionados para locais específicos da minha planilha, até ai tranquilo.

     

    Quero agora realizar a seguinte rotina, ao clicar no botão salvar dos meus forms quero que a

    planilha que deve estar previamente toda bloqueada,  seja rapidamente desbloqueada, os dados

    sejam inseridos nas células apropriadas e em seguida as células voltem a ficar bloqueadas.

     

    Algo assim é possível ? 

     

    Já tentei tantos métodos que estou achando que isso vai ser impossível...rs

    Para terem um ideia da dificuldade, atualmente não consigo nem bloquear minha planilha de

    forma manual usando os botões Proteger/Desproteger do Excel.

     

    Faço tudo, seleciono todas células, botão direito, formatar células, Proteção, desmarco e

    marco de novo para garantir a opção Bloqueadas, vou em Proteger, deixo marcado apenas

    as duas primeiras opções e defino um senha. 

     

    Acesso minha planilha, e nada....:(, apenas alguns cabeçalhos e uma coluna ficam bloqueadas

    as demais células ficam acessíveis mesmo com o bloqueio ativo. Faço e desfaço esse processo

    milhões de vezes e nada. Quando tento fazer esse processo em uma planilha nova em branco

    funciona, mas na minha nada...

     

    Alguém imagina o que pode estar interferindo nesse recurso, ou tem algum sugestão que possa 

    ser aplicada ?

     

    Obrigado adiantado.

    Fiquem com Deus

     

     

     

  9. CasaDoHardware funcionou :thumbsup::thumbsup::thumbsup::thumbsup:

    Percebi algo que não sei se você havia reparado também

     

    Se eu digitar algo em A3, em B3 surge a hora atual, até aí beleza...

    Mas se eu acessar A3 novamente sem ter digitado nada em outra

    célula e alterar o valor de A3 a hora é atualizada.

     

    A hora só fica congelada como eu preciso se:

    Apos digitar algo em A10 (por exemplo) a hora vai surgir em B10, beleza...

    Em seguida eu devo digitar algo em qualquer outra célula da coluna A, por

    exemplo A15, agora sim, se eu voltar para A10 e mudar o valor contido

    nessa célula a hora que está em B10 não é mais atualizada.

     

    Apesar desse pequeno detalhe, a função ficou show. Vai servir para minha

    planilha numa boa.

     

    Mega obrigado pelo código, quase desisti de conseguir...rs

    Ótimo final de semana. 

    Fique com Deus.

     

    Att.

    Gian 

     

     

    adicionado 3 minutos depois

    Patropi,

     

    Vou testar mais a noite e dou um retorno.

    Eu dei uma lida no código e parece que vai servir sim, muito obrigado pelo Link.

     

    Obrigado pela parceria.

  10. 19 horas atrás, CasaDoHardware disse:

    Mas o codigo faz isso.

     

     

    O que esta acontecendo de diferente?

     

    Se você inserir dados a celula registar a hora se apagar a hora permanece sem alteração.

     

    Os testes que fiz aqui funcionaram dessa forma.

    Usei o código em uma planilha em branco (nova) e também na versão em que estou trabalhando,

    mas nos dois casos acontece o mesmo. Quando digito algum valor em qualquer célula da coluna A, 

    surge o horário na célula ao lado, ou seja coluna B. Até aí beleza.

     

    Mas se apagar ou modificar o conteúdo da célula em que a pouco digitei algo, a hora mostrada na

    coluna B é atualizado. Tentei uma porção de vezes, mas em todos casos sempre ocorre a atualização 

    da hora.

     

    Posso estar fazendo de errado, mesmo estando em uma planilha em branco (nova) ?

    Você tem alguma planilha com esse função funcionando de forma que a hora mostrada

    na coluna B não seja recalculada quando a valor da célula ao lado é alterado ?

     

  11. Pessoal seria possível fazer esse processo de carregar em txtbox(s) os valores de uma 

    sequencia de células paralelas da minha planilha para em cada txtbox que eu tenho em um form ?

     

    Na pratica seria assim:

     

    De acordo com a activeCell.row (linha que estiver selecionada na minha planilha)

    quero que ao clicar em um botão, as txtbox(s) de um form que eu fiz mostrem os

    valores das células dessa linha. 

     

    Por exemplo:

    na txtbox1 seja carregado o valor da célula que está na coluna A da linha selecionada

    na txtbox2 seja carregado o valor da célula que está na coluna B da linha selecionada

    na txtbox3 seja carregado o valor da célula que está na coluna C da linha selecionada

    ...

     

    Existe alguma forma de se fazer isso ?

     

  12. Vou tentar aqui e já digo se deu certo.

    Mas muito obrigado adiantado

    adicionado 12 minutos depois
    Em 01/05/2017 às 11:22, CasaDoHardware disse:

    Experimente esse codigo

     

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub

    If Range("A" & Target.Row).Value <> "" Then
       Range("B" & Target.Row).Value = Time
      
    End If

    End Sub

     

     

     

    Casa do Hardware,

     

    Seu código já atendeu 50% da minha situação :thumbsup:

    Ainda preciso que se um usuário altere ou exclua o valor já digitado em qualquer célula da coluna A,

    a hora mostrada na coluna B, não seja atualizada ou deixe de ser mostrada.

     

    você acha possível algo desse tipo ?

     

    Super, mega obrigado por enquanto irmão.

     

     

    adicionado 16 minutos depois

    Ah...

    Eu disse que atendeu 50% do problema, por que seu código já está fazendo a parte de na coluna B

    mostrar a hora ao inserir um valor em qualquer célula da coluna A. Falta essa parte que comentei, onde

    se um usuário alterar ou excluir algum valor de células da coluna A, a hora que ficou registrada nas

    células coluna B não sejam alteradas ou perdidas.

  13. Boa noite,

     

    Caros é possível ao inserir um texto dentro da célula A1, na celular B1 seja mostrado o horário

    em que o texto foi inserido, onde mesmo que eu altere ou apague o conteúdo de A1 a hora registrada

    em B1 não seja apagada ou atualizada ? Preciso que essa rotina não dependa de um botão.

     

    Estou a semanas procurando uma forma de fazer essa rotina, naveguei algumas postagens aqui 

    do fórum, na internet já diversas abordagens, mas não encontrei nada que resolvesse isso.

     

    Nas soluções que tentei a hora sempre acaba sendo atualizada, ou o registro da fica condicionado

    ao uso de botão.

     

    Fiquem com Deus

    Abraço

    Giancarlo

     

  14. Boa tarde,

     

    Caros preciso de uma "luz" para um problemas com a manipulação de dados tipo hora no Excel.

    Em uma planilha criei a seguinte função:

     

    Function DateTime()
    DateTime = Now
    End Function

     

    Chamo essa function através de um SE dentro da planilha.

    =SE(H5>0;DateTime();"")

     

    Dessa forma sempre que é inserido um valor na célula H5 por exemplo, a hora é exibida na célula

    onde está inserido o SE. Até aí sem novidades... O problema é na hora de levar esses dados para

    uma planilha de arquivo, uso uma macro que importa esses dados. Os horários acabam sendo

    importados trazendo data e hora e não apenas a hora como eu preciso.

     

    Sub IMPORT1()
    Dim wsOrigem As Worksheet
    Dim wsDestino As Worksheet
    Workbooks.CanCheckOut Filename:="Z:\Controle_Central\TESTE\ROTATIVO.xlsm"
    Set wsOrigem = Workbooks("ROTATIVO.xlsm").Worksheets("ROTATIVO")
    Set wsDestino = Workbooks("CONTAGENS.xlsm").Worksheets("1")
    wsOrigem.Range("A5:P800").Copy
    wsDestino.Range("A2").PasteSpecial xlValues
    End Sub

     

    Já tentei diversas soluções encontradas durante minha pesquisa, mas ainda não consegui resolver,

    preciso que necessariamente os dados do tipo hora sejam importados sem a data e que essas horas

    fiquem já no formato 14:35:20 (24hs) e não no 02:24:20 PM.

     

    O código abaixo resolve parcialmente meu problema, por que ele separa a data e hora em colunas

    separadas, mas ao fazer isso as horas são transformadas de 24hs para o formato AM PM .

     

    Sub SeparaHora()

        'SELECIONA A COLUNA L
        Range("L2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range("L2:L800").Select
        
        'APLICA REGRA DE SEPARAR DATA E HORA
        Selection.TextToColumns Destination:=Range("S2"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
     End sub

     

      
    É possível elaborar alguma função  que converta o conteúdo que está em

    02:45:30 PM para 14:45:30 ?

    Ou sei-lá algum função que retorne apenas a hora sem a data, assim eu

    deixaria de usar essa função DateTime na planilha de onde os dados são

    originados.

     

    Agradeço adiantado e perdoem o post extenso.

     

     

     

  15. Amigos,

     

    Acredito que pelo tempo passado, não deve haver nenhuma solução prática para o caso.

    Por mim declaro como encerrado, vou tentar outra abordagem para a minha planilha.

    De qualquer forma obrigado pelo espaço e ao Basole por ter oferecido um tipo de solução.

     

    Fiquem com Deus e bom final de semana

    Abraço 

  16. Galera, consegui usar parte da solução que Basole havia postado no link indicado, mas

    não tenho conhecimento para fazer um IF que seja capaz de atender minha necessidade.

     

    Estou enviado um cópia da minha Planilha.

     

    Eu quero tentar criar o seguinte recurso

    Na célula L2 por exemplo tenho registrado o horário de solicitação de atendimento,

    quero que SE o conteúdo da célula O2 foi igual a palavra "Aguardando" E a diferença

    de tempo entre a hora atual e a hora contida em L2 for maior do que 5 minutos, um aviso

    sonoro com uma MsgBox deve ser reproduzida.

     

    Pesquisei bastante e não encontrei nenhuma solução que funcionasse para o meu caso.

    A solução do Basole, me fez entender o recurso que reproduz áudio, mas não sei criar

    esse IF dentro da planilha que atenda a lógica e ainda consiga usar o recurso mostrado

    pelo Basole.

     

     

    ROTATIVO VERSÃO 1.1.zip

  17. 6 minutos atrás, Basole disse:

    Boa tarde,

     

    Basole eu tinha acabado de olhar essa solução que você postou através do link...:)

    Estou tentando adaptar, essa função PlaySound deve resolver o caso, vou só criar

    o IF e começar a testar.

     

    Perdoem ter feito a postagem ser ter lido esse tópico que você citou, se der certo

    volto aqui para confirmar ou pedir ajudar.

     

    Mega obrigado por enquanto Basole

    Gian

  18. Boa tarde,

     

    Caros é possível que alguma macro em Excel 2010 seja capaz de reproduzir um arquivo de audio (.wav, mp3...)

    de acordo com uma condição do tipo IF ?

     

    Na prática preciso que uma condição IF verifique se já se passaram mais de 5 minutos em relação ao

    horário digitado na célula A1 por exemplo, e caso isso seja verdadeiro reproduza o arquivo de áudio,

    como se fosse uma campainha chamando a atenção do operador.

     

    Super abraço

    Fiquem com Deus e bom feriado.

     

    Gian

     

     

     

     

  19. Boa tarde,

     

    Amigos, criei um formulário em VBA para a equipe de agendamento da empresa onde trabalho.

    Mesmo sendo novato consegui modelar meu form com textbox, combos, option button e

    demais elementos, porém admito não saber como salvar os dados de cada objeto na minha

    planilha.

     

    Na prática preciso conseguir trazer os dados de cada objeto para as respectivas colunas

    seguindo essa ordenação:

     

    ComboBox - cmbCRM para coluna C

    ComboBox - cmbCirurgiao para a coluna D

    TextBox - txtPaciente para a coluna E

    ComboBox - cmbTUSS para a coluna F

    ComboBox - cmbDescricao para a coluna G

    TextBox - txtData1 para a coluna H

    TextBox - txtHora1 para a coluna I

    Option Button - optAceito1 para coluna J (nesse caso gostaria que o caption desse elemento ficasse salvo na planilha)

    Option Button - optRecusado1 para coluna J (nesse caso gostaria que o caption desse elemento ficasse salvo na planilha)

    CheckBox - CheckBox1 - para a coluna K (se o Value for True guardasse palavra SIM ou NÃO para FALSE)

    ComboBox - cmbMotivo1 para a coluna L

    TextBox - txtData2 para a coluna M

    TextBox - txtHora2 para a coluna N

    Option Button - optAceito2 para coluna O (nesse caso gostaria que o caption desse elemento ficasse salvo na planilha)

    Option Button - optRecusado2 para coluna O (nesse caso gostaria que o caption desse elemento ficasse salvo na planilha)

    CheckBox - CheckBox2 - para a coluna P (se o Value for True guardasse palavra SIM ou NÃO para FALSE)

    ComboBox - cmbMotivo2 para a coluna Q

     

    Esses dados devem ser salvos na aba Agendamento linha a linha ao clicar no botão Salvar (cmdSalvar).

    O form chama-se frmAgendamento e está acessível na aba Agendamento através do botão Agendar no topo e a esquerda.

     

    Obrigado até mesmo para quem não puder ajudar mas que leu o tópico.

    No anexo está uma cópia da planilha.

     

     

    Att.

    Giancarlo 

     

  20. Saudações à todos do Fórum,
    Preciso de uma ajuda para um tópico que apesar de recorrente ainda não me

    trouxeram uma forma de resolver meu problema.

     

    Vamos ao problema:

    Uso duas pastas de trabalho (Rotativo) e (Contagens), ambos com apenas uma planilha cada:
    Rotativo: Serve para a equipe de atendimento preencher solicitações de atendimento durante um dia inteiro.
    Contagens: Aqui eu preciso arquivar os dados do arquivo Rotativo e empilhar esses dados logo abaixo dos dados já colhidos no dia anterior

     

    Hoje faço essa rotina manualmente, todos as noites apos às 00hs, acesso o arquivo Rotativo, copio e colo esses dados dentre de Contagens
    empilhando tudo por data. Gostaria de fazer isso através de uma Macro inserida dentro de uma botão. Vou deixar ambas anexadas para que
    possam entender melhor.

     

    Os critérios são:
    Os dados copiados de Rotativo são todos do intervalo entre A5 e P800
    Esses dados (apenas valores) devem ser colados dentro de Contagens de forma empilhada no intervalo entre B2 até Q1500

    Podem ignorar a coluna A de Contagens, lá deixar uma formula que não implica na construção da Macro

     

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!