Pagina precedente | 1 2 3 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro per Rinominare Files

Ultimo Aggiornamento: 24/10/2023 12:44
Post: 798
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 4.968
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
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
Post: 4.969
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/10/2023 20:56

E quando cominci a studiare il VBA?

Alfredo
Post: 798
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 799
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 4.970
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
19/10/2023 22:21

Ma il nome della cartella contenente i file non è noto?
[Modificato da alfrimpa 19/10/2023 22:22]

Alfredo
Post: 800
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 7.395
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
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
Post: 801
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 802
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 803
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 804
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 4.971
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
20/10/2023 11:22

Leo è inutile perderci tempo bannalo.

Alfredo
Post: 3.553
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 805
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 4.972
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
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
Post: 806
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 4.973
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
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
Post: 807
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 7.396
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
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
Post: 808
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 3.554
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 1.360
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
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)
Post: 809
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 1.361
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
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)
Post: 3.555
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 810
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 3.556
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
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
Post: 811
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
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
Post: 3.557
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
20/10/2023 18:58

ciao
ma, ripeto, la soluzione al post #26 l'hai provata o no ??

saluti



Domenico
Win 10 - Excel 2016
Vota: 15MediaObject5,00667 6
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 3 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
rinominare file (12 messaggi, agg.: 04/06/2019 17:05)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:29. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com