Creare cartella partendo nome di una cella



  • Creare cartella partendo nome di una cella di Antonio (utente non iscritto) data: 15/12/2016 23:06:37

    Buonasera a tutti, avrei la necessità di creare una cartella che prenda il nome del contenuto della cella A1 (es.NPI16-0001), il tutto con un click con un pulsante. Oppure se A1 è vuota non creo niente, se cè testo creo la cartella.
    Grazie a tutti.


  • di patel data: 16/12/2016 08:00:57

    la cartella dove la vuoi creare ?
     
    Sub CreateFolder()
    mfolder = range("A1")
    mfolder = "C:Documenti" & mfolder
    MkDir mfolder
    End Sub


  • di Antonio (utente non iscritto) data: 16/12/2016 12:14:07

    Ciao innanzitutto grazie per il celere intervento. La cartella deve essere creata in un percorso di rete.


  • di patel data: 16/12/2016 13:17:57

    sostituisci C:Documenti con il tuo percorso


  • di Antonio (utente non iscritto) data: 16/12/2016 19:20:22

    Grazie mille molto gentili. Ho un solo problema, ho tralasciato dei particolari molto importanti, non ho descritto che su ogni prima cella della colonna (A) es. A1,A2,A3 il testo contenuto deve creare una nuova cartella sempre con nome diverso, (XXX16-0001 cella A1), (XXX16-0002 cella A2), (XXX16-0003 cella A3). Nel dettaglio appena inserisco un testo (trattasi di testi con numeri progressivi aumentano di 1 per ogni nuova riga.
    Grazie a tutti


  • di patel data: 16/12/2016 19:28:30

    non ho capito


  • di Antonio (utente non iscritto) data: 16/12/2016 23:06:50

    ciao a tutti, ho inserito un allegato per dare un esempio più concreto alla mia richiesta di aiuto. grazie e buona serata.


  • di lex data: 16/12/2016 23:38:31

    scusate ma non ne so nulla di questo tipo di programmazione sono alle primissime armi, vorrei aggiungere: se la cartella esiste non deve generarmi errore, oppure basterebbero dei messaggi tipo= cartella xxxxx creata, o se esiste già= cartella esistente.
    vorrei complimentarmi con tutte le persone che dedicano il loro tempo per aiutare gli altri e mantenere e rendere eccezionale questo forum. veramente complimenti a tutti. finalmente ho trovato un forum con tantissimi esempi e persone disponibili ad aiutare gli altri.


  • di lex data: 17/12/2016 13:13:28

    Qualcuno riesce ad aiutarmi?
    Grazie


  • di patel data: 17/12/2016 15:48:23

    io ci proverei se capissi cosa vuoi fare, chi è che scrive i nomi nella colonna A ?


  • di lex data: 17/12/2016 15:50:47

    ciao sono io a scrivere un codice alfa numerico come nell'esempio allegato.


  • di patel data: 17/12/2016 16:50:55

    quindi tu scrivi il nome in fondo alla lista, clicchi sul pulsante e viene creata la cartella ?
    se è così
     
    Sub CreateFolder()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    mfolder = range("A" & LR)
    mfolder = "C:Documenti" & mfolder
    MkDir mfolder
    End Sub
    


  • di lex data: 17/12/2016 19:56:34

    grandissimo funziona, ultima richiesta: se possibile creare un messaggio cartella "nome" creata, e che non da + messaggio di errore se la cartella esiste già "errore di accesso al percorso/file.

    sei comunque stato preciso nel trasformare le mie richieste. grazi,grazie.


  • di lex data: 18/12/2016 13:09:03

    ciao chiedevo se possibile eliminare l'errore "errore di accesso al percorso/file" si genera solo quando la cartella è già stata creata.


  • di patel data: 18/12/2016 16:27:49

    prova questa 
     
    Sub CreateFolder()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    mfolder = range("A" & LR)
    mfolder = "C:Documenti" & mfolder
    If Not Dir(mfolder, vbDirectory) = vbNullString Then
      MsgBox "la cartella " & mfolder & " è già esistente"
    Else
      MkDir mfolder
      MsgBox "la cartella " & mfolder & " è stata creata"
    End If
    End Sub
    


  • di lex data: 18/12/2016 19:25:08

    Ciao tutto risolto perfettamente grazie ho solo aggiunto End If.
     
    Sub CreateFolder()
    LR = Cells(Rows.Count, "A").End(xlUp).Row
    mfolder = Range("A" & LR)
    mfolder = "D:" & mfolder
    If Not Dir(mfolder, vbDirectory) = vbNullString Then
      MsgBox "La cartella " & mfolder & " è già esistente"
    Else
      MkDir mfolder
      MsgBox "La cartella " & mfolder & " è stata creata"
      End If
    End Sub


  • di lex data: 18/12/2016 19:42:15

    pensavo di aver risolto! non so dove inserire End If perchè mi da errore che è mancante.


  • di patel data: 19/12/2016 08:11:54

    avevo dimenticato l'end if, tu l'hai messo al posto corretto, probabilmente hai scritto male qualcosa


  • di lex data: 19/12/2016 19:36:28

    ciao patel, tutto ok. grande


  • di mb data: 23/12/2016 15:09:35

    scusa Antonio..

    ma la procedura crea una sola cartella non una per ogni dato indicato nelle celle di colonna A o mi sbaglio io ??

    ho inserito 3 nomi angelo felice e mario e la procedur ami crea una sola cartella quella di Mario

    Help



  • di lex data: 03/01/2017 14:41:12

    ciao mb, si esatto crea solo dal contenuto dell'ultima casella. ci vorrebbe qualcosa che crei la cartella per ogni casella contenente un dato diverso da nulla.


  • di mb data: 03/01/2017 17:38:02

    ciao a tutti prova con il codice sotto...
    sono un dilettante quindi la procedura protrebbe essere soggetta ad errori

    prova
     
    Sub CreateFolder()
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To lr
    mfolder = Range("A" & i)
    mfolder = "c:" & mfolder
    If Not Dir(mfolder, vbDirectory) = vbNullString Then
      MsgBox "La cartella " & mfolder & " è già esistente"
    Else
      MkDir mfolder
      MsgBox "La cartella " & mfolder & " è stata creata"
       End If
       Next
    End Sub


  • di lex data: 03/01/2017 21:30:04

    ora ci provo e ti aggiorno


  • di lex data: 03/01/2017 22:03:14

    ciao, le cartelle vengono create, unico problema persiste un messaggio "cartella esistente" e non va via.


  • di lex data: 03/01/2017 22:08:37

    tra l'altro cerca di creare anche un cartella c: dando un errore giustamente "la cartella è già esistente"


  • di mb data: 04/01/2017 11:39:17

    ciao lex

    ho fatto le prove e a me funziona correttamente

    1 verifica che le cartelle non siano già presenti nel tuo pc
    2 io ho impostato che le cartelle vengano create nella directory C: se tu vuoi che vengano create in un altra directory esempio D sostituisci la lettera

    spero di aver chiarito il funzionamento della sub che ti avevo allegato

    ciao


  • di lex (utente non iscritto) data: 04/01/2017 14:12:38

    ciao mb, continuo a provare e mi da errore per circa 90 volte la cartella c: è già esistente. alla fine crea la cartella relativa alla cella n.° 11 anche se contiene nessun dato. la mia versione è excel 2010. come mai questo problema?


  • di lex data: 04/01/2017 14:18:58

    credo di aver trovato il problema, ho provato su un file pulito ed effetivamente funziona. le mie caselle nella colonna A hanno un collegamento ipertestuale collegato ad un altra cella con la seguente formula che incasina un po tutto: =COLLEG.IPERTESTUALE(AC2;AD2). riesci ad aggirare il problema? grazie


  • di mb data: 04/01/2017 14:44:04

    Ciao se per te non è un problema e non ci sono dati sensibili, (siccome sono un dilettante) non ho mai usato la funzione collegamento ipertestuale su 2 celle quindi avrei bisogno del file per capire e vedere se posso aiutarti.
    Spero nel frattempo che qualche maggior esperto ti possa fornire info più velocemente e precise di me

    ciao


  • di lex data: 04/01/2017 17:01:56

    ciao, ho creato un nuovo foglio riportando tutti i dati contenuti e funziona correttamente. unica cosa che cerca di creare sempre la cartella D


  • di mb data: 04/01/2017 17:30:33

    Ciao Lex
    sono contento che tu abbia risolto anche se io non ho fatto molto...
    per quanto riguarda l'affermazione crea sempre la cartella D non saprei cosa consigliarti di modificare perché a me no esce quel messaggio

    mi spiace



  • di lex (utente non iscritto) data: 10/01/2017 19:31:43

    ciao mb
    ho un problema ogni volta che creo le cartelle ripete tutto dalla prima casella fino all'ultima, cioè tenta di creare anche le cartelle create immagina che caos quando mi troverò a 1000 cartelle e cliccare ogni volta sulle finestre di errore con cartella esistente. saluti
     
    Sub CreateFolder()
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To lr
    mfolder = Range("A" & i)
    mfolder = "c:" & mfolder
    If Not Dir(mfolder, vbDirectory) = vbNullString Then
      MsgBox "La cartella " & mfolder & " è già esistente"
    Else
      MkDir mfolder
      MsgBox "La cartella " & mfolder & " è stata creata"
       End If
       Next
    End Sub


  • di Luca.Donati data: 12/01/2017 15:28:49

    Una soluzione semplicissima sarebbe di rinunciare alla msgbox che ti avverte che la cartella esiste.
    Altrimenti, prova a mettere una menzione qualunque nella cella accanto a quella col nome e a nidificare l'If Then con un altro, più esterno, in cui controlli che non ci sia nulla scritto accanto.
    Cerco di modificare il codice per spiegarmi meglio, ma ATTENZIONE ! non lo testo, quindi usalo con cautela.

     
    Sub CreateFolder()
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    For i = 1 To lr
    mfolder = Range("A" & i)
    mfolder = "c:" & mfolder
    If Range("B" & i).Value = "" Then
    If Not Dir(mfolder, vbDirectory) = vbNullString Then
      MsgBox "La cartella " & mfolder & " è già esistente"
    Else
      MkDir mfolder
      Range("B" & i).Value = "Fatto !"
      MsgBox "La cartella " & mfolder & " è stata creata"
    End If
    End If
    Next
    End Sub


  • di lex data: 20/01/2017 21:39:58

    Ciao Luca, ti ringrazio per le preziose informazioni ma ho pensato di utilizzare il codice che crea una per volta le cartelle. grazie mille.