none
Duvida - Sistema de cadastro de envios RRS feed

  • Pergunta

  • Bom dia, 

    Sou novo na área de programação, e atualmente estou trabalho em uma planilha que cadastra novos envios de documentos CAD aqui na empresa para termos o controle. através de um UserForm (Como se fosse um userform de cadastro de clientes).   A planilha tem as seguintes colunas:  

    Nº PROTOCOLO  ;  NOME DO ARQUIVO ; DATA DE TRANSMISSÃO ; DESTINATÁRIO ;REMETENTE ; PROJETO; TRANSMISSÃO VIA ; DESIGNAÇÃO ; OBSERVAÇÃO ; ARQUIVADO

    Nome do arquivo, destinatário, projeto e designação  podem ter vários itens e pra cada item é necessário uma linha diferente pra facilitar no ato de pesquisar. 

    O meu problema é justamente esse, para o userform encontrar a primeira linha vazia para fazer um outro cadastro, eu preciso colocar uma coluna como range, porém nem sempre essa coluna é a que contem mais itens.  

    Alguem tem alguma sugestão, para no ato de encontrar a célula vazia para iniciar outro processo, ele faça uma varredura entre todas as colunas disponiveis e verifica a coluna mais longa para começçar o cadastro a partir dela, 

    Segue o código 

    Private Sub cmdGravar_Click()
    Dim lItem As Long
    
    
    'Ativar a primeira planilha
    ThisWorkbook.Worksheets("PROTOCOLOS").Activate
    'Selecionar a célula D3
    Range("D3").Select
    
    'Procurar a primeira célula vazia
    Do
    If Not (IsEmpty(ActiveCell)) Then
    ActiveCell.Offset(1, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
    
    'Carregar os dados digitados nas caixas de texto para a planilha
    
    ActiveCell.Offset(0, -3).Value = Range("K1").Value + 1
    ActiveCell.Offset(0, -1).Value = txtDataTransmissão.Value
    
       For lItem = 0 To ListBox1Dest.ListCount - 1
            If ListBox1Dest.Selected(lItem) = True Then
                Range("D10536").End(xlUp)(2, 1) = ListBox1Dest.List(lItem)
                ListBox1Dest.Selected(lItem) = False
            End If
            
        Next
        
    ActiveCell.Offset(0, 1).Value = txtremetente.Value
    
     For lItem = 0 To ListBox1Dest.ListCount - 1
            If ListBoxProj.Selected(lItem) = True Then
                Range("F10536").End(xlUp)(2, 1) = ListBoxProj.List(lItem)
                ListBoxProj.Selected(lItem) = False
            End If
            
        Next
        
        For lItem = 0 To ListBoxArquivos.ListCount - 1
            If ListBoxArquivos.Selected(lItem) = False Then
                Range("B10536").End(xlUp)(2, 1) = ListBoxArquivos.List(lItem)
                ListBoxArquivos.Selected(lItem) = False
            End If
            
        Next
        
        
         For lItem = 0 To ListBoxArquivos2.ListCount - 1
            If ListBoxArquivos2.Selected(lItem) = False Then
                Range("H10536").End(xlUp)(2, 1) = ListBoxArquivos2.List(lItem)
                ListBoxArquivos2.Selected(lItem) = False
            End If
            
        Next
        
    ActiveCell.Offset(0, 3).Value = txttrans.Value
    ActiveCell.Offset(0, 5).Value = txtObs.Value
    
    
    
    ActiveCell.EntireRow.Select
    With Selection.Borders(xlEdgeTop)
    
    .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
            
    End With
    
    'Limpar as caixas de texto
    txtDataTransmissão.Value = Empty
    txtremetente.Value = Empty
    ListBoxProj.Value = Empty
    txttrans.Value = Empty
    txtObs.Value = Empty
    
        
    
    
    
    'Aumenta em 1 o numero do protocolo
    Range("K1").Select
    ActiveCell.Value = ActiveCell.Value
    ActiveCell.Value = ActiveCell.Value + 1
    
    'Colocar o foco na primeira caixa de texto
    txtNomeArquivo.SetFocus
    
    
    End Sub
    


    sexta-feira, 4 de agosto de 2017 16:31

Respostas

  • Boa tarde, VitorSSantiago. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "Break Fix/Erro" ou "How to/Customização"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 4 de agosto de 2017 20:56
    Moderador

Todas as Respostas

  • Boa tarde, VitorSSantiago. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Essa seria uma questão de "Break Fix/Erro" ou "How to/Customização"?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 4 de agosto de 2017 20:56
    Moderador
  • Bom dia,

    Por falta de retorno essa thread está sendo encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 7 de agosto de 2017 13:14
    Moderador