Condividi:        

[EXCEL] Macro "rinomina files con numero progressivo"

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 "rinomina files con numero progressivo"

Postdi superpippa » 16/09/11 14:05

Buonasera a tutti.
In una cartella ho dei files .xls con vario nome.
Ho bisogno di una macro che li rinomini in questo modo:
REPORT.XLS
REPORT(1).XLS
...
REPORT(n).XLS

Attualmente utilizzo il codice seguente, che però mi da un problema: ogni tanto i files vengono rinominati NON a partire dal numero (1) ma da un altro numero (es: 101 oppure 1001).
Non riesco a capirne il motivo.
Vorrei semplicemente riprodurre ciò che accade quando "manualmente" si selezionano tutti i files di una cartella, si preme F2 e si inserisce il nuovo nome richiesto: facendolo però in automatico.
Dove sbaglio?

Codice: Seleziona tutto
Sub RINOMINA_REPORT()

Dim NomeFiglio, cartella, Conta
cartella = "C:\REPORT\"
NomeFiglio = Dir(cartella, vbDirectory)
Conta = 1
Do While NomeFiglio <> ""
If (GetAttr(cartella & NomeFiglio) And vbDirectory) <> vbDirectory Then
Name cartella & NomeFiglio As cartella & "REPORT" & Format(Conta, "(0)") & ".XLS"
Conta = Conta + 1
End If
NomeFiglio = Dir
Loop
End Sub
sono per la condivisione del sapere: il problema è che su questo forum il mio sapere è molto limitato...
superpippa
Utente Junior
 
Post: 12
Iscritto il: 19/07/11 16:59

Sponsor
 

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Anthony47 » 17/09/11 00:35

Prima eventualmente di dare suggerimenti su questo tema aspettiamo di conoscere la tua risposta a quanto suggerito in ques' altra discussione: viewtopic.php?f=26&t=92291&p=530469#p530446
E' evidente che "quella" risposta determina la validita' di "questa" domanda.

Nel frattempo per favore conferma che la rinumerazione errata e' del tipo (101) e non del tipo (0x)(0y), e dicci che versione di excel usi.

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

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi superpippa » 17/09/11 21:10

Allora:
1) uso Excel 2007;
2) la rinumerazione è errata nel senso che parte da (101), poi procede correttamente; in altri casi parte da (1001).

Il problema si verifica quando i file nella cartella sono in una certa quantità, ma non sono riuscito a trovare una correlazione precisa (banalmente pensavo accadesse sopra i 100).

Ps: più tardi utilizzerò la soluzione proposta nell'altro topic (vedi tuo link appena sopra); tuttavia ero comunque interessato a capire quale fosse il problema, mi puo' essere utile in altra occasione. Ovviamente rispettoso del tempo altrui, per cui se risolvo nell'altra maniera questo mi diventa un "caso di scuola".

saluti e grazie
sono per la condivisione del sapere: il problema è che su questo forum il mio sapere è molto limitato...
superpippa
Utente Junior
 
Post: 12
Iscritto il: 19/07/11 16:59

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Anthony47 » 18/09/11 00:46

Quello che succede e' dovuto al fatto che tu estrai l' elenco file e contemporaneamente modifichi lo stesso elenco; il risultato e' che e' possibile che intere catene di file rinominati vengano ulteriormente estratti e ri-rinominati. Dovresti anche avere errori di nome file gia' esistente e casi di rinumerazioni del tipo (1), (10), (100), (101), (102), etc.
Non conosco l' algoritmo che determina la sequenza di estrazione, quindi non sono in grado di prevedere quando il fattaccio si verifica e quando no.

Per evitare questo potresti estrarre i nome file e caricarli in una matrice, e successivamente rinomini partendo dai nomi nella matrice.

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

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Flash30005 » 18/09/11 06:01

Mi intrometto in questa discussione solo perché un paio di anni fa realizzai un programma in excel che permettesse la rinomina di file nella directory e sottodirectory in maniera "abbastanza semplice", soprattutto perché è possibile visualizzare il/i nomi dei file prima di procedere alla ridenominazione attraverso l'apposito comando.
Ottimo per la numerazione automatica sul nome del file

Download

