Condividi:        

Come Rinominare il Foglio in formato CSV

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Come Rinominare il Foglio in formato CSV

Postdi Maury170419 » 19/08/22 16:31

Ciao a Tutti da Maurizio
il mio problema e questo :
Da un foglio di excel ho creato una funzione che preleva solo i dati da me desiderati , e li inserisce in un nuovo foglio che si trasforma in formato CSV; E fin qui tutto ok.

Però ora ciò che vorrei ottenere sarebbe quello di :

1 ) Prelevare il nome da dare al File CSV appena creato Prelevandolo dalla Cella (P2)
in quanto attualmente esso si rinomina con lo stesso nome dato al file.

2 ) Vorrei fare in modo che il contenuto delle Celle del file CSV sia Sempre Visibile
io di mio ho provato con la funzione ( WrapText = True ) ma non mi funziona come vorrei 1

3 ) Sempre ché esso sia possibile, Vorrei che le celle inserite nel CSV siano formattate con la funzione :
Range("A1:D16").Interior.Color = RGB(255, 244, 204)

Tutto qui ?

Perché Per il resto funziona tutto a meraviglia
Grazie come sempre anticipatamente da A.Maurizio

Link Per Scaricare il file di prova : https://app.box.com/s/wplg9gxetw9txh8uhdn68yq5i1xvi5x4

[img]
https://i.postimg.cc/1tW3HSkh/Rinomina-Foglio.jpg
[/img]
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Sponsor
 

Re: Come Rinominare il Foglio in formato CSV

Postdi Anthony47 » 20/08/22 22:59

Però ora ciò che vorrei ottenere sarebbe quello di :
1 ) Prelevare il nome da dare al File CSV appena creato Prelevandolo dalla Cella (P2)
in quanto attualmente esso si rinomina con lo stesso nome dato al file.

Il tuo codice ora preleva il nome file dalla cella N2; se vuoi prelevarlo da P2 bastera' che invece di Nome_File = Foglio1.Range("N2").value usi Nome_File = Foglio1.Range("P2").value

Ma forse volevi dire "il nome da dare al foglio"... che infatti ora provi a prelevare da P2.
Ma questa operazione e' inutile, poiche' il csv e' un file puramente testuale, mentre "Nome foglio" e' associato a un ambiente "Cartella di lavoro (Excel)"; quindi la tua impostazione viene persa al salvataggio del file e comunque il nome foglio non viene salvato da nessuna parte alla chiusura del file.


2 ) Vorrei fare in modo che il contenuto delle Celle del file CSV sia Sempre Visibile
io di mio ho provato con la funzione ( WrapText = True ) ma non mi funziona come vorrei 1

Qui invece con certezza "non ho capito", e' necessario un supplemento di descrizione


3 ) Sempre ché esso sia possibile, Vorrei che le celle inserite nel CSV siano formattate con la funzione :
Range("A1:D16").Interior.Color = RGB(255, 244, 204)

I file csv sono dei file puramente testuali; aprendolo con Excel puoi certamente applicare una formattazione alle celle, ma questa formattazione e' transitoria e viene perduta alla chiusura del file

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Rinominare il Foglio in formato CSV

Postdi Maury170419 » 21/08/22 16:36

Grazie Anthony come sempre per la tua delucidazione in merito al mio problema e a farmi chiarezza sui i miei vari dubbi.
Infatti grazie alle tue delucidazioni ho potuto capire che Pur essendo riuscito a risolvere il mio problema da me
E inutile che tenti di andare oltre in quanto ciò che vedo non è effettivamente un file Excel trasformato semplicemente in un foglio CSV che ha le stesse sembianze di un (.xlsm) ma semplicemente e un file Txt con tutti i suoi pro' e contro .

Per quanto riguardava il tuo secondo dubbio sulla mia prima domanda ( ( WrapText = True ) ) era molto semplice
Non he forse questo codice che si mette per dire che vuoi che il contenuto delle celle del foglio di excel sia sempre ben visibile ho sbaglio !

Porto un esempio Valido : Se tu guardi le prime Due Colonne Di Questo Foglio Immagine
[img]
https://i.postimg.cc/nVXPrH1G/Image-Problem-CSV.png
[/img]
Noterai che i dati che seno nelle prime due Colonne (A:B) sono ben visibili
Al contrario i dati che vengono riportati nelle colonne (C:D) non sono visibili
Pertanto il mio desiderio era proprio quello di fare in modo con l'aiuto del codice (WrapText) di rendere visibile il tutto .

Tutto qui !
Solo che malgrado io abbia trovato il modo quasi per caso di fare funzionare il tutto
Da qui in avanti sembra tutto svanire nel nulla ho inutile.

Comunque sia Grazie ancora di Tutto il tempo che mi hai dedicato
Saluti sinceri da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: Come Rinominare il Foglio in formato CSV

Postdi Anthony47 » 21/08/22 23:52

WrapText corrisponde alla formattazione "Testo a capo", e produce il risultato che vedi in C2
Immagine

In vba:
Codice: Seleziona tutto
Range("IlRange").WrapText = True

