Número de contagem de células selecionadas

3

Como faço para contar o número de células selecionadas, independentemente do conteúdo da célula?

Existem dois casos de uso. Eu preciso usar o caso 2 agora:

  1. Quando faço uma ou várias seleções, quero saber quantas células,
  2. Quero selecionar exatamente N células usando várias seleções. Eu continuo fazendo e redimensionando as seleções até que o número (que deve estar ao vivo na tela em algum lugar) atinja N

Para o nº 1, tenho uma solução alternativa: selecione uma única célula contendo texto, copie (para que tenha uma borda animada), faça suas seleções, pressione colar e leia a contagem na barra de status.

Para o nº 2, não conheço uma solução alternativa que não envolva a repetição da solução # 1 dezenas de vezes e, em seguida, aperte desfazer

.

    
por Mark Jeronimus 28.05.2015 / 10:07

3 respostas

1

Para abordar o ponto # 1, você pode usar este VBa. O problema é que você não explica como quer ver esse detalhe? Então eu adicionei como uma caixa de mensagem.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim totalCells As Long
totalCells = Selection.Cells.Count

MsgBox (totalCells)
End Sub

Adicionei o VBa à Folha1. Veja também Como adiciono o VBA no MS Office?

Apenas não selecione todas as células como será através de uma exceção de estouro

Oproblemaéqueopop-upocorrerátodasasvezes,sugiroquevocêsubstitua

PrivateSubWorksheet_SelectionChange(ByValalvocomointervalo)

MsgBox(totalCells)

com

Range("M1").Value = totalCells ' CHANGE THE RANGE TO THE CELL YOU WANT
    
por 28.05.2015 / 11:19
0

A única maneira que eu poderia pensar em fazer o que você quer seria com o VBA.

Se você quisesse uma função para colocar isso em uma célula - algo assim funcionaria:

Public Function cellcount()
Application.Volatile
cellcount = Selection.Cells.count
End Function

Você pode executar novamente a função pressionando F9 para obter a resposta após cada alteração de seleção.

    
por 28.05.2015 / 10:48
0

Muito obrigado a todos. Sua informação acima pode ter alguns anos, mas é exatamente o que eu precisava hoje. No caso de gerar ideias para outra pessoa, eis como ajustei as opções acima para as minhas necessidades. (Nosso custo não é de fato US $ 2 / hora, é claro. Mas você entendeu.) Obrigado!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Const HOURS As Integer = 10        ' hours per cell
    Const COST As Integer = 2 * HOURS  ' dollars per cell
    Const SPACER As String = "   "

    Dim numCells As Long

    numCells = Selection.Cells.Count

    If numCells < 2 Then

        Application.StatusBar = False

    Else

        On Error Resume Next ' in case the selection is so large it causes an overflow error
        Application.StatusBar = "Cells: " & numCells _
                     & SPACER & "Hours: " & (numCells * HOURS) _
                     & SPACER & "Cost: " & FormatCurrency(numCells * COST, 0)

    End If

End Sub
    
por 01.11.2018 / 23:29