Premetto che è il programma per quanto sia stato testato potrebbe dare risultati inattesi, dovuti alla struttura delle directory diverse a seconda dei diversi sistemi operativi pertanto è opportuno fare delle prove con apposite cartelle e con dei file copia.
Il programma ha una piccola guida per l'uso.
Il modulo è autoestrante e va a collocare i file necessari nella directory C:\Temp
da questo momento è disponibile nel menu contestuale del mouse (tasto destro) il comando "Rinomina File" ad ogni cartella del disco (non bisogna avviare il file contenuto in C:\Temp)

Per qualsiasi chiarimento o migliorie da apportare
puoi postare al fine di perfezionare le performance del programma stesso.

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 "rinomina files con numero progressivo"

Postdi superpippa » 20/09/11 22:05

grazie per la segnalazione.
Nel mio caso sto però cercando una soluzione "100%macro" per far tutto in automatico, anche per imparare qualche cosa in più. Infatti cercavo di emulare il comportamento di Windows (seleziona tutto - F2 - rinomina) che sarebbe velocissimo ed efficace per quello che mi serve. Chiamiamola fissazione :D
sono per la condivisione del sapere: il problema è che su questo forum il mio sapere è molto limitato...
superpippa
Utente Junior
 
Post: 12
Iscritto il: 19/07/11 16:59

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Flash30005 » 20/09/11 23:48

superpippa ha scritto:Chiamiamola fissazione

Ognuno di noi ha delle "fissazioni", le mie però finiscono di essere tali quando c'è una soluzione adeguata e funzionante, in tal caso non mi ostino a cercare qualcosa di diverso.
Sappi che il tempo è il bene più prezioso che ha l'uomo, più prezioso della ricchezza o del denaro, in quanto, al momento, non è possibile incrementarlo.
Usando la logica le "fisse" diventano un buono stimolo a impegnarsi per ottenere ma quando si è ottenuto a cosa giova perderci su altro tempo?

Ma forse non hai nemmeno provato il file che ti ho inviato perché è più veloce della tua selezione e dell'azione di premere F2 e rinominare senza aver alcun controllo della ridenominazione mentre, con il programma hai tutto sotto controllo e decidere sul da farsi.

Se deciderai diversamente ti garantisco non mi farò coinvolgere dalle tue "fisse" (ne ho già tante io!) :D

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 "rinomina files con numero progressivo"

Postdi mauro27 » 28/05/12 12:21

ciao Flash30005

il link e' fuori uso

puoi caricare il file su altro sito o dropbox o altro ?

grazie mille

mauro
______________________________________
mauro

excel 2010 su win 7
excel 2011 su OSX 10
mauro27
Newbie
 
Post: 1
Iscritto il: 28/05/12 11:14

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Zer0Kelvin » 28/05/12 16:12

Salve a tutti.
Ho fatto qualche prova ed ho constatato che in effetti i file rinominati vengono rinominati nuovamente, ma con quale criterio rimane un mistero.
Ho provato ad usare FileSystemObject ed un ciclo for...each, funziona bene se i file sono pochi (10 - 20).
Con 155 files per esempio comincia a rinumerare da 1000. Se inizializzo il contatore a 1000 me li rinumera da 10000 e ci mette più tempo (più cicli quindi :?: ).
Alla fine ho optato per una soluzione che "aggira" il problema: sposto i files rinominati in una cartella temporanea e li rimetto a posto dopo averli rinominati tutti; non è proprio "da manuale" ma funziona.
Questo il codice che ho usato:
Codice: Seleziona tutto
Sub fRename()
Const cartella = "D:\Test"
Const estensione = ").XLS"
Const nomebase = "REPORT ("
Dim fs As Object, fl As Object, ff As Object
Dim indice As Long
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set fl = fs.getfolder(cartella).Files
    indice = 1
    MkDir cartella & "\Tmp"
    For Each ff In fl
        ff.Move cartella & "\Tmp\" & nomebase & indice & estensione
        indice = indice + 1
    Next ff
    Set fl = fs.getfolder(cartella & "\Tmp").Files
    For Each ff In fl
        ff.Move cartella & "\"
    Next ff
    RmDir cartella & "\Tmp"
    Set fl = Nothing
    Set fs = Nothing
End Sub
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: [EXCEL] Macro "rinomina files con numero progressivo"

Postdi Flash30005 » 28/05/12 16:25

mauro27 ha scritto:il link e' fuori uso


Ho effettuato l'upload su questo server

Le raccomandazioni sono le stesse del post del 18/09/2011

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-


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Macro "rinomina files con numero progressivo"":


Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti