none
Mini banco de dados no Excel RRS feed

  • Pergunta

  • Pessoal, preciso muito da ajuda de vcs.

    Eu utilizo o código abaixo para exportar dados para uma planilha, que me atende como um banco de dados, pesquisando a primeira linha em branco e preenchendo-a. 

    Porém, eu preciso fazer com que ela evite repetições. Por exemplo, a rotina deverá fazer uma busca com base no CPF na coluna "C". Se não for encontrado resultado (se o CPF dele ainda não tiver sido cadastrado), aí sim ela estará permitida a salvar na primeira linha em branco. Se o CPF já constar na lista, ele não deve fazer nada.

    Como eu poderia fazer isso?

    Function RetornaLin(Sht As String, Col As String)
    Dim UltLinPlan As Long
     
    UltLinPlan = Sheets(Sht).Range("A65536").End(xlDown).Row
    
    RetornaLin = Sheets(Sht).Range(Col & UltLinPlan).End(xlUp).Offset(1, 2).Row
     
    End Function
    
    '''''''''''''''
    
    Dim Lin As Long
    Lin = RetornaLin("plan2", "C")
    Plan1.Range("A12").Copy Plan2.Range("A" & Lin)
    
    '''''''''''''''

    segunda-feira, 9 de fevereiro de 2015 13:03

Respostas

  • Sub checarCPF()
        Dim cpfNúmero As String
        Dim cpfRow As Long
        
        cpfNúmero = "06188354497"
        
        'Altere o nome da planilha abaixo a seu gosto:
        cpfRow = getMatchRow(cpfNúmero, ThisWorkbook.Worksheets("Plan1").Columns("C"))
        If cpfRow > 0 Then
            MsgBox "CPF encontrado na linha " & cpfRow & "."
        Else
            MsgBox "CPF não encontrado"
        End If
    End Sub
    
    
    Private Function getMatchRow(searchValue As Variant, _
                                 searchArray As Variant) As Long
      'This function returns 0 if searchValue is not on searchArray.
      
      Dim element As Long
    
      On Error Resume Next
      element = WorksheetFunction.Match(CDbl(searchValue), searchArray, 0)
      If element = 0 Then element = WorksheetFunction.Match(CStr(searchValue), searchArray, 0)
      
      getMatchRow = element
    End Function


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 10 de fevereiro de 2015 13:11
    Moderador

Todas as Respostas

  • Sub checarCPF()
        Dim cpfNúmero As String
        Dim cpfRow As Long
        
        cpfNúmero = "06188354497"
        
        'Altere o nome da planilha abaixo a seu gosto:
        cpfRow = getMatchRow(cpfNúmero, ThisWorkbook.Worksheets("Plan1").Columns("C"))
        If cpfRow > 0 Then
            MsgBox "CPF encontrado na linha " & cpfRow & "."
        Else
            MsgBox "CPF não encontrado"
        End If
    End Sub
    
    
    Private Function getMatchRow(searchValue As Variant, _
                                 searchArray As Variant) As Long
      'This function returns 0 if searchValue is not on searchArray.
      
      Dim element As Long
    
      On Error Resume Next
      element = WorksheetFunction.Match(CDbl(searchValue), searchArray, 0)
      If element = 0 Then element = WorksheetFunction.Match(CStr(searchValue), searchArray, 0)
      
      getMatchRow = element
    End Function


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 10 de fevereiro de 2015 13:11
    Moderador
  • Vlw fera :)
    quarta-feira, 11 de fevereiro de 2015 12:42