Risultati da 1 a 15 di 15

Discussione: spostare settimane/mesi



  1. #1
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    spostare settimane/mesi

    Buongiorno,
    avrei bisogno di un aiuto:
    sto creando una tabella con delle attività da svolgere durante la settimana
    ogni attività ha una frequenza (+2= ogni 2 settimane, +4= ogni mese, ecc.)
    quindi ogni volta che eseguo un'attività digito X nella cella vicino l'attività e quest'ultima si deve spostare automaticamente di x celle in base allla frequenza che gli avevo dato:
    es
    nella settimana 14 attività n° 11 pulizia freq +3
    quando l'ho eseguita si sposta nella settimana 17.
    spero di essere stato chiaro. grazie x l'aiuto
    File Allegati File Allegati
    • Tipo File: xlsx 1.xlsx (309.0 KB, 13 Visualizzazioni)

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: spostare settimane/mesi

    Ciao
    con un'immagine non si può far nulla.
    Allega il tuo file ed il lavoro che hai fatto per tentare di correggerlo.

    Ciao,
    Mario

  3. #3
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    grazie
    invio un file di prova...
    File Allegati File Allegati

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: spostare settimane/mesi

    Ciao a tutti,

    @we we
    ho dato per scontato che nel file originale tu abbia la stessa struttura di quello che hai allegato (naturalmente con tutte le settimane).

    Forse si potrebbe fare anche con le formule (se non ci fossero quelle celle con il convalida dati), comunque utilizzando il VBA:

    puoi usare questo codice da mettere in un modulo standard:

    Codice: 
    Sub Next_Activity()
    Dim uCol As Long, i As Long, a As Long, b As Long
    Dim Riga As Long, Inizio As Long, NextCol As Long
    Dim Frequenza As Long, Settimana As Integer, Attuale As Integer
    
    
    uCol = Range("B3").End(xlToRight).Column
    a = ActiveCell.Row
    b = ActiveCell.Column
    Frequenza = Cells(a, b - 2).Value
    Settimana = CInt(Replace(Cells(2, b - 4).Value, "W", "")) + Frequenza
    
    
    For i = 2 To uCol Step 5
        Attuale = CInt(Replace(Cells(2, i).Value, "W", ""))
        If Attuale = Settimana Then
            NextCol = i
            GoTo casi
        End If
    Next i
    casi:
    
    
    Select Case a
        Case Is < 10
            Inizio = 4
        Case Is < 19
            Inizio = 10
        Case Else
            Inizio = 19
    End Select
    
    
    Riga = Cells(Inizio - 1, NextCol).End(xlDown).Row + 1
    Range(Cells(a, b - 4), Cells(a, b)).Copy
    Cells(Riga, NextCol).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Cells(a, b).Select
    
    
    End Sub
    e questo da mettere nel modulo di classe del foglio interessato per avviare il codice quando metti una "X" in uno dei campi "ESEGUITO":

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim uCol As Long, i As Long, Campi As Range
    
    
    Set Campi = Cells(Cells.Rows.Count, Cells.Columns.Count)
    uCol = Range("B3").End(xlToRight).Column
    For i = 2 To uCol
        If Cells(3, i).Value = "ESEGUITO" Then
            Set Campi = Union(Campi, Range(Cells(5, i), Cells(26, i)))
        End If
    Next i
    
    
    If Not Intersect(Target, Campi) Is Nothing Then
        If Target.Count = 1 Then
            If UCase(Target.Value) = "X" Then
                Application.EnableEvents = False
                Cells(Target.Row, Target.Column).Activate
                Call Next_Activity
                Application.EnableEvents = True
            End If
        End If
    End If
    
    
    Set Campi = Nothing
    End Sub
    Ti allego il file....
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  5. #5
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    Grazie mille @cromagno
    provo e faccio sapere

  6. #6
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    riesci a crearmi la formula se elimino il convalida dati?

  7. #7

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: spostare settimane/mesi

    Citazione Originariamente Scritto da we we Visualizza Messaggio
    riesci a crearmi la formula se elimino il convalida dati?
    Il problema non è solo il convalida dati ma anche la complessità della formula che risulterebbe poco gestibile in caso volessi effettuare variazioni.
    Il VBA mi sembra l'approccio migliore.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  8. #8
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    Ok capito..
    ho provato ad applicare le formule sul file originale ma non ho avuto risultati
    sicuramente sbagliavo qualche passaggio..

  9. #9
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    Posso inviarti il file originale in privato?

  10. #10

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: spostare settimane/mesi

    Citazione Originariamente Scritto da we we Visualizza Messaggio
    Ok capito..
    ho provato ad applicare le formule sul file originale ma non ho avuto risultati
    sicuramente sbagliavo qualche passaggio..
    Ma con "formule" intendi il "codice" ?

    Per quanto riguarda l'ultima domanda.... togli tutti i dati sensibili dal file originale e allegalo qui (lo scopo del forum è condividere una soluzione).

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  11. #11
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    questo e il file "originale"
    da fare ancora modifiche ma più o meno dovrebbe venire cosi...
    File Allegati File Allegati

  12. #12

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: spostare settimane/mesi

    Ciao we we,
    vista la struttura del file originale ho preferito fare qualche modifica...

    Dovresti aggiungere qualche altro "controllo", comunque:

    • Se la prossima attività è oltre le settimane della tabella, esce un messaggio di errore e si esce dal codice
    • viene controllato anche il colore delle intestazioni (in grigio) visto che l'11 è presente come codice anche nella "attività"
    • le scritte per indicare le settimane presentavano uno spazio in più rispetto al primo file allegato, quindi nel codice vedrai aggiunta la funzione "TRIM" per eliminare gli spazi superflui
    • considerato il numero maggiore di "sezioni" (delimitate dalle righe in grigio) ho preferito usare il metodo "Find...FindNext" al posto di "Select Case" per determinare la riga che mi servirà come base per inserire la nuova "attività"


    Nel modulo standard:

    Codice: 
    Sub Next_Activity()
    Dim uCol As Long, i As Long, a As Long, b As Long
    Dim Riga As Long, Inizio As Long, NextCol As Long
    Dim Frequenza As Long, Settimana As Integer, Attuale As Integer
    Dim Trova As Range, Colore As Integer, Errore
    
    
    Colore = Range("A4").Interior.ColorIndex
    uCol = Range("A3").End(xlToRight).Column
    a = ActiveCell.Row
    b = ActiveCell.Column
    Frequenza = Cells(a, b - 2).Value
    Settimana = CInt(Trim(Replace(Cells(2, b - 4).Value, "W", ""))) + Frequenza
    
    
    For i = 1 To uCol Step 5
        Attuale = CInt(Trim(Replace(Cells(2, i).Value, "W", "")))
        If Attuale = Settimana Then
            NextCol = i
            GoTo casi
        End If
    Next i
    casi:
    If NextCol = 0 Then
        Errore = MsgBox("La prossima attività è oltre le settimane previste!", vbCritical, "ERRORE")
        Exit Sub
    End If
    
    
    With Range("A4:E" & a)
        Set Trova = .Find(11, LookIn:=xlValues, SearchDirection:=xlPrevious)
        If Not Trova Is Nothing And Range("A" & Trova.Row).Interior.ColorIndex = Colore Then
            Inizio = Trova.Row
        Else
            Do
                Set Trova = .FindNext(Trova)
            Loop While Range("A" & Trova.Row).Interior.ColorIndex = Colore
            Inizio = Trova.Row - 1
        End If
    End With
    
    
    If Cells(Inizio + 1, NextCol).Value = "" Then
        Riga = Inizio + 1
    Else
        Riga = Cells(Inizio, NextCol).End(xlDown).Row + 1
    End If
    Range(Cells(a, b - 4), Cells(a, b - 1)).Copy
    Cells(Riga, NextCol).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Cells(a, b).Select
    Set Trova = Nothing
    End Sub
    Nel Modulo di classe del Foglio:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim uCol As Long, i As Long, Campi As Range, uRiga As Long
    
    
    Set Campi = Cells(Cells.Rows.Count, Cells.Columns.Count)
    uRiga = ActiveSheet.UsedRange.Rows.Count
    uCol = Range("A3").End(xlToRight).Column
    For i = 2 To uCol
        If Cells(3, i).Value = "ESEGUITO" Then
            Set Campi = Union(Campi, Range(Cells(5, i), Cells(uRiga, i)))
        End If
    Next i
    
    
    If Not Intersect(Target, Campi) Is Nothing Then
        If Target.Count = 1 Then
            If UCase(Target.Value) = "X" Then
                Application.EnableEvents = False
                Cells(Target.Row, Target.Column).Activate
                Call Next_Activity
                Application.EnableEvents = True
            End If
        End If
    End If
    
    
    Set Campi = Nothing
    End Sub
    File Allegati File Allegati

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  13. #13
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    ok grazie mille
    ci provo..

  14. #14

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: spostare settimane/mesi

    Citazione Originariamente Scritto da we we Visualizza Messaggio
    ok grazie mille
    ci provo..
    Visto che non ti sei fatto più vivo, segno io la discussione come RISOLTA!

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  15. #15
    L'avatar di we we
    Clicca e Apri
    Data Registrazione
    Apr 2016
    Località
    torino
    Messaggi
    9
    Versione Office
    2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: spostare settimane/mesi

    sto provando ad applicare il tutto sul file originale ma riscontro un po' di problemi
    tipo un errore "run-time '91' variabile di oggetto o variabile del blocco with non impostata" ma questo è solo un problema di tanti altri dovuti probabilmente alla creazioe del file.
    Dovrò cercare di realizzare questo file meno complicato e accessibile a tutti...
    ma ora non ho proprio idea da dove ripartire.
    comunque grazie mille per il tuo aiuto @cromagno

Discussioni Simili

  1. Spostare una discussione
    Di Marius44 nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 3
    Ultimo Messaggio: 31/12/16, 16:56
  2. problema con mesi
    Di Scuotioss4 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 09/12/15, 23:40
  3. [RISOLTO] numero di mesi/anno (...) contano solo i mesi da maggio a novembre
    Di Canapone nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 27/09/15, 18:01
  4. Quiz - conta mesi
    Di ges nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 16/08/15, 23:40
  5. Lavorare con le date (raggruppare per settimane)
    Di Gerardo Zuccalà nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 12/07/15, 08:30

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •