Generazione numero progressivo ad apertura file



  • Generazione numero progressivo ad apertura file
    di Kate (utente non iscritto) data: 21/11/2013 19:40:27

    Ciao a tutti,

    vorrei chiedervi la seguente cortesia:

    Avrei bisogo di una funionalità excel (vb script o altro) che mi permetta di scrivere all'interno di una precisa cella un numero progressivo che aumenta ogni volta che apro il file.

    Ad esempio se apro il file la priva volta:

    Cella A1 = MO-001

    Se chiudo e quindi apro il file una seconda volta:

    Cella A1 = MO-001

    Grazie,
    Kate



  • di Vecchio Frac data: 21/11/2013 19:48:12

    Ammesso che la cella A1 contenga sempre una stringa nel formato illustrato (coppia di lettere + trattino + numero a tre cifre), puoi splittarne il contenuto all'apertura, incrementarne la parte numerica, quindi riassegnare alla cella A1 il nuovo valore.
    Il codice che segue (scritto di getto e senza Excel sottomano) suppone che la cella A1 sia quella del primo foglio della cartella di lavoro. Altrimenti, va qualificato il riferimento con il nome del foglio esatto.
     
    sub workbook_open()
    dim v as variant
        v = split([a1], "-")
        [a1] = v(0) + "-" + format(v(1)+1, "000")
    end sub






  • di totygno71 data: 21/11/2013 20:02:31

    cit:
    Ad esempio se apro il file la priva volta:

    Cella A1 = MO-001

    Se chiudo e quindi apro il file una seconda volta:

    Cella A1 = MO-001

    .... ma che differenza c'è? In A1 c'è sempre la stessa cosa.... non ti serve del codice per questo! ^_^



  • di Kate (utente non iscritto) data: 21/11/2013 20:11:41

    Sorry!!! Intendevo dire:

    Se chiudo e quindi apro il file una seconda volta:

    Cella A2 = MO-002




  • di Kate (utente non iscritto) data: 21/11/2013 23:42:19

    Il codice proposto funziona benissimo, grazie!!! :)

    Ora pero' ho un altro problema. L'idea e' quella di avere un file excel, che aperto genera questo codice univoco e progressivo. Il documento excel con questo codice verrà ulteriormente elaboratao (magari a più riprese nell'arco di una settimana), questo comporterebbe che ogni volta che apro il documento, viene creato un nuovo numero progressivo, e questo non dovrebbe accadere, infatti i numeri progressivi dovrebbero distinguere documenti emessi in momenti successivi.

    Come risolvere questo punto ? E' forse possibile far comparire una finestra di pop up all'apertura del file excel in cui viene chiesto all'utente se vuole generare o meno un codice progressivo ?

    Grazie!



  • di totygno71 data: 22/11/2013 08:34:11

    Si cierto...
     
    Sub workbook_open()
    Dim v As Variant, y As String
    
    y = MsgBox("Vuoi generare un numero progressivo?", vbInformation + vbYesNo, "Numerazione Progressiva")
    
    If y = vbYes Then
    
        v = Split([a1], "-")
        [a1] = v(0) + "-" + Format(v(1) + 1, "000")
    
    End If
    End Sub
    



  • di Kate (utente non iscritto) data: 26/11/2013 17:36:26

    Grazie mille !!! funziona benissimo :)

    E' possibile inserire anche del codice che mi permetta di abilitare automaticamente le macro in excel 2010 ? infatti quando apro un excel ottengo il messaggio ""Macros have been disabled. Enable Content".

    P.S. Non posso modificare il "Trusted Center" di Excel

    Grazie



  • di Vecchio Frac data: 26/11/2013 18:41:40

    Attenzione ai tipi di variabile... "y" deve essere Integer.





  • di totygno (utente non iscritto) data: 26/11/2013 19:48:13

    cit"E' possibile inserire anche del codice che mi permetta di abilitare automaticamente le macro in excel 2010 ? infatti quando apro un excel ottengo il messaggio ""Macros have been disabled. Enable Content".

    Risp: No non è possibile da codice bypassare questa protezione, altrimenti che protezione sarebbe??? ^_^



  • di Kate (utente non iscritto) data: 10/12/2013 12:44:41

    Grazie mille per le risposte! vorrei ora aggiornare lo script facendo in modo che, quando il file excel viene chiuso, si apra la finsestra del "Save As" su una directory preimpostata, è possibile gestire questo con una macro ?

    Grazie,
    Kate