Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por VictorPena
#44158
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!!!
Avatar do usuário
Por Reinaldo
Avatar
#44160
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
Por VictorPena
#44165
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.
Por VictorPena
#44166
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord