cancellare tutti i codici VBA

34 views
Skip to first unread message

pic omnic

unread,
Nov 8, 2021, 3:07:54 AM11/8/21
to
una volta utilizzate le procedure VBA per ottenuto quel che si voleva ottenere nel foglio 1 (e aver salvato il file originale) , c è un modo automatico che permetta di cancellare il codice VBA (moduli, forms ,codici VBA vari ecc) da tutti i files xlsm contenuti in una cartella ? ed eliminare anche tutti i fogli di lavoro eccedenti il foglio 1 ? Ho provato a fare tali operazioni manualmente, file per file, ma ci vuole una vita...
grazie
draleo

casanmaner

unread,
Nov 9, 2021, 5:54:58 AM11/9/21
to
Non sarebbe più semplice fare una copia del foglio 1 e salvarlo come cartella di lavoro in formato xlsx?

Intendo che il file xlsm contenga anche una procedura che al termine di quella che elabora i dati come desiderato nel foglio 1 faccia anche questa ulteriore operazione.

pic omnic

unread,
Nov 9, 2021, 8:50:45 AM11/9/21
to
Il giorno martedì 9 novembre 2021 alle 11:54:58 UTC+1 casanmaner ha scritto:

> Non sarebbe più semplice fare una copia del foglio 1 e salvarlo come cartella di lavoro in formato xlsx?
>
> Intendo che il file xlsm contenga anche una procedura che al termine di quella che elabora i dati come desiderato nel foglio 1 faccia anche questa ulteriore operazione.

in effetti sarebbe più semplice e si otterrebbe lo stesso risultato. Ricapitolando, mi servirebbe copiare in formato xlsx solo il foglio1, per ciascun file della cartella scelta (e sono molti files). oppure, se non si potesse fare l'operazione in sequenza multipla ed automatica, si potrebbe fare separatamente per ogni singolo file. Ma come fare ?
draleo

casanmaner

unread,
Nov 9, 2021, 2:12:32 PM11/9/21
to
Questa procedura inserita nel progetto VBA del file di partenza crea una copia del foglio 1 e salva con lo stesso nome del file originario ma in formato xlsx.
Se la richiami alla fine delle precedenti procedure crea in automatico la cartella di lavoro (andando a sovrascrivere un eventuale file xlsx con lo stesso nome).
Per gli altri file, con calma, potresti aprire i file, incollare il codice e eseguirlo.
Si potrebbe anche fare una procedura automatica da applicare a tutti i file presenti in un dato percorso. Ma non ho molto tempo :-)


Sub CreaFileDaFoglio1()
Dim sNomeFile As String
Application.DisplayAlerts = False
With ThisWorkbook
sNomeFile = Replace(.FullName, "xlsm", "xlsx")
.Worksheets(1).Copy
End With
With ActiveWorkbook
.SaveAs Filename:=sNomeFile, FileFormat:=xlOpenXMLWorkbook
.Close
End With
Application.DisplayAlerts = True
End Sub

pic omnic

unread,
Nov 10, 2021, 4:37:46 AM11/10/21
to
Ok. grazie. Dovrei avere delle macro che agiscono su files multipli. vedrò di incapsulare questo codice al loro interno (anche perchè utilizzarlo su un file per volta è superfluo. Si fa prima a copiare il foglio1 senza VBA
draleo
Reply all
Reply to author
Forward
0 new messages