Macro Numero Progressivo



  • Macro Numero Progressivo
    di narsil87 (utente non iscritto) data: 22/06/2016 13:00:08

    Buongiorno a tutti, grazie per avermi accettata.
    Ho una domanda riguardo a una macro che ho inserito per generare un numero progressivo in una cella di excel.
    Nella cella ho il dato seguente:
    A16-C000 ( anno 2016 ciclo 000)
    ho capito come far si che all’apertura del file il valore c000 diventi c001 e via dicendo ….
    Ora vorrei capire come avere anche l’aggiornamento del n.16 ogni volta che si cambia anno.

    Inoltre se io avessi :
    A16-D06-C000 e volessi rendere progressivo sia il valore di D che quello di C, come dovrei scrivere la macro?
    Se uso come separatore nella formula Split il carattere “-“ poi non so come devo compilare il format!

    Vi riporto quella che ho fatto io al momento:

    Grazie 1000 a tutti e scusate ma sto iniziando!
     
    Sub auto-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([G10], "C")
        [G10] = v(0) + "C" + Format(v(1) + 1, "000")
    End If
    End Sub
    



  • di patel data: 22/06/2016 13:21:50

    prova questa
     
    Sub auto-open ()
    Dim v As Variant, y As String
    y = MsgBox("Vuoi generare un numero progressivo?", vbInformation + vbYesNo, "Numerazione Progressiva")
    If y = vbYes Then
       anno = Right(Year(Date), 2)
       v = Split([G10], "-")
       [G10] = "A" & anno & "-" & "D" + Format(Right(v(1), 2) + 1, "00") & "-" & "C" & Format(Right(v(2), 3) + 1, "000")
    End If
    End Sub






  • di narsil87 (utente non iscritto) data: 22/06/2016 13:34:37

    No mi da errore "tipo non corrispondente" nella stringa della cella [g10]



  • di Marius44 data: 22/06/2016 14:19:36

    Salve a tutti

    @patel
    scusa l'intromissione ma credo che la tua macro funzionerà a dovere se cambi la riga come indicata sotto.

    Fai sapere. Ciao,
    Mario
     
    [G10] = "A" & anno & "-" & "D" + Format(Val(Right(v(1), 2)) + 1, "00") & "-" & "C" & Format(Val(Right(v(2), 3)) + 1, "000")



  • di Narsil87 (utente non iscritto) data: 22/06/2016 14:46:04

    Rispondo dal cellulare scusate! Appena riesco provo e ci dico grazie 1000



  • di patel data: 22/06/2016 15:02:15

    Marius44
    sicuramente la tua modifica è più corretta, ma a me funziona anche senza VAL





  • di narsil87 (utente non iscritto) data: 22/06/2016 15:08:31

    ho provato ma vi allego l'errore che mi da.
    vi allego anche il file così forse si capisce meglio!
    grazie



  • di patel data: 22/06/2016 16:30:32

    la sub è questa e la devi mettere nel modulo di Thisworkbook, non in un modulo standard 
    vedi file allegato
     
    Private 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
       anno = Right(Year(Date), 2)
       v = Split([G10], "-")
       [G10] = "A" & anno & "-" & "D" + Format(Right(v(1), 2) + 1, "00") & "-" & "C" & Format(Right(v(2), 3) + 1, "000")
    End If
    End Sub






  • di narsil87 (utente non iscritto) data: 22/06/2016 16:41:03

    Grazie mille siete stati gentilissimi!