Creazione tabella



  • Creazione tabella
    di Mike (utente non iscritto) data: 08/02/2017 10:58:43

    Buongiorno,

    Vorrei per cortesia un aiuto sulla compilazione di un codice VBA per la creazione automatica di una tabella. Le mie conoscenze di VBA sono basiche e si limitano all'apprendimento tramite esempi e adattamento di codici che trovo online.

    Il foglio da cui serve il fetching dei dati ha 4 tabelle simili con 15 righe e 4 colonne compilata dagli utenti.

    Ho quattro diverse "Sezioni" (o classi di studenti) che inseriscono la richiesta di esame per i loro frequentatori.

    Ogni sezione riempie la sua tabella in cui inserisce "nome frequentatore", "numero di veicoli necessari per l'esame" (possono variare fino a 2), "tipo di esame" (che è un codice, un esempio è GSS = Guida su Sterrato), "giorno" (per quando è richiesto questo esame, lue-mar-merc-etc).

    Il codice VBA che cerco deve riconoscere per ogni sezione il giorno richiesto (Lun, mar, etc) e popolare su un altro foglio excel dello stesso file le tabelle dei vari giorni della settimana.

    In questi giorni la tabella da popolare avrà una colonna "Sezione" (con la sezione che ha richiesto l'esame, dati presi dall'altro foglio), una colonna "istruttore" (che sarà compilata a mano), una colonna "frequentatore" (dati presi dall'altro foglio), una colonna "Tipo di esame" (dati presi dall'altro foglio) e SE l'esame prevede più di un veicolo, una linea aggiuntiva bianca sotto alla linea compilata con i dati appena riportati. A seguire gli altri frequentatori con gli altri dati.

    Ho creato un file di esempio.

    Grazie in anticipo per il tempo dedicato.



  • di alfrimpa data: 08/02/2017 11:32:06

    Ciao Mike

    Sarebbe il caso che tu popolassi il tuo foglio1 con un po' di dati (fittizi) e mostrassi sul foglo2 il risultato desiderato.

    Per te sarebbe un problema se anziché avere un unico foglio con tutti i giorni della settimana ne avessi 5 uno per ciascun giorno?

    Alfredo





  • di Mike data: 08/02/2017 12:06:28

    Ho allegato l'esempio finale di come dovrebbe essere l'output.

    Se la soluzione è fattibile solo in diversi fogli, va bene. In caso poi cerco una soluzione ai differenti fogli.

    Ciò premesso, avere le tabelle come da esempio finale sarebbe ideale.

    Grazie



  • di alfrimpa data: 08/02/2017 15:39:46

    Ciao Mike

    Ti allego file Mike.xlsm i cui ho inserito la macro che vedi sotto.

    Ho modificato lievemente la struttura del foglio1 per ragioni di programmazione che è un po' complicato spiegare qui.

    Sul foglio1 in colonna E ho inserito una convalida dati per la scelta del giorno; tu non devi fare altro che scegliere il giorno e automaticamente il foglio2 sarà compilato di conseguenza.

    Fammi sapere se ci sono problemi od errori.

    Alfredo
     
    Option Explicit
    Option Compare Text
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Dim sezione As String
    Dim col As Integer
    Dim ur As Integer
    If Not Intersect(Target, Range("E3:E74")) Is Nothing Then
        Select Case Target.Row
            Case 3 To 17
                sezione = "Alfa"
            Case 22 To 36
                sezione = "Bravo"
            Case 41 To 55
                sezione = "Charlie"
            Case 60 To 74
                sezione = "Delta"
        End Select
        Select Case Target.Value
            Case Is = "Lun"
            col = 1
            Case Is = "Mar"
            col = 6
            Case Is = "Mer"
            col = 11
            Case Is = "Gio"
            col = 16
            Case Is = "Ven"
            col = 21
        End Select
    End If
    ur = Worksheets("Foglio2").Cells(Rows.Count, col).End(xlUp).Row
    Worksheets("Foglio2").Cells(ur + 1, col).Value = sezione
    Worksheets("Foglio2").Cells(ur + 1, col + 1).Value = Target.Offset(0, -3).Value
    Worksheets("Foglio2").Cells(ur + 1, col + 2).Value = Target.Offset(0, -2).Value
    Worksheets("Foglio2").Cells(ur + 1, col + 3).Value = Target.Offset(0, -1).Value
    End Sub
    
    






  • di Mike data: 08/02/2017 16:14:20

    Grazie. Proverò in serata.



  • di Mike data: 08/02/2017 16:37:52

    Sono riuscito ora a fare una prova.

    Ti allego il file con qualche prova che ho fatto. Sembra funzionare in generale, come si però nota crea problemi di headers della tabella il lunedì. La difficoltà più importante per lo scopo del foglio è che non crea una seconda linea quando i veicoli previsti sono due.

    Per favore, per una cortesia che mi evita del reverse engineering, la macro era intesa per me con attivazione tramite bottone. Se non è troppo spiegarmi come si modifica per farla attiva su richiesta, anziché sempre attiva, mi sarebbe di aiuto. Altrimenti posso trovare la strada da solo.

    Grazie del supporto.



  • di Mike data: 08/02/2017 20:43:39

    Buonasera,

    nel giocare con il codice ho scoperto un bug, che però sono riuscito a sistemare. Rimane il fatto che non riesco ad associare questa macro ad un bottone. Infatti lasciando le cose come stanno, se viene cambiato il giorno di un valore, i valori compaiono nella tabella giusta ma non scompaiono da dove erano. Il bottone mi eviterebbe queste rielaborazioni. 
     
    'prima
    ur = Worksheets("Foglio2").Cells(Rows.Count, col).End(xlUp).Row
    Worksheets("Foglio2").Cells(ur + 1, col).Value = sezione
    Worksheets("Foglio2").Cells(ur + 1, col + 1).Value = Target.Offset(0, -3).Value
    Worksheets("Foglio2").Cells(ur + 1, col + 2).Value = Target.Offset(0, -2).Value
    Worksheets("Foglio2").Cells(ur + 1, col + 3).Value = Target.Offset(0, -1).Value
    
    'dopo
    ur = Worksheets("Foglio2").Cells(Rows.Count, col).End(xlUp).Row
    Worksheets("Foglio2").Cells(ur + 1, col).Value = sezione
    Worksheets("Foglio2").Cells(ur + 1, col + 2).Value = Target.Offset(0, -3).Value
    Worksheets("Foglio2").Cells(ur + 1, col + 3).Value = Target.Offset(0, -1).Value



  • di alfrimpa data: 08/02/2017 21:58:05

    Solo per dire che in questa discussione non interverrò più.

    Alfredo





  • di Mike data: 09/02/2017 08:52:28

    Grazie comunque. Ho scoperto cos'è un cross posting ieri e penso di aver capito dove ho sbagliato.

    Ancora grazie dell'aiuto.



  • di Mike data: 18/02/2017 11:26:06

    Mi sono messo a lavoro e ho risolto il mio problema. Sono partito ovviamente dal codice di Alfredo, senza il quale non sarei mai riuscito ad arrivare ad una conclusione. Grazie Alfredo.

    Il codice magari non è pulitissimo, ci ho sbattuto parecchio. Ma funziona e fa quello che volevo.

    Allego il file finale e rimango a disposizione se qualcuno avesse delle domande su quello che ho fatto. Ovviamente, ribadisco che le mie conoscenze sono basiche.

    Nel cercare una soluzione inizialmente ho sbagliato effettuando quello che ho scoperto essere cross posting, tra parentesi sono stato attaccato anche da un grande maleducato di Ferrara, "dracoscrigno". Per questa ragione posto qua la soluzione.
     
    Sub Costr_Tab()
    '
    ' Popola la tabella in cui inseire gli esaminatori
    ' Processo da inserire nel "DO loop"
    
    
    
    If ActiveCell.Value = 1 Then ' copia i dati della riga che mi serve con un solo mezzo
    
        Sheets("Tide_up").Select
        'Range("A3").Select
        ActiveCell.Offset(0, -1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("A3").Select
        ActiveCell.Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        ' Range("C3").Select
        ActiveCell.Offset(0, 2).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("D3").Select
        ActiveCell.Offset(0, 3).Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        ' Range("D3").Select
        ActiveCell.Offset(0, 1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("E3").Select
        ActiveCell.Offset(0, 1).Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        'Range("E3").Select
        ActiveCell.Offset(0, 1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("B3").Select
        ActiveCell.Offset(0, -3).Select
        ActiveSheet.Paste
        
        ' Seleziona la cella successiva da riempire nel foglio "Elaborato 1"
        
        Sheets("Elaborato1").Select
        ActiveCell.Offset(1, -1).Select
        
        
        ' Seleziona la Cella successiva nel foglio "Tide_Up" da elaborare
        
        Sheets("Tide_up").Select
        ActiveCell.Offset(1, -3).Select
        
        
        
    
    ElseIf ActiveCell.Value = 2 Then
    
    'copia i dati che mi servono per 1 mezzo aggiungendo 1 riga per il supporto
    
       
        Sheets("Tide_up").Select
        'Range("A3").Select
        ActiveCell.Offset(0, -1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("A3").Select
        ActiveCell.Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        ' Range("C3").Select
        ActiveCell.Offset(0, 2).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("D3").Select
        ActiveCell.Offset(0, 3).Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        ' Range("D3").Select
        ActiveCell.Offset(0, 1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("E3").Select
        ActiveCell.Offset(0, 1).Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        'Range("E3").Select
        ActiveCell.Offset(0, 1).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("B3").Select
        ActiveCell.Offset(0, -3).Select
        ActiveSheet.Paste
        
        ' riga vuota
        
        Sheets("Tide_up").Select
        'Range("A3").Select
        ActiveCell.Offset(0, -4).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("A4").Select
        ActiveCell.Offset(1, -1).Select
        ActiveSheet.Paste
        
        Sheets("Tide_up").Select
        'Range("E3").Select
        ActiveCell.Offset(0, 4).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Elaborato1").Select
        ' Range("B4").Select
        ActiveCell.Offset(0, 1).Select
        ActiveSheet.Paste
        
        Sheets("Elaborato1").Select
        ' Range("E4").Select
        ActiveCell.Offset(0, 3).Select
        ActiveCell.FormulaR1C1 = "=CONCATENATE(""Supp "",R[-1]C)"
        
        
        ' Seleziona la cella successiva da riempire nel foglio "Elaborato 1"
        
        Sheets("Elaborato1").Select
        ActiveCell.Offset(1, -4).Select
        
        
        ' Seleziona la Cella successiva nel foglio "Tide_Up" da elaborare
        
        Sheets("Tide_up").Select
        ActiveCell.Offset(1, -3).Select
        
        
        
        
        
        End If
        
        
        
        
        
    End Sub
    
    Sub Cancella_Dati()
    '
    ' Cancella Dati Macro dei folgi "Applicativo", "Tide_UP" e "Dati utente"
    ' Processo che dovrebbe coincidere con lo Step finale e separato delle macro per preparare il foglio excel da capo
    
    '
           
        Sheets("Applicativo").Select
        Range("B60:E74").Select
        Range("E60").Activate
        Selection.ClearContents
        Range("B41:E55").Select
        Range("E55").Activate
        Selection.ClearContents
        Range("B22:E36").Select
        Range("E36").Activate
        Selection.ClearContents
        Range("B3:E17").Select
        Range("E17").Activate
        Selection.ClearContents
        Range("F3:F17,F22:F36,F41:F55,F60:F74").Select
        Range("F60").Activate
        Selection.ClearContents
        Range("A1").Select
        
        
        Sheets("Dati Utente").Select
        Range("J22:M36").Select
        Range("M22").Activate
        Selection.ClearContents
        Range("B22:E36").Select
        Range("E22").Activate
        Selection.ClearContents
        Range("B3:E17").Select
        Range("E3").Activate
        Selection.ClearContents
        Range("J3:M17").Select
        Range("M3").Activate
        Selection.ClearContents
        Range("F3:F17,N3:N17,F22:F36,N22:N36").Select
        Range("N22").Activate
        Selection.ClearContents
        Range("A1").Select
        
        Sheets("Tide_up").Select
        Range("A3:AD110").Select
        Selection.ClearContents
        Sheets("Tide_up").Select
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "Lun"
        
    End Sub
    
    Sub Copia_Dati()
    '
    ' Esegue la copia dei dati inseriti nel foglio "Applicativo" per permettere il popolamento della tabella "Tide_up"
    ' Dovrebbe coincidere con lo Step 1 dell'applicazione delle Macro
    
    '
        ' Tabella Sezione Alfa Copia dati Generali
        
        Sheets("Dati Utente").Select
        Range("B3:D17").Select
        Selection.Copy
        Sheets("Applicativo").Select
        Range("B3").Select
        ActiveSheet.Paste
        Sheets("Dati Utente").Select
        Range("F3:F17").Select
        Selection.Copy
        Sheets("Applicativo").Select
        Range("F3").Select
        ActiveSheet.Paste
        
        ' Tabella Sezione Bravo Copia dati Generali
        
        Sheets("Dati Utente").Select
        Range("J3:L17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("B22").Select
        ActiveSheet.Paste
        Sheets("Dati Utente").Select
        Range("N3:N17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("F22").Select
        ActiveSheet.Paste
        
        ' Tabella Sezione Charlie Copia dati Generali
        
        Sheets("Dati Utente").Select
        Range("B22:D36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("B41").Select
        ActiveSheet.Paste
        Sheets("Dati Utente").Select
        Range("F22:F36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("F41").Select
        ActiveSheet.Paste
        
        ' Tabella Sezione Delta Copia dati Generali
        
        Sheets("Dati Utente").Select
        Range("J22:L36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("B60").Select
        ActiveSheet.Paste
        Sheets("Dati Utente").Select
        Range("N22:N36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("F60").Select
        ActiveSheet.Paste
        
        ' Copia Singola dei Giorni della Settimana Sezione Alfa
        
        Sheets("Dati Utente").Select
        Range("E3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E3").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E4").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E4").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("E5").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E5").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("E6").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E6").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E7").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E7").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E8").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E8").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E9").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E9").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E10").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E10").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E11").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E11").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E12").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E12").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E13").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E14").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E14").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E15").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E16").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E16").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E17").Select
        ActiveSheet.Paste
        
        ' Copia Singola dei Giorni della Settimana Sezione Bravo
        
        Sheets("Dati Utente").Select
        Range("M3").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E22").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("M4").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E23").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("M5").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E24").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M6").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E25").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M7").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E26").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M8").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E27").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M9").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E28").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M10").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E29").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M11").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E30").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M12").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E31").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E32").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M14").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E33").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E34").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M16").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E35").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E36").Select
        ActiveSheet.Paste
        
        ' Copia Singola dei Giorni della Settimana Sezione Charlie
        
        Sheets("Dati Utente").Select
        Range("E22").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E41").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("E23").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E42").Select
        ActiveSheet.Paste
        
        
        Sheets("Dati Utente").Select
        Range("E24").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E43").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("E25").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E44").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E26").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E45").Select
        ActiveSheet.Paste
    
        Sheets("Dati Utente").Select
        Range("E27").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E46").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E28").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E47").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E29").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E48").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E30").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E49").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E31").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E50").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E32").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E51").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E33").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E52").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E34").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E53").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E35").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E54").Select
        ActiveSheet.Paste
    
    
        Sheets("Dati Utente").Select
        Range("E36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E55").Select
        ActiveSheet.Paste
    
        
        ' Copia Singola dei Giorni della Settimana Sezione Delta
        
        
        Sheets("Dati Utente").Select
        Range("M22").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E60").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M23").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E61").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M24").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E62").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M25").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E63").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M26").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E64").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M27").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E65").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M28").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E66").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M29").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E67").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M30").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E68").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M31").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E69").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M32").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E70").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M33").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E71").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M34").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E72").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M35").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E73").Select
        ActiveSheet.Paste
        
        Sheets("Dati Utente").Select
        Range("M36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Applicativo").Select
        Range("E74").Select
        ActiveSheet.Paste
        
        
    End Sub
    
    Sub DO_LOOP()
    
    ' Questa macro mette in atto il processo di riempimento di Tutte le caselle dell'"Elaborato1"
    
    ' Riempimento Lunedì
    
    Sheets("Elaborato1").Select
    
    Range("A3").Select ' seleziona la cella di partenza in questo foglio per elaborare Lunedì
    
    Sheets("Tide_up").Select
    
    Range("B3").Select ' seleziona la cella di partenza in questo foglio per elaborare Lunedì
    
        Do
            If ActiveCell.Value = "" Then Exit Do
            
            Call Costr_Tab
            
        Loop
        
    ' Riempimento Martedì
    
    Sheets("Elaborato1").Select
    
    Range("H3").Select ' seleziona la cella di partenza in questo foglio per elaborare Martedì
    
    Sheets("Tide_up").Select
    
    Range("G3").Select ' seleziona la cella di partenza in questo foglio per elaborare Martedì
    
        Do
            If ActiveCell.Value = "" Then Exit Do
            
            Call Costr_Tab
            
        Loop
        
    ' Riempimento Mercoledì
    
    Sheets("Elaborato1").Select
    
    Range("A29").Select ' seleziona la cella di partenza in questo foglio per elaborare Mercoledì
    
    
    Sheets("Tide_up").Select
    
    Range("L3").Select ' seleziona la cella di partenza in questo foglio per elaborare Mercoledì
    
        Do
            If ActiveCell.Value = "" Then Exit Do
            
            Call Costr_Tab
            
        Loop
        
    ' Riempimento Giovedì
    
    Sheets("Elaborato1").Select
    
    Range("H29").Select ' seleziona la cella di partenza in questo foglio per elaborare Giovedì
    
    
    Sheets("Tide_up").Select
    
    Range("Q3").Select ' seleziona la cella di partenza in questo foglio per elaborare Giovedì
    
        Do
            If ActiveCell.Value = "" Then Exit Do
            
            Call Costr_Tab
            
        Loop
        
    ' Riempimento Venerdì
    
    Sheets("Elaborato1").Select
    
    Range("A55").Select ' seleziona la cella di partenza in questo foglio per elaborare Venerdì
    
    
    Sheets("Tide_up").Select
    
    Range("V3").Select ' seleziona la cella di partenza in questo foglio per elaborare Venerdì
    
        Do
            If ActiveCell.Value = "" Then Exit Do
            
            Call Costr_Tab
            
        Loop
        
    
    
    Sheets("Tide_up").Select
    
    Range("A1").Select
    
    Sheets("Elaborato1").Select
    
    Range("A1").Select
    
    End Sub
    
    
    Sub Elabora()
    
    Call Copia_Dati
    
    Call DO_LOOP
    
    End Sub