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
Avatar do usuário
Por lauriene1987
Avatar
#64469
Tenho uma planilha de controle de ponto e estou tentando automatiza-la.
Criei uma macro que quando clico no botão "cadastrar" na aba "cadastro de hora" automaticamente ele copia todos os dados selecionados nas caixas de texto e copia para a aba "controle de horas" (para o fim da planilha).
Mas o macro dá erro e copia todos os funcionários e não apenas os selecionados. Estou quebrando a cabeça pra ver se descubro onde está o erro mas não entendo tanto de VBA, será que alguém poderia me ajudar a arrumar este erro?
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#64472
#
Experimente:
Código: Selecionar todos
Sub cadV2()
 Dim LR As Long
  Application.ScreenUpdating = False
  With ActiveSheet
   LR = .Cells(Rows.Count, 1).End(3).Row
   On Error Resume Next
   .ShowAllData
   On Error GoTo 0
   .[A7:G7].AutoFilter 1, "VERDADEIRO"
   .Range("B8:G" & LR).Copy
   Sheets("Controle de Horas").Cells(Rows.Count, 1).End(3)(2).PasteSpecial xlValues
   .ShowAllData
  End With
End Sub
Avatar do usuário
Por lauriene1987
Avatar
#64481
Muito obrigada, agora ta funcionando perfeitamente.
O que acontece também (não sei se é possivel, mas pelo q eu sei tudo é possível no excel kkk) é que nem sempre é a mesma pessoa que alimenta a planilha. Então eu queria criar mais dois botões na aba "cadastro de horas". Um pra fazer essa mesma função, só com o horário de entrada e outro que coloque só o horário de saída que está em branco. Não sei se deu pra entender muito bem. Se alguém puder me salvar nessa também ^^
Por osvaldomp
#64482
lauriene1987 escreveu: 10 Mai 2021 às 16:04 ... e outro que coloque só o horário de saída que está em branco.
Você quer que o código coloque o horário de saída na mesma linha em que já estará lançado o horário de entrada para certo funcionário/mês/dia na planilha Controle de Horas ou quer criar uma nova linha no final dos dados ?
Avatar do usuário
Por lauriene1987
Avatar
#64486
Primeira opção: "Você quer que o código coloque o horário de saída na mesma linha em que já estará lançado o horário de entrada para certo funcionário/mês/dia na planilha"
Por osvaldomp
#64491
Código: Selecionar todos
Sub CadastraEntrada()
 Dim LR As Long
  Application.ScreenUpdating = False
  With ActiveSheet
   LR = .Cells(Rows.Count, 1).End(3).Row
   On Error Resume Next
   .ShowAllData
   On Error GoTo 0
   .[A7:G7].AutoFilter 1, "VERDADEIRO"
   .Range("B8:E" & LR).Copy
   Sheets("Controle de Horas").Cells(Rows.Count, 1).End(3)(2).PasteSpecial xlValues
   .ShowAllData
  End With
End Sub
Código: Selecionar todos
Sub CadastraSaída()
 Dim LRo As Long, LRd As Long, s As Range, r As Long
  Application.ScreenUpdating = False
  LRd = Sheets("Controle de Horas").Cells(Rows.Count, 2).End(3).Row
  With ActiveSheet
   LRo = .Cells(Rows.Count, 1).End(3).Row
   On Error Resume Next
   .ShowAllData
   On Error GoTo 0
   .[A7:G7].AutoFilter 1, "VERDADEIRO"
   For Each s In .Range("C8:C" & LRo).SpecialCells(12)
    r = Evaluate("MATCH(1,(C" & s.Row & "='Controle de Horas'!B2:B" & LRd & ")*(B2='Controle de Horas'!C2:C" & LRd & ")*(B3='Controle de Horas'!D2:D" & LRd & "),0)+1")
    Sheets("Controle de Horas").Cells(r, 6) = .[B5]
   Next s
   .ShowAllData
  End With
End Sub

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