Página 1 de 1

Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 15:10
por LuizGarpelli
Não consigo rodar a função abaixo com a variável cont1
Obrigado

Private Sub Gerar_Click()
Dim cont As Integer
cont = ContarRegistro(Worksheets("Planilha Ativa").Range(Cells(10, 2), Cells(28, 2)))

Dim cont1 As Integer
cont1 = ContarRegistro(Worksheets("Outra Planilha").Range(Cells(10, 2), Cells(28, 2)))
O primeiro funciona e no segundo ocorre um erro: Erro em tempo de execução 1004
Erro de definição de aplicativo ou de definição de objeto

End Sub
Public Function ContarRegistro(area As Range) As Long
Dim celula As Range, TotalLinhas As Long
TotalLinhas = 0
For Each celula In area
If celula <> "" Then
TotalLinhas = TotalLinhas + 1
End If
Next
ContarRegistro = TotalLinhas
End Function

Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 16:55
por Reinaldo
Uma possibilidade:
Código: Selecionar todos
Option Explicit

Private Sub Gerar_Click()
Dim cont As Integer
cont = ContarRegistro(Worksheets("Plan1"), Range(Cells(10, 2), Cells(28, 2)))

Dim cont1 As Integer
cont1 = ContarRegistro(Worksheets("Plan2"), Range(Cells(10, 2), Cells(28, 2)))
End Sub

Public Function ContarRegistro(pln As Worksheet, area As Range) As Long
Dim celula As Range, TotalLinhas As Long
TotalLinhas = 0
For Each celula In area
If celula <> "" Then
TotalLinhas = TotalLinhas + 1
End If
Next
ContarRegistro = TotalLinhas
End Function

Re: Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 17:25
por osvaldomp
Código: Selecionar todos
Sub Gerar_Click()
 Dim cont As Integer, cont1 As Integer
  cont = ContarRegistro(Sheets("Planilha Ativa"), Range(Cells(10, 2), Cells(28, 2)).Address)
  cont1 = ContarRegistro(Sheets("Outra Planilha"), Range(Cells(10, 2), Cells(28, 2)).Address)
End Sub
Public Function ContarRegistro(ws As Worksheet, area As String) As Long
 Dim celula As Range, TotalLinhas As Long
  TotalLinhas = 0
   For Each celula In Sheets(ws.Name).Range(area)
    If celula <> "" Then
    TotalLinhas = TotalLinhas + 1
    End If
   Next
  ContarRegistro = TotalLinhas
  Cells(Rows.Count, 4).End(3)(2).Resize(, 2).Value = Array(ContarRegistro, ws.Name)
End Function

Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 19:13
por Jimmy
Luiz,

Copiei seu código, executei e rodou sem problema, e sem nenhuma alteração.

Mande a planilha pra que possamos analisar melhor.

Ou rode passo a passo pra entender em que instrução tá dando erro.

Jimmy San Juan

Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 19:43
por LuizGarpelli
Obrigado Jimmy, criei uma planilha qualquer com a função que está dando erro.
Chamando a função na planilha 1 (ativa) funciona normal, já na planilha 2 apresenta erro quando peço para contar os dados da planilha 1 . Como enviar a planilha?

Re: Erro ao usar o Range(Cells(10, 2), Cells(28, 2))

Enviado: 24 Ago 2019 às 20:03
por osvaldomp
A sua função da forma como está elaborada só funciona para a planilha ativa. Se você trocar a planilha ativa ao rodar o código então o erro passará para o trecho do código que trata da outra planilha. Veja a função que postei, ela faz a contagem mesmo se a contagem não for na planilha ativa.