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
Avatar do usuário
Por Caspirro
Posts Avatar
#36555
Tenho uma planilha de controle de brocas que estou criando para minha empresa.
Nesta planilha há a opção de mudar um status de requisição de broca caso seja necessário por motivos de perca, quebra entre outros.. os status são realizados (Compra das brocas realizadas ou em andamento) e Finalizado (assim que a compra realizada chegar na empresa).
E eu precisava que gerasse uma data que assim que eu mudasse o status para "FINALIZADO" em quaisquer uma das linhas de "O3 a O30" ele me gerasse um histórico da linha inteira de onde foi mudado este status. Com ajuda do forum consegui realizar está configuração.
Necessito agora de algo parecido.
Atualmente quando altero o status para Realizado em "O3 a O30" não acontece nada, porém preciso que assim que eu clicar em "REALIZADO" ele salve a data que eu alterei de alguma forma para que quando o status for atualizado de realizado para FINALIZADO (assim que a compra chegar na empresa) ele me jogue está data salva junto do histórico da linha inteira como ja está fazendo.
Segue em anexo a planilha para melhor visualização do que já está construído, assim fica mais facil para entenderem o que eu necessito, obrigado de verdade, me ajudara muito a quem querer ajudar.

Att.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por ExcelFlex
Posts Avatar
#36557
Olá caspirro, substitua o código na planilha "wshControlePecas" por :
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Application.Intersect(Range("O3:O30"), Target) Is Nothing Or (Target.Value <> "FINALIZADO" And Target.Value <> "REALIZADO") Then Exit Sub
  Cells(Rows.Count, 1).End(3)(2).Resize(, 15).Value = Cells(Target.Row, 1).Resize(, 15).Value
  Cells(Rows.Count, 1).End(3)(1, 17) = Date
End Sub
Avatar do usuário
Por Caspirro
Posts Avatar
#36558
EXCELFLEX obrigado pela ajuda, é quase o que você fez, porém a data do status "REALIZADO" está aparecendo no histórico como "data finalizado" e deveria ser como "data realizado" , se puder fazer está alteração pra mim agradeço.

obrigado :D
Avatar do usuário
Por ExcelFlex
Posts Avatar
#36562
Isso pode ser feito com uma pequena mudança:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Application.Intersect(Range("O3:O30"), Target) Is Nothing Or (Target.Value <> "FINALIZADO" And Target.Value <> "REALIZADO") Then Exit Sub
  Cells(Rows.Count, 1).End(3)(2).Resize(, 15).Value = Cells(Target.Row, 1).Resize(, 15).Value
  If Target.Value = "REALIZADO" Then Cells(Rows.Count, 1).End(3)(1, 16) = Date
  If Target.Value = "FINALIZADO" Then Cells(Rows.Count, 1).End(3)(1, 17) = Date
End Sub
Avatar do usuário
Por Caspirro
Posts Avatar
#36566
EXCELFLEX agora sim meu amigo, muito obrigado de verdade pelo seu tempo gasto pra me ajudar, muito grato.

Att, todo sucesso pra você!!
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