Condividi:        

[EXCEL] Macro per creazione automatica cartelle

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[EXCEL] Macro per creazione automatica cartelle

Postdi JOHNNYC » 14/07/10 10:40

Ciao a tutti. Oggi ho un nuovo problema...
Devo attivare una macro che mi crei automaticamente, in più percorsi predefiniti, una cartella (vuota) chiamata in un modo specificato all'interno del file di base.
Stò cercando di impostare la macro (vedi sotto) ma prima di lanciarla vorrei un supporto per non creare danni. :lol:
Nel file excell di base ho strutturato le colonne in questo modo:

Colonna A: Percorso dove salvare la cartella
Colonna B: Riferimento interno (valore che nell'esecuzione della macro non serve)
Colonna C: NomeCartella

Mi date un supporto?

Grazie come sempre.

Codice: Seleziona tutto
Sub Crea_Cartella_CDO()
'
' Crea_Cartella_CDO Macro
'
Dim Indirizzo As String
Dim NomeCartella As String
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
'
For IE = 2 To UE
Indirizzo = Range("a" & IE).Value
NomeCartella = Range("c" & IE).Value

    Range("A" & IE).Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
ActiveWorkbook.SaveAs Filename:=NomeCartella

Next IE
End Sub
JOHNNYC
Utente Junior
 
Post: 33
Iscritto il: 06/07/10 10:59
Località: Mantova

Sponsor
 

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi Flash30005 » 14/07/10 13:00

Prova questa macro

Codice: Seleziona tutto
Sub Crea_Cartella_CDO()
Dim Indirizzo As String
Dim NomeCartella As String
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row

For IE = 2 To UE
    Indirizzo = Range("a" & IE).value
    NomeCartella = Range("c" & IE).value & ".xls"
    ActiveWorkbook.SaveAs Filename:=Indirizzo & "\" & NomeCartella
Next IE
End Sub


Fai attenzione, in questo modo stai salvando il foglio attivo

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi JOHNNYC » 14/07/10 13:35

Grazie Flash.
Il problema è proprio questo che non voglio salvare il foglio attivo, ma solamente creare una nuova cartella vuota.
Come modifico?

Grazie.
Johnny
JOHNNYC
Utente Junior
 
Post: 33
Iscritto il: 06/07/10 10:59
Località: Mantova

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi Flash30005 » 14/07/10 15:26

Beh inizialmente avevo fatto così ma poi tu hai inserito quel codice di salvataggio nomefile (e i file di excel si chiamano anche cartelle (di lavoro)
ho postato la macro sbagliata
prova questa
Codice: Seleziona tutto
Sub Crea_Cartella_CDO()
Dim Indirizzo As String
Dim NomeCartella As String
UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
ChDrive "C"

For IE = 2 To UE
Indirizzo = Range("a" & IE).Value
NomeCartella = Range("c" & IE).Value '& ".xls"

If Dir(Indirizzo & NomeCartella, vbDirectory) = "" Then
    MkDir (Indirizzo & NomeCartella)
End If

Next IE
End Sub


Ricorda, in questo caso che nella cella Range("a" & IE).Value i percorsi devono avere il backslash finale
es.:
C:\mionome\data\
altrimenti
se hai il percorso così
C:\mionome\data
il codice di creazione cartella va modificato così
Codice: Seleziona tutto
If Dir(Indirizzo & "\" & NomeCartella, vbDirectory) = "" Then
    MkDir (Indirizzo  & "\" & NomeCartella)
End If


Ciao

Modificata macro che, come dice giustamente JohnnyC nel post successivo, l'estensione .xls non occorre in caso di creazione cartelle (per mia distrazione era rimasta nella riga codice). Ora è commentata.
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi JOHNNYC » 15/07/10 07:56

Uno spettacolo!!! :D
Ho solo eliminato l'estenzione & ".xls" in nome cartella, in quanto non serviva.

Grazie.
Johhny
JOHNNYC
Utente Junior
 
Post: 33
Iscritto il: 06/07/10 10:59
Località: Mantova

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi gaetano73 » 11/05/12 14:42

Ciao a tutti.

Scusatemi se riprendo un post così vecchio. Allora, ho (ri)utilizzato le macro (modificandone il nome) discusse in questi post. Funzionano benissimo ma la seguente
Codice: Seleziona tutto
Sub Crea_File()
    Dim Indirizzo As String
    Dim NomeCartella As String
    UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
   
    For IE = 2 To UE
        Indirizzo = Range("a" & IE).Value
        NomeCartella = Range("c" & IE).Value ' & ".xls"
        ActiveWorkbook.SaveAs Filename:=Indirizzo & "\" & NomeCartella
    Next IE
End Sub

scrive, nel Foglio1 del file creato in automatico, quello che è scritto nel foglio attivo del file che contiene la macro (ovvero, il file di "partenza").
Io avrei però bisogno che il file appena creato fosse vuoto.
Inoltre, avrei bisogno di copiare nel file alcune righe dal file di partenza (un copia e incolla) per esempio dalla 3a alla 10a.

Grazie

Gaetano Scotti
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi Anthony47 » 11/05/12 17:41

Per aggiungere un file vuoto basta usare l' istruzione
Codice: Seleziona tutto
    Workbooks.Add

Per copiare nel primo foglio del nuovo file un range del file di partenza puoi usare qualcosa come
Codice: Seleziona tutto
 ThisWorkbook.Sheets("Foglio1").Range("A1:M10").Copy Destination:=ActiveSheet.Range("A1")

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19213
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Macro per creazione automatica cartelle

Postdi gaetano73 » 14/05/12 09:10

Perfetto. Workbooks.Add mi crea un file nuovo; siccome avevo bisogno che mi creasse un file nuovo con un certo nome e in un certo percorso l'ho sostituito "Workbooks.Add.SaveAs Filename:= ..."

Codice: Seleziona tutto
Sub Crea_File()
    Dim Indirizzo As String
    Dim NomeCartella As String
    UE = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
   
    For IE = 2 To UE
        Indirizzo = Range("a" & IE).Value
        NomeCartella = Range("c" & IE).Value
        Workbooks.Add.SaveAs Filename:=Indirizzo & "\" & NomeCartella
        ThisWorkbook.Sheets("Foglio1").Range("E5:E10").Copy Destination:=ActiveSheet.Range("A1")
    Next IE
End Sub


Grazie

Gaetano
gaetano73
Utente Senior
 
Post: 250
Iscritto il: 03/09/02 18:36


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Macro per creazione automatica cartelle":


Chi c’è in linea

Visitano il forum: Nessuno e 46 ospiti