Página 1 de 1

Erro de síntaxe

Enviado: 24 Mai 2019 às 14:40
por VictorPena
Olá pessoal, criei uma lógica na qual o script conta quantas linhas vazias existem dentro de uma planilha. Logo depois guarda em outra sheet o número das linhas que estão lives. Dentro de uma função chamada inserir criei a seguinte lógica:

' Função que recebe os registros dos textbox
Public Function lsInserirTextBox(formulario As UserForm, ByVal lSheet As String, ByVal lColunaCodigo As Long)
Dim controle As Control
Dim lUltimaLinhaAtiva As Long
Dim Linha As Integer

Linha = 0

ThisWorkbook.Sheets("Livre").Cells(1, "A").Value = Linha

Worksheets("Cadastro").Cells(Linha, "B") = lUltimaLinhaAtiva

For Each controle In formulario.Controls
lsInserir controle, lSheet, lColunaCodigo, lUltimaLinhaAtiva
Next
End Function
o problema é que não sei pq essa lógica está fora da sintaxe:
" ThisWorkbook.Sheets("Livre").Cells(1, "A").Value = Linha "

poderiam me ajudar?

grande abraço!!!

Erro de síntaxe

Enviado: 24 Mai 2019 às 15:07
por Reinaldo
Não sei quanto a lógica da função,pois para ser sincero não entendi.
Porem o erro muito provavelmente deva a rotina não haver encontrado a planilha nomeada como Livre

Re: Erro de síntaxe

Enviado: 24 Mai 2019 às 16:08
por VictorPena
Reinaldo escreveu:Não sei quanto a lógica da função,pois para ser sincero não entendi.
Porem o erro muito provavelmente deva a rotina não haver encontrado a planilha nomeada como Livre
Então minha intenção é a seguinte, tenho uma planilha com vários registros, porém nela existem várias células em branco.
Montei um script que conta as células em branco e armazena o número das suas linhas numa outra sheet chamada Livres.
O próximo passo é pegar a primeira linha da sheet Livres que vai conter a primeira linha livre na Sheet Cadastro. Então quando eu fizer uma inserção de dados no formulário a linha na qual será registrado será a primeira linha sinalizada na sheet Livres.

Exemplo: na Sheet Livres a primeira linha é o número 130, então quando eu for inserir algum dado meu formulário vai direcionar esse dado para a a linha 130 da sheet Cadastro.

Re: Erro de síntaxe

Enviado: 24 Mai 2019 às 16:15
por VictorPena
VictorPena escreveu:
Reinaldo escreveu:Não sei quanto a lógica da função,pois para ser sincero não entendi.
Porem o erro muito provavelmente deva a rotina não haver encontrado a planilha nomeada como Livre
Então minha intenção é a seguinte, tenho uma planilha com vários registros, porém nela existem várias células em branco.
Montei um script que conta as células em branco e armazena o número das suas linhas numa outra sheet chamada Livres.
O próximo passo é pegar a primeira linha da sheet Livres que vai conter a primeira linha livre na Sheet Cadastro. Então quando eu fizer uma inserção de dados no formulário a linha na qual será registrado será a primeira linha sinalizada na sheet Livres.

Exemplo: na Sheet Livres a primeira linha é o número 130, então quando eu for inserir algum dado meu formulário vai direcionar esse dado para a a linha 130 da sheet Cadastro.

' Função que recebe os registros dos textbox

Public Function lsInserirTextBox(formulario As UserForm, ByVal lSheet As String, ByVal lColunaCodigo As Long)
Dim controle As Control
Dim lUltimaLinhaAtiva As Long
Dim Linha As Integer


ThisWorkbook.Sheets("Livres").Cells(1, "A").Value = Linha 'script responsável por pegar a primeira linha da sheet Livres

Worksheets("Cadastro").Cells(Linha, "B") = lUltimaLinhaAtiva 'script responsável por direcionar a primeira linha livre
na sheet Cadastro

For Each controle In formulario.Controls
lsInserir controle, lSheet, lColunaCodigo, lUltimaLinhaAtiva
Next

End Function