Se dopo questo comando l'altezza della riga non cambiasse allora aggiungi anche un "Regola linea"
Codice: Seleziona tutto
Rows("1:10").EntireRow.AutoFit              'Le righe che ti interessano
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Rinominare il Foglio in formato CSV

Postdi Maury170419 » 22/08/22 17:42

Ciao Anthony Grazie nuovamente per il tuo Aiuto
Era poi la tua seconda Ipotesi che mi avrebbe dato quel tipo di risultato

Ma questa Volta e che non so come farglielo accettare visto ché : Ciò che gli propongo ho mi da errore ; Oppure non va Avanti come programma.
Eppure pensare che ciò messo l'anima per fargli fare tutto questo.
Questo e il listato
Codice: Seleziona tutto
Dim Nome_File As String
Dim Percorso As String
Dim Zona_Dati As String
Dim Estensionw 'As String

Dim Formatazione 'As Range
Dim Regola_Celle As Range

'Dim UltimaC As Long
'Dim UltimaR As Long

Dim NewWb  As Workbook


Dim FileName As String
Dim PathName As String
Dim ws As Workbook

Nome_File = Foglio1.Range("N2").Value & ""
Estensione = Foglio1.Range("O2").Value & ""
rinomina_Foglio = Foglio1.Range("P2").Value & "" 'Name
'Set NewWb = Workbooks.Add
dt = Format(Now, "dd-mm-yyyy")

Regola_Celle = Foglio1.Range("A1:D16").Rows("1:10").EntireRow.AutoFit

Set ws = Workbooks.Add
'FileName = Nome_File & ".csv"
'PathName = Application.ActiveWorkbook.Path
   
ThisWorkbook.Worksheets("foglio1").Range("A2:D17").Copy Destination:=ws.Worksheets(1).Cells(1)
ws.Rows("1:10").EntireRow.AutoFit
ws.SaveAs FileName:=ThisWorkbook.Path & "\Allegati\" & Nome_File & " " & dt & " " & Estensione & " ", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True


Ma forse sbaglio ancora una volta in qualche cosa ?
Saluti Sinceri da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05

Re: Come Rinominare il Foglio in formato CSV

Postdi Anthony47 » 23/08/22 00:03

Il tuo codice contiene alcune incongruenze; vedi i commenti e i suggerimenti intercalati alle tue righe:
Codice: Seleziona tutto
Dim Nome_File As String
Dim Percorso As String
Dim Zona_Dati As String
Dim Estensionw 'As String

Dim Formatazione 'As Range
Dim Regola_Celle As Range

'Dim UltimaC As Long
'Dim UltimaR As Long

Dim NewWb  As Workbook


Dim FileName As String
Dim PathName As String
Dim ws As Workbook
'A) E' poco intuitivo dichiarare ws=workbook, meglio sarebbe stato usare wb...
'B)  ... perche' in genere "ws" e' piu' intuitivo associarlo a un WorkSheet


Nome_File = Foglio1.Range("N2").Value & ""
Estensione = Foglio1.Range("O2").Value & ""
rinomina_Foglio = Foglio1.Range("P2").Value & "" 'Name
'A) In queste tre istruzioni, & "" significa "accoda Niente al valore prelevato dalla cell"; a che serve?


'Set NewWb = Workbooks.Add
dt = Format(Now, "dd-mm-yyyy")

Regola_Celle = Foglio1.Range("A1:D16").Rows("1:10").EntireRow.AutoFit
'A) Il comando ".AutoFit" non restituisce un valore
'B) Deciditi: devi lavorare sul range A1:D16 o sulle righe 1:10?
'Nell'ipotesi di lavorare sulle righe di A1:D16 allora userai:
Foglio1.Range("A1:D16").EntireRow.AutoFit



Set ws = Workbooks.Add
'FileName = Nome_File & ".csv"
'PathName = Application.ActiveWorkbook.Path
   
ThisWorkbook.Worksheets("foglio1").Range("A2:D17").Copy Destination:=ws.Worksheets(1).Cells(1)
ws.Rows("1:10").EntireRow.AutoFit
'A) ws dichiara un workbook; ma Rows e' una proprieta' del worksheet
'B) Perche' righe 1:10? Avendo copiato 16 righe in A1 immagino che anche qui dovrai fare AutoFit su 16 righe
'Quindi userai:
ws.Worksheets(1).Rows("1:16").AutoFit



ws.SaveAs FileName:=ThisWorkbook.Path & "\Allegati\" & Nome_File & " " & dt & " " & Estensione & " ", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Come Rinominare il Foglio in formato CSV

Postdi Maury170419 » 23/08/22 10:43

Ciao Anthony ti dico grazie infinite
In quanto Ancora una Volta non posso fare altro che ammettere che si unico
Grazie ancora di tutto
ora me lo studierò molto attentamente per capire meglio dove ho sbagliato
Grazie Infinite da A.Maurizio
Maury170419
Utente Senior
 
Post: 159
Iscritto il: 31/10/16 09:05


Torna a Applicazioni Office Windows


Topic correlati a "Come Rinominare il Foglio in formato CSV":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti