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
'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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP