Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]-Aggiungere testo al nomefile Opzioni
aetio
Inviato: Sunday, November 07, 2010 5:45:29 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
devo modificare una parte del testo del nome di una serie di file contenuti in una cartella. La modifica riguarda un aggiornamento ai dati identificativi del file. C'è un modo per evitare la notevole perdita di tempo dell'operazione di rinomina di cascun file?
Esempio:
file1 deve diventare 18-file1
file2 deve diventare 18-file2
file3 deve diventare 18-file3
etc.
file n deve diventare 18-file n

Il prefisso 18- è comune a tutti i file di quella famiglia, contenuta nella medesima cartella.
Grazie assai e buona giornata,
eZio
Sponsor
Inviato: Sunday, November 07, 2010 5:45:29 PM

 
a10n11
Inviato: Monday, November 08, 2010 9:50:54 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova con questa:

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Miadir = "LA TUA DIRECTORY COMPLETA"
Miofile = Dir(Miadir & "\*.xls")
Do While Left(Miofile, 4) = "file"
vecchio = Miadir & "\" & Miofile
Nuovo = Miadir & "\" & "18-" & Miofile
Name vecchio As Nuovo
Miofile = Dir
Loop
End Sub

Saluti
Giap

aetio
Inviato: Monday, November 08, 2010 11:22:13 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
mi spiace, ma la macro non funziona... la lancio (con indirizzo directory completo...), ma non succede assolutamente nulla... non esce neppure un messaggio di errore. Sicuramente sbaglio io... l'ho inserita nel file PERSONAL.xlsm
Ho modificato l'istruzione in
Miofile = Dir(Miadir & "\*.xlsm")
perché in Excel 2007 i file con macro hanno quell'estensione

Do While Left(Miofile, 4) = "file"
che significato ha il 4?... il numero di file contenuti nella cartella?

Grazie assai e buona giornata,
eZio
a10n11
Inviato: Monday, November 08, 2010 11:30:38 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
la macro cerca file con estensione Xls

Miofile = Dir(Miadir & "\*.xls")

se l'estensione dei tuoi file visto che hai 2007 dovrai cercare i file con estensione Xlsx - xlsm dipende
da che tipo sono i tuoi file.
Puoi mettere la macro in un normale file excel perchè usare il file Personal ?

..Left(Miofile, 4) = "file"
significa:
le prime 4 posizioni a sinistra del nome del file = "file"

saluti
Giap

aetio
Inviato: Monday, November 08, 2010 11:47:33 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
spiacente, ma non funziona... non riesco a capire il motivo, dato che le coordinate sono esatte e complete, partendo da C:\
Mistero della fede... :)) Non capisco dove sbaglio... boh??
Grazie assai,
eZio
a10n11
Inviato: Monday, November 08, 2010 12:37:58 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
puoi eseguire la seguente macro sostituendo il percorso di Miadir:
Crea l'elenco di tutti i file contenuti nella directory:

Sub elencoFilesinDirectory()
n = 1
Miadir = "Tua directory\" ' >>>da cambiare
miofile = Dir(Miadir & "\*.*")
Do While miofile <> ""
Cells(n, 1).Value = miofile
miofile = Dir
n = n + 1
Loop
End Sub

Inserisci la macro in un file vuoto di escel ed eseguila, mostra poi i risultati.
saluti
Giap

aetio
Inviato: Monday, November 08, 2010 1:29:04 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
quest'ultima macro funziona... nel foglio compare l'elenco dei files contenuti nella cartella...
Non ho capito se devo copiarti l'elenco qui... o è una prova per vedere se le istruzioni vengono recepite correttamente...
Grazie assai,
eZio
a10n11
Inviato: Monday, November 08, 2010 4:34:43 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
quest'ultima macro funziona... nel foglio compare l'elenco dei files contenuti nella cartella...
Non ho capito se devo copiarti l'elenco qui... o è una prova per vedere se le istruzioni vengono recepite correttamente...
Grazie assai,
eZio


salve
volevo solo vedere una parte dell'elenco che veniva estratto.
saluti
Giap

aetio
Inviato: Monday, November 08, 2010 5:29:51 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
ecco il risultato, tutti i files sono nella stessa cartella:
Cartel1.xlsm (è il file che contiene la macro)
MAG.1_+_MAG.2.xlsm
MAG.1_+_MAG.3.xlsm
MAG.1_+_MAG.4.xlsm
MAG.1_+_MAG.5.xlsm
MAG.1_+_MAG.6.xlsm
MAG.2_+_MAG.3.xlsm
MAG.2_+_MAG.4.xlsm
MAG.2_+_MAG.5.xlsm
MAG.2_+_MAG.6.xlsm
MAG.3_+_MAG.4.xlsm
MAG.3_+_MAG.5.xlsm
MAG.3_+_MAG.6.xlsm
MAG.4_+_MAG.5.xlsm
MAG.4_+_MAG.6.xlsm
MAG.5_+_MAG.6.xlsm
a questo elenco vorrei scrivere il prefisso di appartenenza di Settore... la ns. catalogazione interna è (una ad esempio) 72'43
per cui i files dovrebbero diventare
72'43-MAG.1_+_MAG.2.xlsm
72'43-MAG.1_+_MAG.3.xlsm
72'43-MAG.1_+_MAG.4.xlsm
72'43-MAG.1_+_MAG.5.xlsm
72'43-MAG.1_+_MAG.6.xlsm
72'43-MAG.2_+_MAG.3.xlsm
72'43-MAG.2_+_MAG.4.xlsm
72'43-MAG.2_+_MAG.5.xlsm
72'43-MAG.2_+_MAG.6.xlsm
72'43-MAG.3_+_MAG.4.xlsm
72'43-MAG.3_+_MAG.5.xlsm
72'43-MAG.3_+_MAG.6.xlsm
72'43-MAG.4_+_MAG.5.xlsm
72'43-MAG.4_+_MAG.6.xlsm
72'43-MAG.5_+_MAG.6.xlsm
Grazie assai,
eZio
a10n11
Inviato: Monday, November 08, 2010 6:53:14 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
ecco il risultato, tutti i files sono nella stessa cartella:
Cartel1.xlsm (è il file che contiene la macro)
MAG.1_+_MAG.2.xlsm
MAG.1_+_MAG.3.xlsm
MAG.1_+_MAG.4.xlsm
MAG.1_+_MAG.5.xlsm
MAG.1_+_MAG.6.xlsm
MAG.2_+_MAG.3.xlsm
MAG.2_+_MAG.4.xlsm
MAG.2_+_MAG.5.xlsm
MAG.2_+_MAG.6.xlsm
MAG.3_+_MAG.4.xlsm
MAG.3_+_MAG.5.xlsm
MAG.3_+_MAG.6.xlsm
MAG.4_+_MAG.5.xlsm
MAG.4_+_MAG.6.xlsm
MAG.5_+_MAG.6.xlsm
a questo elenco vorrei scrivere il prefisso di appartenenza di Settore... la ns. catalogazione interna è (una ad esempio) 72'43
per cui i files dovrebbero diventare
72'43-MAG.1_+_MAG.2.xlsm
72'43-MAG.1_+_MAG.3.xlsm
72'43-MAG.1_+_MAG.4.xlsm
72'43-MAG.1_+_MAG.5.xlsm
72'43-MAG.1_+_MAG.6.xlsm
72'43-MAG.2_+_MAG.3.xlsm
72'43-MAG.2_+_MAG.4.xlsm
72'43-MAG.2_+_MAG.5.xlsm
72'43-MAG.2_+_MAG.6.xlsm
72'43-MAG.3_+_MAG.4.xlsm
72'43-MAG.3_+_MAG.5.xlsm
72'43-MAG.3_+_MAG.6.xlsm
72'43-MAG.4_+_MAG.5.xlsm
72'43-MAG.4_+_MAG.6.xlsm
72'43-MAG.5_+_MAG.6.xlsm
Grazie assai,
eZio



