Scuola forum (scuo.la) - Forum di discussione per le scuole

Scuola forum (scuo.la) - Forum di discussione per le scuole (https://www.scuolaforum.org/)
-   Informatica (https://www.scuolaforum.org/informatica/)
-   -   Quale macro Excel che salvi contenuto celle in file di testo? (https://www.scuolaforum.org/informatica/4579-quale-macro-excel-che-salvi-contenuto-celle-file-di-testo.html)

marco 02-15-2011 03:14 PM

Quale macro Excel che salvi contenuto celle in file di testo?
 
Ho bisogno di creare una macro in Excel che, selezionando un certo numero di celle in una colonna, mi salvi il contenuto delle stesse in un semplice file txt (sovrascrivendo il file txt se ve ne fosseun altro esistente e non richiedendo alcun altro intervento dell’utente se non di lanciare la macro) ma con codifica UTF-8, di modo che compaiano anche correttamente le lettere di lingua straniera quali cinese, cirillico ecc., che altrimenti verrebbero sostituite dal punto di domanda.
Grazie
Marco

Yves 02-02-2024 06:12 PM

Ciao,
Per creare una macro in Excel che salvi il contenuto delle celle selezionate in una colonna in un file di testo con codifica UTF-8, puoi seguire i passaggi seguenti:

Apri Excel e vai alla scheda "Developer". Se non vedi la scheda "Developer" nella barra del menu, abilita questa scheda andando su "File" -> "Opzioni" -> "Personalizza barra multifunzione" e attiva la casella "Sviluppo".

Nella scheda "Developer", clicca su "Visualizza codice" per aprire l'Editor VBA.

Nel Editor VBA, inserisci il seguente codice:

----------------

Sub SalvaComeUTF8()
Dim selectedRange As Range
Dim filePath As String

' Verifica se è stata selezionata una colonna
If Selection.Columns.Count <> 1 Then
MsgBox "Seleziona una singola colonna di celle", vbExclamation
Exit Sub
End If

' Ottieni il percorso del file
filePath = Application.GetSaveAsFilename(FileFilter:="File di testo (*.txt), *.txt", Title:="Salva come")

' Esci se l'utente ha annullato il salvataggio
If filePath = "Falso" Then Exit Sub

' Ottieni la gamma selezionata
Set selectedRange = Selection

' Salva il contenuto nel file UTF-8
SaveAsUTF8 filePath, selectedRange.Value

MsgBox "Contenuto salvato correttamente in " & filePath, vbInformation
End Sub

Sub SaveAsUTF8(filePath As String, content As String)
Dim utf8Stream As Object
Set utf8Stream = CreateObject("ADODB.Stream")

' Configura il flusso come testo Unicode
utf8Stream.Charset = "UTF-8"
utf8Stream.Open
utf8Stream.WriteText content

' Salva il flusso nel file
utf8Stream.SaveToFile filePath, 2 ' 2 corrisponde a adSaveCreateOverWrite

' Chiudi il flusso
utf8Stream.Close
Set utf8Stream = Nothing
End Sub

----------------

Chiudi l'Editor VBA.

Torna in Excel e seleziona la colonna di celle che desideri salvare nel file di testo UTF-8.

Vai alla scheda "Developer" e clicca su "Macros". Troverai la macro "SalvaComeUTF8" nella lista delle macro disponibili. Seleziona e fai clic su "Esegui".

Verrà visualizzata una finestra di dialogo per selezionare il percorso e il nome del file di testo. Dopo aver fatto la selezione, clicca su "Salva".

Questo salverà il contenuto delle celle selezionate in un file di testo con codifica UTF-8.


Tutti gli orari sono GMT +2. Attualmente sono le 02:00 AM.