Ir ao conteúdo
  • Cadastre-se

Excel vba macro que busca nome e certificados de tripulante e coloca em aba resumo


Ir à solução Resolvido por OreiaG,

Posts recomendados

Bom dia Amigos, 

Gostaria de pedir uma ajuda a quem tiver conhecimento de VBA. Estou realizando um curso de VBA, porém ainda sou iniciante e ainda não consigo criar uma macro para fazer essa planilha funcionar conforme desejado. 

Basicamente, o que eu preciso, é que ao inserir o nome de um dos tripulantes do navio, apareça abaixo a relação dos certificados VENCIDOS (Expired), Próximos a Vencer (Near to Expire), Faltando (Missing) e os que estão dentro da validade ( Approved). Isto está na aba  "Resume for Person"

 

A outra aba é uma data base com as datas de validade de todos os certificados, indicando também se estão faltando a ser entregues (indicado pela letra M - de missing) e quando não expiram, os mesmo são indicados pela frase NO EXPIRES

Coloquei uma condicional para ficar verde (os certificados dentro da validade), amarelo (os que estão próximos a vencer - isso é, 90 dias para o vencimento), vermelho (para os que estão vencidos) e roxo com a letra M (para os que estão faltando a ser entregue - missing)

 

Então a macro que preciso, ela precisa buscar o nome da pessoa na data base (All crew certificate list) é jogar os nomes dos certificados (que são denominados na linha 7 da coluna I a coluna AS. Exemplo: COC (NATIONAL), AB SEAMAN  / OILER / BOSUN Course, FRB Course e etc), jogar essas informações na aba "Resume for Person" para o tripulante o qual foi posto o nome lá. E precisaria colocar também o Pais (Country) e Patente (Rank) do tripulante também vinculado ao nome na hora que colocasse lá.


Quem puder me ajudar, ficaria bastante grato, pois estou quebrando a cabeça aqui com fórmulas básicas de repetição como For e condicionais IFs que não estão funcionando na minha macro.
Desde já agradeço, quem puder ajudar.

Forte Abraço pessoal ! 🤜🤛

data base de certificados.jpg

resumo de certificado por tripulante.jpg

CREW CERTICATES STATUS TESTE - ALL CERTIFICATES.xlsx

Link para o comentário
Compartilhar em outros sites

  • Solução

Olá, @Alex Sapulla

Veja se este código pode lhe ajudar.

Cole uma cópia no módulo da planilha RESUME FOR PERSON.

Será executado ao alterar o nome em E9.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim k As Long, m As Long, x As Long
  If Target.Address <> "$E$9" Then Exit Sub
  Range("E10:E11,E18:E54,H18:I54,L18:M54,P18:Q54").Value = ""
  If Target.Value = "" Then Exit Sub
   With Sheets("ALL CREW CERTIFICATE LIST")
    k = .Range("G9:G" & .Cells(Rows.Count, "G").End(3).Row).Find([E9]).Row
    [E10] = .Cells(k, "F"): [E11] = .Cells(k, "H")
    For m = 9 To 45
     If .Cells(k, m) <> "NA" Then
      If .Cells(k, m) = "M" Then
       x = 5
      Else
       Select Case .Cells(k, m).DisplayFormat.Interior.ColorIndex
        Case 3: x = 8
        Case 14: x = 16
        Case 44: x = 12
       End Select
      End If
      Cells(18 + Application.CountA(Range(Cells(18, x), Cells(53, x))), x) = .Cells(7, m)
      If x <> 5 Then Cells(18 + Application.CountA(Range(Cells(18, x + 1), Cells(53, x + 1))), x + 1) = .Cells(k, m)
     End If
    Next m
   End With
End Sub

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!