Salve
ma perchè non fate mai un esempio pari pari alle vostre esigenze?
prova a modificare come segue:

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Miadir = "LA TUA DIRECTORY COMPLETA"
Miofile = Dir(Miadir & "\*.xlsm")
Do While Left(Miofile, 3) = "MAG"
vecchio = Miadir & "\" & Miofile
Nuovo = Miadir & "\" & "72'43-" & Miofile
Name vecchio As Nuovo
Miofile = Dir
Loop
End Sub

saluti
Giap

aetio
Inviato: Monday, November 08, 2010 9:57:39 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
a10n11 ha scritto:
ma perchè non fate mai un esempio pari pari alle vostre esigenze?

Vero.... ma in questo caso le casistiche sono parecchie...
L'deale sarebbe di avere un Jolly che si limita a scrivere un prefisso a una serie di file che risiedono nella stessa cartella, indipendentemente dal loro nome originale... Perché spesso ho dei file dal nome diverso che alloggiano nella stessa cartella, ma che necessitano tutti dello stesso prefisso per poterli marchiare senza possibilità di confusione.
Purtroppo l'ultima macro non funziona, nonostante il nomefile sia proprio quello... non riesco a capire perché non gira... dato che la directory è quella. Ed è strano che non restituisca nessun errore...
Grazie assai,
eZio
a10n11
Inviato: Monday, November 08, 2010 10:16:09 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
mi mostri per intero il codice che fai girare?
saluti
Giap

aetio
Inviato: Monday, November 08, 2010 11:23:00 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
certamente...
ho dedicato (ovvio...) una cartella di prova

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Miadir = "C:\Documents and Settings\User\Documenti\AAA\EZIOEXCEL1\Copia di ELABORAZIONI\Copia di Preparazione"
Miofile = Dir(Miadir & "\*.xlsm")
Do While Left(Miofile, 3) = "MAG"
vecchio = Miadir & "\" & Miofile
Nuovo = Miadir & "\" & "72'43-" & Miofile
Name vecchio As Nuovo
Miofile = Dir
Loop
End Sub

Grazie assai,
eZio

a10n11
Inviato: Tuesday, November 09, 2010 10:24:04 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Non riesco a replicare il problema che riscontri.
Prova con questa modifica:

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Dim coll As New Collection
Miadir = "C:\Documents and Settings\User\Documenti\AAA\EZIOEXCEL1\Copia di ELABORAZIONI\Copia di Preparazione"
Miofile = Dir(Miadir & "\*.xlsm")
Do While Left(Miofile, 3) = "MAG"
coll.Add Miofile
Miofile = Dir
Loop
For n = 1 To coll.Count
vecchio = Miadir & "\" & coll(n)
Nuovo = Miadir & "\" & "72'43-" & coll(n)
Name Miadir & "\" & coll(n) As Nuovo
Next n
End Sub
saluti
Giap

aetio
Inviato: Tuesday, November 09, 2010 10:43:01 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
mi spiace molto, ti sto tribolando con questo chiodo fisso...
non funziona ancora. Bonaccia completa. Nessun messaggio di errore, nessuna variazione nei nomi dei files... eppure la directory è quella, i files hanno quel nome, il file è regolarmente abilitato ad eseguire macro (che esegue regolarmente... ho testato anche quello).
A te funziona? Se si, allora forse c'è qualche novità in seno alle versioni del programma. Se non sbaglio tu la fai girare in 2003, io in 2007. Ma il linguaggio è il medesimo... bo?!? questo è davvero un mistero della fede. Un errore, un'incongruenza, se ci fossero, dovrebbe restituirli comunque, mentre qui non succede assolutamente nulla....
Grazie infinite per la tua illimitata pazienza, buona giornata
eZio
a10n11
Inviato: Tuesday, November 09, 2010 11:56:02 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
mi spiace molto, ti sto tribolando con questo chiodo fisso...
non funziona ancora. Bonaccia completa. Nessun messaggio di errore, nessuna variazione nei nomi dei files... eppure la directory è quella, i files hanno quel nome, il file è regolarmente abilitato ad eseguire macro (che esegue regolarmente... ho testato anche quello).
A te funziona? Se si, allora forse c'è qualche novità in seno alle versioni del programma. Se non sbaglio tu la fai girare in 2003, io in 2007. Ma il linguaggio è il medesimo... bo?!? questo è davvero un mistero della fede. Un errore, un'incongruenza, se ci fossero, dovrebbe restituirli comunque, mentre qui non succede assolutamente nulla....
Grazie infinite per la tua illimitata pazienza, buona giornata
eZio


