Macro aggiorna valori



  • Macro aggiorna valori
    di luca (utente non iscritto) data: 26/02/2015 15:11:11

    salve,
    mi servirebbe una macro che mi aggiorni i valori riguardanti la data e il numero di una produzione.
    es.
    A1=giovedì 26 febbraio 2015
    B1=1550

    con la macro mi servirebbe che il giorno dopo si verificasse questo caso
    A1=venerdì 27 febbraio 2015
    B1=1551

    il giorno dopo ancora
    A1=sabato 27 febbraio 2015
    B1=1552

    In pratica la data la deve prendere dal sistema, come se io facessi =ADESSO(), e il numero di produzione =valore+1

    In più, la macro può essere utilizzata solo 1 volta dall'apertura del foglio, in modo che non vada a cambiare il valore del numero di produzione, in quanto per la data varierebbe solo l'orario, che però non verrà visualizzato in quanto la cella verrà formattata senza di questo.



  • di Vecchio Frac data: 26/02/2015 15:18:20

    La macro viene eseguita manualmente (decidi tu quando lanciarla), in automatico all'apertura del file, o quando ti posizioni su un determinato foglio o cella?
    In tutti i casi la macro verificherà A1: se corrisponde a oggi non farà proprio niente, altrimenti imposterà A1 a Date (la data di oggi), eventualmente formattandola come ti piace, incrementando B1.
    Se è così non vedo particolari difficoltà.
    Sono veramente due o tre righe di codice :o)





  • di Vecchio Frac data: 26/02/2015 15:26:52

    Un esempio. Codice da inserire in ThisWorkbook.
     
    Option Explicit
    
    Private Sub Workbook_Open()
        Sheets(1).Activate
        If Range("A1") <> Date Then
            Range("A1") = Format(Date, "dddd dd mmmm yyyy")
            Range("A1").Columns.AutoFit
            Range("B1") = Range("B1") + 1
        End If
    End Sub






  • di luca (utente non iscritto) data: 26/02/2015 15:27:04

    la macro deve essere eseguita con un pulsante quando voglio io (all'apertura, durante o prima della chiusura).
    per quanto riguarda la data ok, fa la verifica. ma è altrettanto importante che una volta premuto il bottone, non mi modifichi ulteriormente il valore di produzione!!

    in più,
    potrei aggiungere la possibilità di dare al file un determinato nome diverso da quello del giorno precedente, magari con il valore di produzione aggiornato?
    es. Report1550

    Ps. la difficoltà è davvero particolare, dato che nn so niente di programmazione :)



  • di Vecchio Frac data: 26/02/2015 15:35:20

    Il codice che ti ho postato, con la modifica da ultimo richiesta, lo puoi inserire in un modulo, dandogli il nome che preferisci, e associandolo ad un pulsantino.
    Attualmente salva il file con il nome "report....(contenuto di B1 in formato a sei cifre).xlsm" nella stessa cartella del file da cui viene eseguito.

     
    'in un modulo
    Option Explicit
    
    Public Sub prod_update()
        If Range("A1") <> Format(Date, "dddd dd mmmm yyyy") Then
            Range("A1") = Format(Date, "dddd dd mmmm yyyy")
            Range("A1").Columns.AutoFit
            Range("B1") = Range("B1") + 1
            ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "Report_" & Format(Range("B1"), "000000") & ".xlsm"
        End If
    End Sub
    






  • di Vecchio Frac data: 26/02/2015 15:36:34

    cit. "dato che nn so niente di programmazione :)"
    ---> Ma sai come e dove inserire il codice, e come eseguirlo? e come mantenerlo in futuro in caso di problemi? o per espanderlo o aggiungere funzionalità come fai?





  • di luca (utente non iscritto) data: 26/02/2015 17:11:31

    allora, il procedimento lo riesco a seguire al 90%. Ci sarebbero da fare altre cose, ma devo prima organizzarle. magari le metto a punto tutte e poi mando a qualcuno il file con tutto quello che ci sarebbe da fare così mi fa tutto su quello.