[Chiuso] numerazione progressiva e creazione cartella

Stato
Chiusa ad ulteriori risposte.

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
Buon Giorno a tutti
sono novizio in materia e fino ad ora ho sempre cercato di arrangiarmi con quel poco che riuscivo a capire analizzando altri file con macro
ma ora mi trovo davanti ad un problema che francamente non saprei da che parte prendere , anche se ho ben chiaro il risultato ora cerco di illustrarlo
devo creare un data base dove mi possa avere in automantico un numero progressivo e d una cartella ora vi spiego bene
su un foglio excel vorrei creare un tasto dove quando lo seleziono mi crei sulla cella A2 un numero progressivo, sulla cella B2 la data di creazione e
contemporaneamente una cartella con il nome del numero progressivo.
la difficoltà sta nel fatto che la cartella che mi deve generare deve tener conto dell'anno e del mese cioe
il primo inserimento con data 2020 mi deve geneare la cartella 2020 poi a sua volta la cartella GENNAIO es in fine la cartella 0001
poi al secondo iserimento riconosce che e gia stata creata la cartella 2020 e la cartella gennaio e quindi creerà solo la cartella 0002
spero di essere stato chiaro
tutto questo e possibile?
vi metto qui sotto un immagine del foglio excel
































































N PROG DATA DESTINAZIONE DELIVERY INVOICE
 

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
scusate dimenticavo la cartella che si crea con il numeo 0001 per esempio dovrebbe essere likata alla corrispettiva cella sul foglo del data base
 

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
vorrei che ci fosse un pulsante al quale collegare una macro per la generazione automatica della numerazione e data di creazione , e che in contemporanea mi crei le cartelle come qui ho cercato si spiegare
"la difficoltà sta nel fatto che la cartella che mi deve generare deve tener conto dell'anno e del mese cioe
il primo inserimento con data 2020 mi deve geneare la cartella 2020 poi a sua volta la cartella GENNAIO es in fine la cartella 0001
poi al secondo iserimento riconosce che e gia stata creata la cartella 2020 e la cartella gennaio e quindi creerà solo la cartella 0002 "
e per ultimo che la cartella che si viene a creare sia linkata con la corrispettiva cella sul data base
 

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
ho provato a dare un occhiata ad altri file dove ho la generazione automatica ma funzionano in maniera diversa da come vorrei e ho provato a modificare ma con scarsi risultati
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
20.756
1.713
66
Napoli
2013
400
Allora mostra creandolo a mano il risultato che deve venire fuori dalla macro.

Io non ho capito se devi creare un nuovo foglio o un nuovo file (cartella di lavoro) che è cosa ben diversa.
 

locate

Utente abituale
24 Ottobre 2016
520
28
locate varesino
2007/13
53
ciao
da provare
Visual Basic:
Sub Progressivo()
Dim Nrig As Long
Nrig = Cells(Rows.Count, 2).End(xlUp).Row
If Year(Cells(Nrig, 2)) = Year(Date) Then
Cells(Nrig + 1, 2) = Date
Cells(Nrig + 1, 1) = Cells(Nrig, 1) + 1
Else
Cells(Nrig + 1, 2) = Date
Cells(Nrig + 1, 1) = 1
End If
End Sub
ciao
 

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
io ho il folgio del data base che ho allegato su questo foglio vorrei avere la possibilita di generare sulla cella A2 un numero progressivo e sulla cella B2 la data di creazione di questo numero
in questo esempio abbiamo
0001
0002
0003
etc con le date nella casella B2
 

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
io in tanto ho cercato di fare questo

Visual Basic:
'controllo che il progressivo abbia gli zeri necessari (0001)
    Progressivo = CInt(Right(Cells(lastrowDB, "A"), 4)) + 1 - q
    lunghezza = Len(Progressivo)
    i = 0
    Do While i <> 4 - lunghezza
        Progressivo = "0" & Progressivo
        i = i + 1
    Loop
    'imposta in nome del file
    Data = Date
    Giorno = Day(Data)
    If Giorno < 10 Then
        Giorno = "0" & Giorno
    End If
    mese = Month(Data)
    'If mese < 10 Then
    '    mese = "0" & mese
    'End If
    anno = Year(Data)
    'Controllo Anno nuovo: riparte il conteggio da 0001 e crea la cartella
    If anno = CInt(Right(Cells(lastrowDB, "B"), 4)) + 1 Then
        Progressivo = "0001"
        'MkDir (CurPath & anno)
        MkDir (CurPath & "PROVA " & anno)
    End If
    'Controllo Mese nuovo: Crea la cartella
    letturamese = Month(Cells(lastrowDB, "B"))
    If mese <> letturamese Then
        If mese < 10 Then mese = "0" & mese
            CartellaSave = (CurPath & "PROVA " & anno & "\" & mese & "-" & MonthName(mese, False))
        MkDir CartellaSave
    End If
    If mese < 10 And Len(mese) = 1 Then mese = "0" & mese
    CartellaSave = (CurPath & "PROVA " & anno & "\" & mese & "-" & MonthName(mese, False))
 
Ultima modifica di un moderatore:

Rubik72

Excel/VBA Expert
Supermoderatore
Expert
12 Dicembre 2015
5.828
183
47
Cosenza
Excel 2016
207
Post#15 corretto. D @dancers fai più attenzione in futuro :scoppola:
 

locate

Utente abituale
24 Ottobre 2016
520
28
locate varesino
2007/13
53
ciao
stai usando excel in Portoghese ???
comunque a me la sub funziona , ti riallego il tuo file con inserita questa
VBA non fa differenza fra it. o port. o ing. essendo questi tutto in inglese
Visual Basic:
Option Explicit
Sub Progressivo()
Dim Nrig As Long
If Cells(2, "B") = "" Or Cells(2, "A") = "" Then
Cells(2, "B") = Date
Cells(2, "A") = 1
Exit Sub
End If
Nrig = Cells(Rows.Count, 2).End(xlUp).Row
If Year(Cells(Nrig, 2)) = Year(Date) Then
Cells(Nrig + 1, 2) = Date
Cells(Nrig + 1, 1) = Cells(Nrig, 1) + 1
Else
Cells(Nrig + 1, 2) = Date
Cells(Nrig + 1, 1) = 1
End If
End Sub
la formattazione in portoghese va benissimo in quanto prevede 4 valori
ciao da locate
 

Allegati

dancers

Utente junior
5 Gennaio 2018
29
1
TREVISO
2016
0
funziona grazie ora devo capire come fare in automantico la creazione della cartella ( che deve avere come nome il numero progressivo ) questa cartella si deve creare su questo percorso vi faccio un esempio
abbiamo creato il record 0001 con data 3-12-19
il sistema dovra entrare sulla cartella PROVA vedere se e gia stato creata la cartella 2019 ( se non c'è crearla ) entrare nella cartella 2019 e vedere se e presente la cartella DECEMBER ( se non c'è crearla ) entrare nella cartella e finalmente creare la cartella con il nome del numero progressivo 0001
dove poi io li andrò a salvare dei documenti
per finire sulla cella 0001 del file data base devo creare un iperlink con la a cartella 0001 in modo che se io clicco sopra alla cella 0001 mi porta direttamente dentro la sua cartella di riferimento
 
Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!