salve
Se non ti restituisce nessun errore significa che non trova nessun file da elaborare. A questo punto mi fa pensare che il file non cominci con "MAG"

a questo punto fai girare di nuovo questa macro in una cartella vuota
una volta che ti ha creato l'elenco dei file nella cella B1 scrivi questa formula
=Sinistra(A1;3)
fammi sapere il risultato.


Sub elencoFilesinDirectory()
n = 1
Miadir = "C:\Documents and Settings\User\Documenti\AAA\EZIOEXCEL1\Copia di ELABORAZIONI\Copia di Preparazione"
miofile = Dir(Miadir & "\*.*")
Do While miofile <> ""
Cells(n, 1).Value = miofile
miofile = Dir
n = n + 1
Loop
End Sub



Se la cartella contiene solo i file da modificare, possiamo togliere il controllo dell'iniziale del nome file e processarli tutti modificando così la macro:

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Dim coll As New Collection
Miadir = "C:\Documents and Settings\User\Documenti\AAA\EZIOEXCEL1\Copia di ELABORAZIONI\Copia di Preparazione"
Miofile = Dir(Miadir & "\*.xlsm")
Do While Miofile <> ""
coll.Add Miofile
Miofile = Dir
Loop
For n = 1 To coll.Count
vecchio = Miadir & "\" & coll(n)
Nuovo = Miadir & "\" & "72'43-" & coll(n)
Name Miadir & "\" & coll(n) As Nuovo
Next n
End Sub



saluti
Giap

aetio
Inviato: Tuesday, November 09, 2010 2:07:58 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
a10n11 ha scritto:


Se la cartella contiene solo i file da modificare, possiamo togliere il controllo dell'iniziale del nome file e processarli tutti modificando così la macro etc.



Queste tue parole mi hanno dato la soluzione: per esigenze di "accorpamento" delle operazioni attinenti (altrimenti il tutto diventerebbe ingestibile: l'ambiente in cui gira tutto il mio ambaradan è veramente un universo ahahahah...) avevo inserito la macro in un file che risiede nella stessa cartella dei files da modificare, pagina che funge anche da legenda, check list etc.
Ho estratto quel file dalla cartella e la macro ha girato da dio (non esageriamo... è un modo di dire...ahahah)
Sei davvero il N.1
Grazie assai e buon pomeriggio... mi hai fatto davvero felice: non hai idea del tempo che si perde nel dovere modificare manualmente i file (non ci sono alternative... bisogna modificarli dopo averli processati, altrimenti sarebbero dolori!!)
eZio
a10n11
Inviato: Tuesday, November 09, 2010 2:26:59 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
in pratica la prima versione prevedeva che il file della macro fosse contenuto nella stessa directory dei file da
modificare.
Ho scoperto l'errore (una banale svista che faceva uscire dal loop quando la condizione dell'iniziale del nome file diventava falsa).
questa è la correzione:

Sub RinominaFiles()
Dim Miadir As String
Dim Miofile As String
Dim vecchio As String
Dim Nuovo As String
Dim coll As New Collection
Miadir = "C:\Documents and Settings\User\Documenti\AAA\EZIOEXCEL1\Copia di ELABORAZIONI\Copia di Preparazione"
Miofile = Dir(Miadir & "\*.xls")
Do While Left(Miofile, 3) <> ""
If Left(Miofile, 3) = "MAG" Then
coll.Add Miofile
End If
Miofile = Dir
Loop
For n = 1 To coll.Count
vecchio = Miadir & "\" & coll(n)
Nuovo = Miadir & "\" & "72'43-" & coll(n)
Name Miadir & "\" & coll(n) As Nuovo
Next n
End Sub

saluti
Giap


aetio
Inviato: Tuesday, November 09, 2010 2:47:51 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Grazie infinite!! Siano Benedetti in eterno i Creatori di macro..... :)))))))))
eZio
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.