Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Macro per Rinominare Files

  • Messaggi
  • OFFLINE
    L2018
    Post: 798
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 19/10/2023 19:41
    Un saluto a tutti
    mi piacerebbe avere una macro che faccia un lavoro credo abbastanza semplice
    Sarebbe logico che me la facessi io col mio PowerBasic ma in questo periodo trovo complicato realizzarla e quindi mi illudo vergognosamente di avere una specie di pappa pronta, visto che di VBA non me ne intendo più di poco.
    Ma posso descrivere il suo funzionamento.
    La macro deve permettermi di andare alla directory da me scelta, che è quella della cache di navigazione del mio browser.
    Per motivi operativi dovrei essere io a guidare la finestra di dialogo fino al posto giusto.
    In questa directory di solito ci sono 1000-1500 files, tutti senza estensione.
    la macro deve prelevare ogni santo file, o meglio i primi 20 caratteri del file, e da uno schemino che è scritto nel foglio 1 capire di che file si tratta.
    Per esempio se nei primi caratteri c'è la sottostringa JFIF il file è certamente un JPG, se la sottostringa è WEBP il file è una immagine WEBP, se la sottostringa è ID3 il file è un file audio MP3, e così via.
    Quindi ogni volta che nei primi caratteri del file viene trovata una corrispondenza, il file stesso deve essere subito rinominato aggiungendogli l'estensione trovata.
    Esempio, se si trova la sottostringa ID3 (audio mp3) un file di nome file deve essere rinominato come file.mp3, eccetera.
    alla fine resteranno diversi files dei quali non è stata rilevata nessuna delle sottostringhe elencate nello schema, e allora dovrebbro o potrebbero essere cancellati dalla macro (ma si puo' fare manualmente).

    schema delle corrispondenze
    WEBP = .webp
    JFIF = .jpg
    GIF = .gif
    PNG = .png
    BMP = .bmp
    ID3 = .mp3
    MP4 = .mp4

    Finora ho trovato questi tipi di files, forse ne trovo altri, ma mi bastano questi di immagine e video scritti sopra.
    Quindi se Intestazione = JFIF, il file diventa file.jpg, ecc secondo la tabellina suesposta.
    Per decidere come rinominare forse è il caso di usare "select case"
    altro non mi viene in mente,casomai chiedetemi

    Leo
    [Modificato da L2018 19/10/2023 20:01]

    LEO
    https://t.me/LordBrum
  • ONLINE
    alfrimpa
    Post: 4.968
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 19/10/2023 20:51
    Ma la sottostringa è nel nome del file?

    Fai qualche esempio di come sono adesso e come devono diventare
    [Modificato da alfrimpa 19/10/2023 20:53]

    Alfredo
  • ONLINE
    alfrimpa
    Post: 4.969
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 19/10/2023 20:56
    E quando cominci a studiare il VBA?

    Alfredo
  • OFFLINE
    L2018
    Post: 798
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 19/10/2023 21:10
    Re:
    alfrimpa, 19/10/2023 20:51:

    Ma la sottostringa è nel nome del file?

    Fai qualche esempio di come sono adesso e come devono diventare




    RIFFó5 WEBPVP8 û5

    questi sono i primi 20 caratteri di un file immagine di 79000 bytes (il nome non interessa in questo momento)

    in questa stringa di 20 caratteri c'è la sottostringa WEBP (instr(str,"WEBP")

    quindi se il file si chiama per esempio "file"la macro deve rinominare il file come "file.webp" secondo la tabella di corrispondenze esposta nell'allegato

    Leo

    per l'altra tua domanda.....eh bella domanda
    se tu sapessi in che condizione esistenziale mi muovo io..........
    studiare richiede tempo, calma, concentrazione, cose che attualmente non ho
    tuttavia nel tempo sono riuscito a trasportare qualche macro facile in Basic e viceversa, con successo, solo perchè le espressioni VBA erano di immediata comprensione.
    ma i milioni di parole-chiave del VBA mi spiazzano
    Il PowerBasic ne ha un numero limitato con cui si fa tutto, ma uscire nella shell del Basic per operare sui files ancora non lo assimilo

    Leo
    [Modificato da L2018 19/10/2023 21:17]

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 799
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 19/10/2023 21:32
    Quindi

    Cerca la cartella dei files

    for file = 1 to tutti files

    apri ogni file

    prendi i primi 20 caratteri

    guarda se c'è una sottostringa uguale ad una di quelle dello schema

    se non c'è vai a 2

    select case di ogni stringa

    rename quel file come file.(estensione=stringa)

    2
    next


    Leo

    LEO
    https://t.me/LordBrum
  • ONLINE
    alfrimpa
    Post: 4.970
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 19/10/2023 22:21
    Ma il nome della cartella contenente i file non è noto?
    [Modificato da alfrimpa 19/10/2023 22:22]

    Alfredo
  • OFFLINE
    L2018
    Post: 800
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 19/10/2023 23:07
    Re:
    alfrimpa, 19/10/2023 22:21:

    Ma il nome della cartella contenente i file non è noto?



    non è che non sia noto, ma io vorrei potermi spostare a piacimento, sia perchè la cartella mi converrebbe duplicarla per questa operazione, per evitare di modificare la cartella base, sia perchè i miei browsers sono 2, Chrome e Vivaldi, 2 cartelle diverse più altre 2 se uso una navigazione protetta.

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    by sal
    Post: 7.395
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 20/10/2023 08:43
    Ciao Leo, vedi se può andarti bene questo file, altrimenti farò una macro ad hoc, il file cerca tutti i file in una determinata cartella con tutte le sottocartelle.

    però non ho capito una cosa, attualmente questi file che estensioni hanno?, perche cambiando estensione può essere che non funzionino più, inoltre devono restare sempre nella stessa cartella una volta rinominati?

    fai sapere, ciao Salvatore (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    L2018
    Post: 801
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 10:11
    Re:
    by sal, 20/10/2023 08:43:

    Ciao Leo, vedi se può andarti bene questo file, altrimenti farò una macro ad hoc, il file cerca tutti i file in una determinata cartella con tutte le sottocartelle.


    ciao, grazie della prontezza ma il tuo file non ha a che vedere con la mia richiesta, purtroppo ci vorrebbe una cosa ad hoc



    però non ho capito una cosa, attualmente questi file che estensioni hanno?, perche cambiando estensione può essere che non funzionino più, inoltre devono restare sempre nella stessa cartella una volta rinominati?


    eppure nel mio primo post al rigo 8 ho scritto chiaramente che questi files NON hanno estensione
    i files si trovano in una unica cartella, niente sottocartelle.
    non hanno estensione perchè è il browser che ne legge i primi bytes e li esegue a dovere, proprio come se avessero la giusta estensione.
    Cambiandogli estensione secondo la intestazione dei primi bytes, i files funzionano alla perfezione facendosi aprire esattamente dai vari programmi ai quali basta leggere la semplice estensione e sfruttare le associazioni di Windows.

    Non serve affatto duplicare i files per dargli l'estensione, sarebbe un bordello, si fa RENAME "file" AS "file.jpg"

    Ovviamente una volta estensionati non sarebbero piu utilizzabili dal browser, credo, ma non mi interessa, proprio perchè a quel punto li leggo
    con i normali visori di immagini e di video.
    infatti per non rovinare la cartella della cache, io duplico tale cartella, ed è per questo che la macro deve farmi navigare fino alla destinazione che io indico.
    In definitiva alla fine del lavoretto nella cartella in uso ci saranno per esempio 500 files.JPG, 500 files.webp, 100 files.gif, 100 files.mp3, 50 files.mp4, e un certo numero di files SENZA estensione che andrebbero cancellati.
    E con tale metodo io posso sempre rivedere con applicazioni autonome immagini e video della mia navigazione.
    Il problemino da realizzare bene è l'algoritmo con cui si associano i primi 20 bytes di un file alle 7 estensioni (7 per adesso) dello schemino proposto.
    Esempio:

    Select Case
    Case WEBP rename FILE FILE.WEBP
    Case JFIF rename FILE FILE.JPG
    Case ID3 rename FILE FILE.MP3
    eccetera
    End Select

    Spero di essere stato piu chiaro nella spiegazione, ma temo che piu cerco di essere dettagliato e meno risulto chiaro

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 802
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 10:31
    Re: New
    Michele Carver (5lfr231019), 20/10/2023 10:17:

    I files funzionano alla perfezione facendosi aprire esattamente dai vari programmi ai quali basta leggere la drift hunters semplice estensione e sfruttare le associazioni di Windows.




    Ciao
    puoi spiegarti ?

    Leo


    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 803
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 10:38
    Re: New
    Michele Carver (5lfr231019), 20/10/2023 10:17:

    I files funzionano alla perfezione facendosi aprire esattamente dai vari programmi ai quali basta leggere la drift hunters semplice estensione e sfruttare le associazioni di Windows.




    TI INVITO A SPIEGARE BENE IN ITALIANO IL CONTENUTO E IL SIGNIFICATO DEI TUOI 2 INTERVENTI



    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    L2018
    Post: 804
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 11:04
    Re: New
    Michele Carver (5lfr231019), 20/10/2023 10:17:

    I files funzionano alla perfezione facendosi aprire esattamente dai vari programmi ai quali basta leggere la drift hunters semplice estensione e sfruttare le associazioni di Windows.




    ULTIMO AVVISO

    NON HAI FATTO LA PRESENTAZIONE, NON DICHIARI LA TUA VERSIONE EXCEL, HAI FATTO 2 INTERVENTI SENZA DARNE SPIEGAZIONE

    SEI PREGATO DI CHIARIRE TUTTO PENA L'ESSERE BANNATO DAL FORUM


    Leo

    LEO
    https://t.me/LordBrum
  • ONLINE
    alfrimpa
    Post: 4.971
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 20/10/2023 11:22
    Leo è inutile perderci tempo bannalo.

    Alfredo
  • OFFLINE
    dodo47
    Post: 3.553
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 20/10/2023 13:37
    ciao
    spero di aver ben interpretato

    saluti
    Sub AddExt()
    Dim mFld As FileDialog, Corr As Variant, mFile As String, mDir As String
    Dim OldName As String, NewName As String, j As Long
    Corr = Range("A3:B10")
    Set mFld = Application.FileDialog(msoFileDialogFolderPicker)
    With mFld
    If .Show Then
        mDir = .SelectedItems(1)
        mFile = Dir(mDir & "\*.*")
        Stop
        For j = 1 To UBound(Corr)
            If InStr(mFile, Corr(j, 1)) > 0 Then
                OldName = mFld & "\" & mFile
                NewName = mFld & "\" & mFile & "." & Corr(j, 2)
                Name OldFile As NewName
            End If
        Next j
    End If
    End With
    End Sub


    Mi sono accorto dopo della faccenda dei 20 caratteri....se è indispensabile e hai problemi dimmelo

    di nuovo saluti
    [Modificato da dodo47 20/10/2023 16:16]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    L2018
    Post: 805
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 14:20
    Re:
    ciao ottimo Domenico

    anzitutto grazie per l'attenzione
    poi al solo vedere la tua risposta ho capito che saresti stato sulla giusta strada, ancor prima di aver provato la tua macro
    L'impostazione che hai dato certamente sarà giusta, tuttavia la macro si ferma alla parola STOP
    allora ho provato a sospenderla (lo STOP), la macro riparte ma poi zittisce senza risultati, (e io non so usare il debug)
    chissà che lo STOP non sia stato un tuo modo di attendere mie istruzioni piu precise ?

    l'ho provata con una cartella contenente 16 files.
    di questi 16 files 4, solo 4, avevano nei primi 20 caratteri la dicitura JFIF, per cui i files avrebbero dovuto essere rinominati, in loco, come file.jpg, stante lo schemino che sai.

    Ora sai che faccio ?
    siccome penso che ti sarà sfuggita qualcosa di secondario, per facilitarti, in allegato ti mando una piccola directory contenente 5 files, di cui 4 sono immagine, per cui i files, che non hanno estensione dovranno essere rinominati, 4 su 5, come .JPG
    non sapendo come reagisce l'upload del forum, la cartellina, di nome WEBP, l'ho zippata, quindi tu dovrai aprirla e metterla dove ti pare.
    Gentilmente potresti riprovare facendola esaminare tu stesso ?
    Anche io mi sono accorto in ritardo della tua postilla in neretto

    la storia dei 20 caratteri non è importante, è FONDAMENTALE, perchè esaminando i primi, diciamo 20, di solito si trova una sottostringa che, confrontata con lo schemino di foglio1, suggerisce l'estensione originale del file; e la rinomina, per non fare casino dovrebbe semplicemente aggiungere l'estensione al file.

    Sono certo che ora tu abbia recepito e attendo con ansia
    Direi fuoco fuochino fuocone
    Ciao

    Leo

    LEO
    https://t.me/LordBrum
  • ONLINE
    alfrimpa
    Post: 4.972
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 20/10/2023 14:32
    Se ho capito forse è sostituire questa istruzione

    If InStr(mFile, Corr(j, 1)) > 0 Then


    con questa

    If InStr(mFile, Left(Corr(j, 1), 20)) > 0 Then

    Alfredo
  • OFFLINE
    L2018
    Post: 806
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 14:37
    Re:
    alfrimpa, 20/10/2023 14:32:

    Se ho capito forse è sostituire questa istruzione

    If InStr(mFile, Corr(j, 1)) > 0 Then


    con questa

    If InStr(mFile, Left(Corr(j, 1), 20)) > 0 Then




    grazie Alfredo, mannaggia, pare che non vada
    forse è da costruire meglio la INSTR () ?

    Leo
    [Modificato da L2018 20/10/2023 14:39]

    LEO
    https://t.me/LordBrum
  • ONLINE
    alfrimpa
    Post: 4.973
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 20/10/2023 15:25
    Dire solo che non va è un po' pochino

    Prova a vedere cosa ti restituisce questo

    MsgBox InStr(mFile, Left(Corr(j, 1), 20)) 
    [Modificato da alfrimpa 20/10/2023 15:26]

    Alfredo
  • OFFLINE
    L2018
    Post: 807
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 15:34
    Re:
    finora ho cercato anche io di fare qualche modifica per cui la tua espressione in questo momento non saprei dove metterla
    ma il NON VA significa che finora qualsiasi cosa io abbia scritto non ho ottenuto nessuna risposta, neppure di errore
    e siccome non so far il Debug, sono fermo

    tu dici di studiare: na parola, anzi migliaia, di parole chiave

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    by sal
    Post: 7.396
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 20/10/2023 15:45
    Ciao mi permetto di intervenire nella macro di Domenico che saluto, prova a sostituire

    If InStr(mFile, Corr(j, 1)) > 0 Then


    con

    If mFile Like "*" & Corr(j, 1) & "*" Then


    che è la stessa cosa

    però il file che hai inviato nessuno ha una sigla che dici in quanto hanno questa dicitura

    f_000418 etc....

    non hanno 20 caratteri, forse sbaglio io, oppure vuoi dire il percorso completo, quindi si deveve guardare "WEBP" come cartella cioè questo

    C:\Users\bysal\Desktop\WEBP\f_000148
    che diventa
    C:\Users\bysal\Desktop\WEBP\f_000148.jpg


    Ciao By Sal (8-D


    [Modificato da by sal 20/10/2023 15:53]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    L2018
    Post: 808
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 16:20
    Salvatore perdonami
    sinceramente non so più che linguaggio usare per spiegarmi
    all'antico liceo classico io ho sempre preso voti eccelsi per come scrivevo in italiano ma ora vedo che dopo tanti messaggi non ho chiarito niente,
    non so piu che dire e come dirlo
    se uno spiega in un rigo è poco, se spiega in 100 righe confonde le idee

    ecco perchè in basso c'è il mio telefono Telegram, una telefonata salva la vita

    A Dodo devo dire che la storia dei 20 non è fondamentale, come gli ho detto, serve solo a prendere i primi 20 caratteri di un file
    in modo veloce e anche perchè le firme di riconoscimento di un file si trovano sempre all'inizio.

    WEBP per caso è anche il nome che ho dato alla cartella per riconoscerla tra le mie, possiamo chiamarla anche Genoveffa.

    quindi se all'inizio un file si chiama WEBP\f_000012a, DOPO si chiamerà,per esempio, WEBP\f_000012a.jpg, ma questo è implicito nelle mie già lunghe spiegazioni, e JPG non è preso dal nome, ma dai primi 20 caratteri del contenuto, che poche ersone sono abituate ad esaminare.

    invece, poichè non conosco il VBA vorrei dire che in Basic, avendo per esempio 100 files e 7 estensioni, in teoria dovrei fare 100 X 7 = 700 confronti, mentre nella macro vedo solo il FOR delle estensioni, e allora ho pensato che l'elenco dei files sia in qualche modo incorporato nelle altre righe di codice


    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    dodo47
    Post: 3.554
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 20/10/2023 16:28
    LEO:

    Ora sai che faccio ?



    Ciao
    quelli anziani fanno un po' di pennichellla.....

    all'antico liceo classico.....Leo, credo che sia una questione di termini esatti.....file - directory - percorso - etc etc
    te lo dico perchè quando tu dici: ....quindi se all'inizio un file si chiama WEBP\f_000012a...., usi termini errati.
    (vedi in calce)

    A parte questo:

    - lo stop va eliminato perchè l'ho usato per il debug

    - nella tua cartella non c'è nemmeno un file che contenga la sigla JFIF

    Infine precisa se la sigla va cercata solo nel nome del file (o anche nel percorso) e se le cartelle possono contenere file che hanno quelle estensioni e che pertanto non vanno rinominati

    Il tuo Instr è quasi esatto, ma al contrario: If InStr(Left(mFile, 20), Corr(j, 1)) > 0 Then


    saluti

    un file non può chiamarsi WEBP\f_000012a, (perchè "\" è un carattere non ammesso nei nomi di file.
    Quindi il sospetto di Salvatore che tu ti riferisca all'intera Path potrebbe essere fondato.

    Provo a formulare una domanda:
    - la cartella che scegli ha come nome una di quelle sigle ?? quindi si rinominano tutti i file in essa contenuti ??

    oppure
    - la cartella che scegli ha sottocartelle chiamate JFIF - WEBP etc etc, quindi per ogni cartella si rinominano i file con estensione=al nome della cartella?

    ...ti assicuro che il ciclo For è corretto....una volta che ci si intende, ti dettaglierò il funzionamento della macro.
    C'è comunque un errore perchè manca il Loop della Dir...ma ne parliamo quando avrò capito cosa fare.

    LEGGO SOLO ORA

    Leo:

    ...JPG non è preso dal nome, ma dai primi 20 caratteri del contenuto....



    contenuto ??????

    Quindi le sigle sono dentro il file non nel nome del file!!!!!

    Se è così non far caso a quanto detto prima di LEGGO SOLO ORA.

    Attendo conferma
    [Modificato da dodo47 20/10/2023 17:05]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    rollis13
    Post: 1.360
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    10 20/10/2023 16:56
    Un saluto a tutti.
    Io una soluzione parziale l'avrei anche prodotta ma non riesco ad intercettare quei file particolari non riconosciuti da Excel (e forse qualche altra sbavatura).
    In pratica importo (apro) con Excel il file senza estensione la cui prima riga finisce in cella A1 alla quale applico l' InStr per rilevare le estensioni che ho riepilogato nella matrice.
    Option Explicit
    Sub test()
        Dim Path As String
        Dim DialogBox As FileDialog
        Dim FileOpen As String
        Dim Cerca As Integer
        Dim arrayCerca As Variant
        Dim arrayRinomina As Variant
        Dim x As Long
        arrayCerca = Array("WEBP", "JFIF", "GIF", "PNG", "BMP", "ID3", "MP4", "MM")
        arrayRinomina = Array(".WEBP", ".JPG", ".GIF", ".PNG", ".BMP", ".MP3", ".MP4", ".TIF")
        On Error Resume Next
        Application.FileDialog(msoFileDialogFolderPicker).Title = "Seleziona la Cartella"
        Set DialogBox = Application.FileDialog(msoFileDialogFolderPicker)
        If DialogBox.Show = -1 Then Path = DialogBox.SelectedItems(1)
        Path = DialogBox.SelectedItems(1)
        If Path = "" Then Exit Sub
        FileOpen = Dir(Path & "\*.")
        Do While FileOpen <> ""
            On Error GoTo salta       'doveva servire per l'errore con file non riconosciuti
            Workbooks.Open Path & "\" & FileOpen, ReadOnly:=True
            For x = LBound(arrayCerca) To UBound(arrayCerca)
                Workbooks(FileOpen).Activate
                Cerca = InStr(1, Range("A1").Value, arrayCerca(x), vbTextCompare)
                If Cerca > 0 Then Exit For    'trovato prima della fine dell'array
            Next x
            Workbooks(FileOpen).Close False
            If Cerca > 0 Then Name Path & "\" & FileOpen As Path & "\" & FileOpen & arrayRinomina(x)  'rinomina
    salta:
            FileOpen = Dir
        Loop
    End Sub
    [Modificato da rollis13 20/10/2023 17:22]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    L2018
    Post: 809
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 17:09
    Domenico
    madonna che casino che si è creato, e come faccio a risalire la china di una cosa simile ?
    tutto ciò che ho detto è assolutamente esatto, non so come ripeterlo
    Purtroppo dovrei uscire per una faccenda e se a te e Sal non dispiace potrei ripetere piu tardi il TUTTO, ma non so come in che termini
    E se non ci riuscirò comincerò a dubitare delle mie facoltà mentali, giuro

    ora ne dico solo una
    la cartellina che ho inviato per aiutare te che sei sulla strada giusta l'ho ricontrollata, e si chiama WEBP per puro caso, e contiene 5 files, di cui quello di nome F_00014C è l'unico NON di immagine
    Gli altri 4 files contengono, nel loro contenuto, la sigla JFIF che occupa i posti 7,8,9,10, e parlo del CONTENUTO dei files, NON dei loro nomi.
    quello che mi puo' venire in mente è che la sigla JFIF, e simili, sia scritta in ESADECIMALE, accidenti a me.
    4a-46-49-46

    forse urge riparlarne
    A dopo

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    rollis13
    Post: 1.361
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 20/10/2023 17:31
    @dodo47, nella tua macro credo che ci sia un typo, la riga avrebbe dovuto essere
    Name OldName As NewName
    ma penso che ormai non serva visto che ti sei già reso conto di essere fuori strada.
    Vedi se riesci a trovare una soluzione alla criticità nella mia proposta [SM=g27828] ; è da ieri sera che ci sbatto la testa senza che mi si accenda la lampadina.
    [Modificato da rollis13 20/10/2023 17:34]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    dodo47
    Post: 3.555
    Registrato il: 06/04/2013
    Utente Master
    2010
    10 20/10/2023 17:43
    Re:
    rollis13, 20/10/2023 17:31:

    @dodo47, nella tua macro credo che ci sia un typo, la riga avrebbe dovuto essere
    Name OldName As NewName
    ma penso che ormai non serva visto che ti sei già reso conto di essere fuori strada.
    Vedi se riesci a trovare una soluzione alla criticità nella mia proposta [SM=g27828] ; è da ieri sera che ci sbatto la testa senza che mi si accenda la lampadina.



    Ciao carissimo, si gli errori li avevo visti...grazie.

    Per quanto riguarda la soluzione, che ne pensi di aprirlo in binario:

    Option Explicit
    Sub Leo()
    Dim MioFile As Variant, Corr As Variant, mFile As String, mStr As String
    Dim OldName As String, NewName As String, j As Long, mFld As Object, mDir As String
    Dim GetExt
    Corr = Range("A3:B10")
    Set mFld = Application.FileDialog(msoFileDialogFolderPicker)
    With mFld
      If .Show Then
        mDir = .SelectedItems(1)
        mFile = Dir(mDir & "\*.*")
        Do While Len(mFile) > 0
            GetExt = Split(mFile, ".")(UBound(Split(mFile, ".")))
            If GetExt = mFile Then
                Open (mDir & "\" & mFile) For Binary As #1
                mStr = Input(LOF(1), #1)
                Close
                For j = 1 To UBound(Corr)
                    If InStr(mStr, Corr(j, 1)) > 0 Then
                        OldName = mDir & "\" & mFile
                        NewName = mDir & "\" & mFile & "." & Corr(j, 2)
                        Name OldName As NewName
                        Exit For
                    End If
                Next j
            End If
            mFile = Dir
        Loop
      End If
    End With
    End Sub
    


    Codice basato su esempio allegato al post #14
    Testato e funzionante sui file inviati da Leo.

    Rispetto a te, ho capito "tardi" che Leo si riferiva al "contenuto".....ma si sa, quelli anziani sono lenti...però arrivano

    cari saluti😀

    NB: Credo vadano eliminati i file già con estensione....
    Modifico e aggiorno


    Modificato 20/10/2023 h: 18:22
    [Modificato da dodo47 20/10/2023 18:24]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    L2018
    Post: 810
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 18:25
    EVVIVAAAAAA !!! ROLLIS CI HA PRESO !!!

    GRAZIE infinite Rollis, ovviamente sarei curioso di capire se per cogliere nel segno ti sono state sufficienti le prime cose che ho dette, o anche tutto il resto: per me è importante saperlo altrimenti devo dubitare delle mie capacità di spiegarmi.

    Siccome prima hai detto soluzione parziale immagino che tu possa migliorarla ?
    durante il lavoro della macro si vede comparire il contenuto dei file
    e se fossero i miei classici 1500 files ?
    si puo' inserire il concetto dei primi 20 bytes dei files ?
    Application.screen update puo' servire ?

    Ancora grazie

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    dodo47
    Post: 3.556
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 20/10/2023 18:52
    ciao Leo
    solo per mia curiosità prova anche la soluzione al post #26
    (non dovrebbe avere criticità)


    saluti
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    L2018
    Post: 811
    Registrato il: 02/04/2018
    Città: PESCARA
    Età: 75
    Utente Senior
    EXCEL 2016 - SPREAD32
    00 20/10/2023 18:53
    Re:
    ciao Domenico
    naturalmente ringraziando anche la collaborazione di Salvatore e Alfredo, un grosso grazie anche a te che in modo costante porgi sempre soluzioni subito centrate, anche questa volta, stavamo solo affinando la richiesta.

    la pennichella, se necessaria, è sempre sacra

    questa immagine forse te la devo



    lo STOP hai visto che lo avevo capito
    abbiamo chiarito il mistero esadecimale, io non sospettavo che si creasse sto problema
    il contenuto.... intendevo il contenuto del file,come potevo chiamarlo ?
    la sigla andava cercata nel contenuto dei files, non dei nomi, nè nei path
    la cartellina da me inviata, solo per caso si chiama WEBP
    proprio i files che hanno quelle estensioni vanno rinominati, gli altri no
    il tuo ciclo FOR ho ben capito che era buono, ma pare che tu mi confermi che mancava il LOOP della cartella
    non ricordo quale altra domanda tu mi abbia fatto, ma ormai tutto è chiaro
    E ti ringrazio di nuovo
    Approfitto per auspicare che voi bravi siate sempre all'erta nel forum, per ravvivalo, ne ha un po' bisogno

    Leo

    LEO
    https://t.me/LordBrum
  • OFFLINE
    dodo47
    Post: 3.557
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 20/10/2023 18:58
    ciao
    ma, ripeto, la soluzione al post #26 l'hai provata o no ??

    saluti



    Domenico
    Win 10 - Excel 2016
  • 15MediaObject5,00667 6
1