none
Nº MAXIMO DE UMA RANGE RRS feed

  • Pergunta

  • A paz a todos....

     

    Atraves de um userform cadastro clientes e cada um deve ter um código, mas preciso obter o nº maximo da coluna de códigos para acrescentar +1, e assim cada cliente ter seu código em ordem de cadastro..Alguém poderia me explicar como conseguir o maior nº da coluna em vba??

    Atraves de formula da planilha isso não teria problema, basta usar a formula =máximo(b3:b503) por exemplo..

     

    Obrigado...

    quinta-feira, 22 de novembro de 2007 16:52

Respostas

  • Tente isto:

     

     

    Code Block

    Option Explicit

    Sub MaxCol()

    Dim lngMaxCol As Long
    Dim lngMaxRow As Long
    Dim sht As Worksheet

    Set sht = ActiveSheet

        sht.Cells.Clear
        sht.Range(sht.Cells(2, 2), sht.Cells(10, 10)).Value = "X"

        lngMaxCol = sht.Cells.SpecialCells(xlCellTypeLastCell).EntireColumn.Column
        lngMaxRow = sht.Cells.SpecialCells(xlCellTypeLastCell).EntireRow.Row

        MsgBox "Coluna máxima é: " & lngMaxCol & vbCrLf & "Linha máxima é: " & _
                                     lngMaxRow & vbCrLf & "endereço da célula é: " & _
                                     Cells(lngMaxRow, lngMaxCol).Address, vbOKOnly, "Última célula"


       
       
        'caso precise das colunas e linhas de uma range especifica...
        lngMaxRow = ActiveSheet.Cells(2, 2).CurrentRegion.Rows.Count
        lngMaxCol = ActiveSheet.Cells(2, 2).CurrentRegion.Columns.Count
       
        MsgBox "Coluna máxima é: " & lngMaxCol & vbCrLf & "Linha máxima é: " & _
                                     lngMaxRow & vbCrLf & "endereço da célula é: " & _
                                     Cells(lngMaxRow + 1, lngMaxCol + 1).Address, vbOKOnly, "Última célula"

     

    End Sub

     

    Abs,

     

     

    quinta-feira, 22 de novembro de 2007 19:57
  • Ou isto:

    Code Block

     

    Function fMaxVal()
    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets(1).Columns(1).EntireColumn
    fMaxVal = Application.Max(rng)
    End Function

     

     

     

    sexta-feira, 23 de novembro de 2007 03:22
    Moderador

Todas as Respostas

  • Tente isto:

     

     

    Code Block

    Option Explicit

    Sub MaxCol()

    Dim lngMaxCol As Long
    Dim lngMaxRow As Long
    Dim sht As Worksheet

    Set sht = ActiveSheet

        sht.Cells.Clear
        sht.Range(sht.Cells(2, 2), sht.Cells(10, 10)).Value = "X"

        lngMaxCol = sht.Cells.SpecialCells(xlCellTypeLastCell).EntireColumn.Column
        lngMaxRow = sht.Cells.SpecialCells(xlCellTypeLastCell).EntireRow.Row

        MsgBox "Coluna máxima é: " & lngMaxCol & vbCrLf & "Linha máxima é: " & _
                                     lngMaxRow & vbCrLf & "endereço da célula é: " & _
                                     Cells(lngMaxRow, lngMaxCol).Address, vbOKOnly, "Última célula"


       
       
        'caso precise das colunas e linhas de uma range especifica...
        lngMaxRow = ActiveSheet.Cells(2, 2).CurrentRegion.Rows.Count
        lngMaxCol = ActiveSheet.Cells(2, 2).CurrentRegion.Columns.Count
       
        MsgBox "Coluna máxima é: " & lngMaxCol & vbCrLf & "Linha máxima é: " & _
                                     lngMaxRow & vbCrLf & "endereço da célula é: " & _
                                     Cells(lngMaxRow + 1, lngMaxCol + 1).Address, vbOKOnly, "Última célula"

     

    End Sub

     

    Abs,

     

     

    quinta-feira, 22 de novembro de 2007 19:57
  • Ou isto:

    Code Block

     

    Function fMaxVal()
    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets(1).Columns(1).EntireColumn
    fMaxVal = Application.Max(rng)
    End Function

     

     

     

    sexta-feira, 23 de novembro de 2007 03:22
    Moderador