È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

rinominare file

  • Messaggi
  • OFFLINE
    grmail1
    Post: 2
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 10/05/2018 13:12
    Come consigliato da Raffaele, sposto su una nuova discussione la mia richiesta. Ho dovuto ricavare file di simulazione perché quelli originali contengono informazioni personali.

    Qui sotto la descrizione originaria.

    Ho delle stringhe di nomefile come la seguente
    COGNOME_MIUR.AOODR.Reg_reg_dei_decreti_direttoriali.1111.31-08-2017.pdf
    e vorrei trasformarla in stringhe di nome file ...
    CODICEFISCALE-COGNOME_1111.31-08-2017.pdf
    Importante è il CF in testa al file.

    Si tratterebbe di prendere i CF e i cognomi da un file xls o cvs (o ev. txt se serve).

    Ciò di cui avrei bisogno è una sorta di "fusione di stampa" che "verificato" il cognome (nel nome del file con il cognome nel file xls/cvs), "prelevi" all'interno del file xls/cvs il codice fiscale corrispondente al nome, aggiungendolo in testa al nome del file. Il numero delle omonimie di cognome è molto ridotto e potrei gestirlo a parte.

    Ho provato a fare quanto sopra con Advanced Renamer e altri programmi simili ma non sono riuscito ad individuare la funzione giusta (se esiste).

    Come consigliato, allego alcuni file di simulazione.
    1- I file "provvedimento" da rinominare (si tratta di file PDF che NON posso modificare) si trovano nella cartella File di partenza.
    2- La lista dei nominativi con i codici fiscali e la mail per l'invio dei provvedimenti è nel file Excel. Se questa lista non fosse ottimale, posso rivederla, ad esempio potrei disgiungere cognome e nome se servisse a gestire le omonimie di cognome
    3- Un esempio di file rinominato è presente nella cartella File rinominati.

    Excel 2010

    Giovanni
  • OFFLINE
    grmail1
    Post: 2
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 10/05/2018 13:47
    rinominare file
    Ora rispondo anche a guybruhs82 (in ordine di arrivo di post)

    Allego il file che mi hai chiesto con due colonne, una con il nome del file originari e una con il nome del file ... come lo vorrei.
    Ho aggiunto queste informazioni a quelle del file originario (post precedente), se ti danno noia toglile.

    Ti ricordo che il mio problema consiste nel rinominare il nome dei file (non dei campi di Excel), prendendo le informazioni (in particolare il codice fiscale) da un file Excel, che va aggiunto in testa al nome del file corrispondente.
    Tutti i file pdf sono diversi (sono nominativi) e andrebbero abbinati al corrispondente CF nel file Excel.

    Grazie a te e a quanti potranno darmi una mano [SM=x423047]

    Rinominare qualche centinaio di file a manina mi lascia ... perplesso [SM=x423021]
  • OFFLINE
    raffaele1953
    Post: 3.437
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 10/05/2018 19:34
    Come da Tuo allegato, inserisci il files nella stessa directory
    Ci devono essere pure le due stesse sottodirectory
    Premi il bottone nelle colonne D/E appaione delle scritte (devi trovarci una soluzione)
    In colonna F appaiono nomi di file, non presenti in foglio1
    Quando sei a posto premi ALT+F11, verso la metà c'è una riga verde (togli il ')
    Excel 2013
  • OFFLINE
    grmail1
    Post: 4
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 10/05/2018 22:41
    Re:
    raffaele1953, 10/05/2018 19.34:

    Come da Tuo allegato, inserisci il files nella stessa directory
    Ci devono essere pure le due stesse sottodirectory
    Premi il bottone nelle colonne D/E appaione delle scritte (devi trovarci una soluzione)
    In colonna F appaiono nomi di file, non presenti in foglio1
    Quando sei a posto premi ALT+F11, verso la metà c'è una riga verde (togli il ')



    Mi spiace, non capisco [SM=x423059]
    1- inserisco i file da rinominare (quindi gli originali) in una directory (insieme al file Excel?)
    2- creo due subdir che si chiamano file-di-partenza e file-originali
    3- in file-di-partenza metto i file già inseriti nella DIR
    4- la DIR file-originali è vuota (dovrà contenere i file rinominati)
    5- trascurando per il momento i due casi di quasi omonimia, cosa devo verificare nel file Excel?
    6- non capisco cosa dovrei togliere nella riga verde (forse volevi indicarmi lo sfondo verde di una cella?)

    Grazie.
  • OFFLINE
    raffaele1953
    Post: 3.440
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 11/05/2018 00:59
    Ricominciamo da zero, creati una cartella sul desktop e mettici dentro il files che ho allegato.
    Dopo nella stessa cartella, crei altre due cartelle, una col nome file-di-partenza l'altra col mome file-rinominati.
    1)Adesso (COPIA, non spostarli) tutti i Tuoi PDF nella cartella file-di-partenza.
    2)Apri il files Allegato (casomai dovrai abilitare le macro), selezioni colonne ABC e cancelli il contenuto. Selezioni G/H e cancelli il contenuto.
    3)Apri il Tuo files originale dei CF, Selezioni la colonna dei nomi e la copy in colonna A, selezioni la colonna dei Codici fiscali e la incolli in colonna G (chiudi il Tuo files)
    4)Ti posizioni sulla colonna A, excel/Dati/Testo in colonne/delimitato avanti/metti una spunta su spazio avanti/fine
    5) A questo punto premi il bottone, appaiono delle scritte in D/E/F.
    Colonna D) Se appare doppione = il codice non farà nulla
    Colonna E) OK = il codice lo farà
    Colonna F) Nome-files.pdf, nella cartella\file-di-partenza, esiste un files mà non trovo il nome in colonna A

    Fino qui, il VBA ha fatto solo una prova e Ti mostra a monitor quello che può fare/non fare. Se il risultato Ti sembra giusto e desideri eseguire veramente la rinomina, premi ALT + F11.
    Sulla parte destra riga27 (quella verde ='Name Path2 & Nome1 As Path3 & Nome3) gli togli l'apice iniziale (') e chiudi.
    Ripremi nuovamente il bottone che riesegue il tutto.
    Nella cartella file-rinominati i files rinominati.pdf
    Nella cartella file-di-partenza i files rimanenti che non ha eseguito
    [Modificato da raffaele1953 11/05/2018 01:02]
    Excel 2013
  • OFFLINE
    grmail1
    Post: 5
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 23/05/2018 12:07
    Re:
    raffaele1953, 11/05/2018 00.59:

    Ricominciamo da zero, creati una cartella sul desktop e mettici dentro il files che ho allegato...



    Mille grazie Raffaele per il tuo VBA e per la procedura. Per il momento ho fatto solo qualche prova, ma sembra che il tuo script funzioni [SM=x423030]
    Ora farò la prova del 9, con i 350 file veri e poi ti dirò.

    Giovanni
  • OFFLINE
    grmail1
    Post: 6
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 05/06/2018 10:47
    Re: rinominare file
    raffaele1953, 11/05/2018 00.59:

    Ricominciamo da zero, ... Se il risultato Ti sembra giusto e desideri eseguire veramente la rinomina, premi ALT + F11.



    Raffaele, ho necessità di cambiare il nome del file da riordinare. Ho alcuni file denominati solamente COGNOME.PDF (es. BIANCHI.PDF, ROSSI.PDF, VERDI.PDF ...) Mi sono accorto che se i nomi dei file da rinominare sono diversi da quelli della stringa iniziale, la macro non funziona (chiamata di routine o argomenti non validi). Pensavo di poter modificare la stringa di chiamata, riprendendo la macro ma non sono riuscito. In allegato la macro con il tentativo fatto.
    Hai ancora voglia di aiutarmi?

    Giovanni

    [Modificato da grmail1 05/06/2018 10:55]
  • OFFLINE
    raffaele1953
    Post: 3.516
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 05/06/2018 13:08
    Devo precisare una cosa...
    Quando ho visto i Tuoi files d'esempio, ho notato che esisteva un numero dopo "decreti_dirett"
    Pertanto il VBA era fatto a misura per quei files, mantenendo "quei numeri"

    Adesso dici che sono rimasti solo alcuni file denominati solo con COGNOME.pdf (intendo cognomepuntopdf)
    Da qui si deduce che non possono esistere doppioni. Metti la spunta davanti a queste righe
    'Nome2 = "*.pdf"
    'Nome2 = "MIUR.AOODR.Reg_reg_dei_decreti_dirett.1348.*"
    6 righe sotto modifica la riga, sostituendo il _ con un punto
    Nome2 = Mid(Nome1, 1, InStr(Nome1, ".") - 1)
    Dovrebbe funzionare

    EDIT (Rivedendo il tutto, ho sbagliato con la riga9 compreso il numero
    Nome2 = "MIUR.AOODR.Reg_reg_dei_decreti_dirett.1348.*"
    Doveva essere differente, mà a te adesso non serve più.) EDIT
    [Modificato da raffaele1953 05/06/2018 16:01]
    Excel 2013
  • OFFLINE
    grmail1
    Post: 7
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 31/05/2019 11:54
    Re: rinominare file
    raffaele1953, 05/06/2018 13.08:

    Devo precisare una cosa...
    Quando ho visto i Tuoi files d'esempio, ho notato che esisteva un numero dopo "decreti_dirett"
    Pertanto il VBA era fatto a misura per quei files, mantenendo "quei numeri"

    Adesso dici che sono rimasti solo alcuni file denominati solo con COGNOME.pdf (intendo cognomepuntopdf)
    Da qui si deduce che non possono esistere doppioni. Metti la spunta davanti a queste righe
    'Nome2 = "*.pdf"
    'Nome2 = "MIUR.AOODR.Reg_reg_dei_decreti_dirett.1348.*"
    6 righe sotto modifica la riga, sostituendo il _ con un punto
    Nome2 = Mid(Nome1, 1, InStr(Nome1, ".") - 1)
    Dovrebbe funzionare

    EDIT (Rivedendo il tutto, ho sbagliato con la riga9 compreso il numero
    Nome2 = "MIUR.AOODR.Reg_reg_dei_decreti_dirett.1348.*"
    Doveva essere differente, mà a te adesso non serve più.) EDIT


    Raffaele, per cortesia, potresti risistemarmi il codice in modo che possa rinominare correttamente i file? Il nome del file originario è un po' diverso da quello dello scorso anno. Ti allego il file Excel che mi avevi predisposto e ho aggiunto sulla destra (a sfondo verde) il nome di una decina di file originali (da rinominare) e sulla destra il risultato che vorrei avere.


    [Modificato da grmail1 31/05/2019 12:28]
  • OFFLINE
    raffaele1953
    Post: 3.761
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    10 31/05/2019 16:54
    Nell'allegato esiste una Directory con due sottodirectory
    Copia tutti i PDF nella sottodirectory=file-di-partenza
    Avvii il files RinominaPDF.xlsm e premi elabora, ad un certo punto Ti chiede se deve rinominare? Sposta il MSGBOX in modo da visualizzare quello che farà. Decidi se premere Si oppure No
    Ps. La cartella file-rinominati dovrà essere sempre vuota
    Excel 2013
  • OFFLINE
    grmail1
    Post: 8
    Registrato il: 11/09/2011
    Città: TORINO
    Età: 61
    Utente Junior
    2010
    00 04/06/2019 13:16
    Re:
    raffaele1953, 31/05/2019 16.54:

    Nell'allegato esiste una Directory con due sottodirectory
    Copia tutti i PDF nella sottodirectory=file-di-partenza
    Avvii il files RinominaPDF.xlsm e premi elabora, ad un certo punto Ti chiede se deve rinominare? Sposta il MSGBOX in modo da visualizzare quello che farà. Decidi se premere Si oppure No
    Ps. La cartella file-rinominati dovrà essere sempre vuota


    Raffaele, la funzione funzione in circa la metà dei casi. Posso avere un tuo riferimento mail in modo da girarti il file eseguito (che contiene dati soggetti a privacy)?

  • OFFLINE
    raffaele1953
    Post: 3.776
    Registrato il: 28/06/2011
    Città: AGORDO
    Età: 70
    Utente Master
    2013
    00 04/06/2019 17:05
    Non sò cosa dirti, per me il codice è giusto
    Ho provato (senza files, senza rinominare) ed sono andato sino riga 330
    Se desideri (nel codice riga74) metti una spunta davanti
    'Name Path2 & Nome1 As Path3 & Nome4 e riprova

    Ps. L'unica cosa che puoi semplificare sono le righe 68-74 con questo
                        r = Rr.Row
                        Nome1 = Cells(r, 7)
                        Nome2 = Cells(X, 5) & "_" & Nome1
                        Cells(X, 3) = Nome2
                        Name Path2 & Nome1 As Path3 & Nome2
    Excel 2013
  • 15MediaObject5,00112 1