TransWikia.com

Escala de serviço filtro de datas no plano de férias

Stack Overflow em Português Asked by El capitan Comandante on September 26, 2021

Boa noite amigos, tenho uma escala de serviço no excel que é diária e tenho um campo próprio para afastamentos ( férias), preciso criar um filtro onde só apareça em tal campo os profissionais que estejam de férias naquele dia de acordo com a data da escala, como tenho que fazer as escalas de sex sab dom e seg e eventualmente em feriados prolongados, várias escalas, este filtro precisa selecionar na aba "férias" somente aqueles que estão de férias, ex se José está de férias até domingo ele aparece no campo próprio nas escalas de sex, sab e dom mas na de seg em diante não. Ou se ele sairá de férias a partir de segunda o filtro só coloca ele no campo a partir deste dia

Sei que tem que ser através de vba mas não conheço muito dessa parte.
Office 2010/2016.

Algo do tipo:
data da escala= L5
Data início= Z4
Data final= Z5

 SELECT * FROM 'ferias' WHERE L5>=Z4 E L5<=Z5

One Answer

'pessoal consegui fazer funcionar da seguinte forma:

Sub sql() Dim Escala As String Dim Inicio As String Dim Final As String Dim Afasta As String Dim Proximo As String linha = 0

Escala = Range("AA1").Value Afasta = Range("AB2").Value Inicio = Range("AG2").Value Final = Range("AH2").Value 'celula AA1 igual a data da escala 'Afasta é o tipo de afastamento (ferias, lic maternidade, etc...) 'Inicio a data inicial 'Final a data final

Range("AJ:AY").Clear

Do While Afasta <> ""

If Escala >= Inicio And Escala <= Final Then
     Range("AB2" & linha & ":AI2" & linha).Copy
    Range("AJ30").End(xlUp).Offset(1, 0).PasteSpecial
    Application.CutCopyMode = False
    
    
ElseIf Escala < Inicio Or Escala > Final Then
    Range("AB2" & linha & ":AI2" & linha).Copy
    Range("AR30").End(xlUp).Offset(1, 0).PasteSpecial
    Application.CutCopyMode = False
    linha = linha + 1
     Afasta = Range("AB2").Value & linha
    Inicio = Range("AG2").Value & linha
    Final = Range("AH2").Value & linha
MsgBox "AFASTAMENTOS ATUALIZADOS", vbInformation, ""
Else
MsgBox "Não Há Afastamentos", vbInfomation, ""

End If
          linha = linha + 1
    Afasta = Range("AB2" & linha).Value
    Inicio = Range("AG2" & linha).Value
    Final = Range("AH2" & linha).Value
 Loop
    

End Sub

'depois disso no campo afastamentos da escala faço o link com as celulas AJ1:AQ30 trazendo 'assim os resultados desejados

Answered by El capitan Comandante on September 26, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP