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.
#32227
Pessoal, sou meio novo no VBA e empaquei nesse erro. O objetivo da aplicação é conter Dados de estagiários (como nome e data de admissão) em uma planilha, e um botão "cadastrar falta" nessa planilha, que alimenta outra planilha com as faltas através de um formulário. Eis o código

Private Sub CommandButton_gravar_Click()
ThisWorkbook.Sheets("Faltas").Range("A1").Select
' se A2 em faltas for diferente de nada, então fim do select e ctrl+down'
If ThisWorkbook.Sheets("Faltas").Range("A2").Value <> "" Then
Selection.End(xlDown).Select
End If
ActiveCell.Offset(1, 0).Select
Selection.Value = ThisWorkbook.Sheets("Planilha1").Range("A2")
ActiveCell.Offset(0, 1).Select
Selection.Value = TextBox_falta
ActiveCell.Offset(0, 1).Select
Selection.Value = TextBox_Processo
ThisWorkbook.RefreshAll
Unload Form_Falta
End Sub

Ele funciona no VBA, mas não funciona no botão, dá o erro tempo de execução 1004, ajuda please!
PS: alguma dica de como lançar mais de uma falta por vez?
Você não está autorizado a ver ou baixar esse anexo.
#32233
Gerald0 escreveu: ThisWorkbook.Sheets("Faltas").Range("A1").Select
O erro ocorre ao tentar selecionar uma célula que não é da planilha ativa. Ative primeiro a planilha e depois a célula, assim:
Sheets("Faltas").Activate
Range("A1").Select


No entanto é recomendável não utilizar Activate e ou Select.

PS: alguma dica de como lançar mais de uma falta por vez?
Exclua do seu código o comando que fecha o Form, preencha-o novamente e clique no botão Gravar ~~~> Unload Form_Falta


Experimente este código:
Código: Selecionar todos
Private Sub CommandButton_gravar_Click()
 With Sheets("Faltas").Cells(Rows.Count, 1)
  .End(3)(2) = Range("A2").Value
  .End(3)(1, 2) = TextBox_falta.Value
  .End(3)(1, 3) = TextBox_Processo.Value
 End With
 Unload Form_Falta
End Sub
#32262
Valeu mesmo Osvaldomp, funcionou aqui. Mas não entendi essa parte:



No entanto é recomendável não utilizar Activate e ou Select.

PS: alguma dica de como lançar mais de uma falta por vez?
Exclua do seu código o comando que fecha o Form, preencha-o novamente e clique no botão Gravar ~~~> Unload Form_Falta

e nem o segundo código, ele não gravou falta nem mostrou erro, poderia comentar ele?
#32273
Os comandos Activate e Select raramente são necessários em códigos escritos. Eles são basicamente utilizados em macros gravadas (lembrando que o gravador de macros não raciocina, não planeja, apenas se limita a escrever as ações efetuadas pelo usuário) e esses comandos também são utilizados por usuários com conhecimentos limitados dos recursos da linguagem VBA.
Como pontos negativos o uso desses comandos prolonga o tempo de execução do código, limita a flexibilidade do código, frequentemente exige a inserção de comandos adicionais no código e ainda provocam movimentação na tela.
Como você já declarou antes que está iniciando em macros ("Pessoal, sou meio novo no VBA") eu sugiro que desde já você escreva seus códigos sem utilizar tais comandos.

Gerald0 escreveu: PS: alguma dica de como lançar mais de uma falta por vez?
Exclua do seu código o comando que fecha o Form, preencha-o novamente e clique no botão Gravar ~~~> Unload Form_Falta
e nem o segundo código, ele não gravou falta nem mostrou erro, poderia comentar ele?
Sobre esta parte, o que eu entendi como "lançar mais de uma falta por vez" foi:
1. abre o Form / insere data e processo / clica em Gravar (mantém o Form na tela)
2. insere nova data e novo processo (se o caso) / clica em Gravar (mantém o Form na tela)
3. repete o item 2 acima quantas vezes desejar / por último clica em Cancelar para fechar o Form
Para viabilizar a sequência acima basta excluir o comando Unload Form_Falta
Se não for isso, explique.
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