Usuário com melhor resposta
Nº MAXIMO DE UMA RANGE

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...
Respostas
-
Tente isto:
Code BlockOption Explicit
Sub MaxCol()
Dim lngMaxCol As Long
Dim lngMaxRow As Long
Dim sht As WorksheetSet 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.RowMsgBox "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,
-
Todas as Respostas
-
Tente isto:
Code BlockOption Explicit
Sub MaxCol()
Dim lngMaxCol As Long
Dim lngMaxRow As Long
Dim sht As WorksheetSet 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.RowMsgBox "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,
-