Página 1 de 1

Argumento não opcional ...

Enviado: 21 Mai 2019 às 10:51
por VictorPena
Olá pessoal,
estou tentando criar um formulário em VBA, nele criei um botão chamado Pesquisar que tem a função de contar as linhas livre dentro de uma sheet. Dentro da chamada do botão (Private Sub CommandButton2_Click()) estou chamando uma função
responsável pela contagem dos espaços em branco. Porém quando tento rodar a função aparece a mensagem de Argumento não opcional. Sei que está faltando alguma coisa, mas não sei o que...
Por favor me ajudem a resolver esse problema!!!

Abaixo segue o script de ambas as chamadas:

'Chamada do Botão Pesquisar
Private Sub CommandButton2_Click()
lsContaLinhas2

ComboBox2.SetFocus
End Sub

'Função que Conta o número de linhas em branco na tabela
Public Function lsContaLinhas2(formulario As UserForm, area As Range)
Dim celula As Range, TotalLinhas As Long
TotalLinhas = 0
For Each celula In area
If celula = "" Then
TotalLinhas = TotalLinhas + 1
End If
Next
ContaLinhas2 = TotalLinhas
MsgBox lsContaLinhas2(Range("B4:B24"))
End Function

Re: Argumento não opcional ...

Enviado: 21 Mai 2019 às 13:46
por babdallas
Note que a sua função lsContaLinhas2 exige dois parâmetros (formulario que é um Userform e Area que é um intervalo de células). Quando você chamou a função, estes parâmetros não foram passados. Por isso causou este erro.
Tente mudar esta função para isso:
Código: Selecionar todos
Public Function lsContaLinhas2(area As Range)
          IsContaLinhas2 = Application.WorksheetFunction.CountBlank(area)
End Function
Quando for chamar a função, faça assim:
Código: Selecionar todos
     lsContaLinhas2(wshTeste.Range("A4:B20"))
End Sub
Note que em uma hipotética planilha com o codename wshTeste (só como exemplo) eu coloquei o intervalo A4:B20 como parâmetro para que seja fornecida. Lembre-se que a função irá retornaer um número e que voc~e deverá fazer algo com esse número (por exemplo, fazer alguma conta, colocar este valor em textbox, etc)