Filtrare dati mese da archivio anni (VB)

Anonimo
2009-10-05T14:50:12+00:00

Con formule non ho avuto problemi a realizzare, ma vorrei farlo con una macro; se cortesemente potete aiutarmi.

Ho questa situazione:

Foglio1

Colonna A Date inserite giornalmente in modo progressivo per diversi anni

Colonne B:AG orari di lavoro suddivisi in 4 colonne per ogni dipendente (ora inizio - ora fine - ora inizio - ora fine) per via di orari spezzati nell'arco della giornata.

Dovrei al Foglio2 riportare i turni di un dipendente per l'intero mese di volta in volta indicato in base all'anno e mese (magari in una cella).

In particolare mi serve estrapolare i dati di un mese delle colonne A, N:Q del Foglio1 e riportarli al range A2:E32 del Foglio2.

A è la colonna delle date (Foglio1)

N:Q sono le colonne degli orari di un dipendente che a me occorre estrapolare (Foglio1)

A2:E32 è il range occupato per i giorni massimi (31) di un mese (Foglio2)

Vi ringrazio anticipatamente e scusate se approfitto, ma ho provato con registratore (viste le mie scarse conoscenze) applicando i filtri, ma ottengo un risultato per un mese/anno specifico e a me occorre che sia flessibile in base al mese/anno scelto all'occorrenza.

Un saluto a tutti.

Ciao

Antonio

Microsoft 365 e Office | Installare, riscattare, attivare | Per la casa | Altro

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

1 risposta

Ordina per: Più utili
  1. Anonimo
    2009-10-07T08:00:50+00:00

    Per ora ho risolto alla meno peggio, mi sono riportato le formule in codice, poi ne copio/incollo il risultato sulle stesse celle :-)

    Ho utilizzato una userForm per scelta Anno e Mese che poi vado a caricare in celle e utilizzo nelle formule.

    '<----------

    Private Sub CommandButton1_Click()

    Range("P1").Value = TextBox1.Value

    Range("Q1").Value = ComboBox1.Value

    Unload Me

    Application.ScreenUpdating = False

    ActiveSheet.Unprotect

        Range("A2").Select

        ActiveCell.FormulaR1C1 = "=DATE(R1C16,R1C18,1)"

        Range("A3").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(R[-1]C="""","""",IF(MONTH(R[-1]C+1)<>R1C18,"""",R[-1]C+1))"

        Range("A3").Select

        Selection.AutoFill Destination:=Range("A3:A32"), Type:=xlFillDefault

        Range("A3:A32").Select

        Range("B2").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(RC[-1]="""","""",VLOOKUP(RC1,STORICO!R3C1:R10000C33,14,FALSE))"

        Range("C2").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(RC1="""","""",VLOOKUP(RC1,STORICO!R3C1:R10000C33,15,FALSE))"

        Range("D2").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(RC1="""","""",VLOOKUP(RC1,STORICO!R3C1:R10000C33,16,FALSE))"

        Range("E2").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(RC1="""","""",VLOOKUP(RC1,STORICO!R3C1:R10000C33,17,FALSE))"

        Range("F2").Select

        ActiveCell.FormulaR1C1 = _

            "=IF(RC[-5]="""","""",IF(ISERROR((RC[-1]-RC[-2])+(RC[-3]-RC[-4])),"""",(RC[-1]-RC[-2])+(RC[-3]-RC[-4])))"

        Range("B2:F2").Select

        Selection.AutoFill Destination:=Range("B2:F32"), Type:=xlFillDefault

        Range("B2:F32").Select

        Range("A2:F32").Select

        Selection.Copy

        Range("A2").Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=False

        Range("L1").Select

        Application.CutCopyMode = False

        Selection.ClearContents

        Range("G2").Select

        ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False

    End Sub

    '<----------

    Il problema è che probabilmente non gira su versioni diverse da excel 2007, che ho utilizzato e al momento non ho modo di testare.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento