Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

nome originale del foglio xls

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

nome originale del foglio xls

Postdi marcoc » 24/02/22 16:21

buongiorno a tutti,
è possibile risalire al nome originale del foglio xls, pre-rinomina?
mi riferisco al classico "Foglio1" o "Foglio2".

Questo perché mi serve sapere dei 15 fogli del mio file, quale pesa di più in termini di MB.

usando winrar vedo il peso in MB dei singoli fogli, solo che me li chiama "sheet1", "sheet2", ecc.
avendoli rinominati non so più quale è uno e quale è l'altro.

Avete una risposta oppure soluzioni alternative?
Può essere che indipendentemente dal nome originale, "sheet1" sa sempre il primo a sinistra, "sheet2" il secondo e così via?
Avatar utente
marcoc
Utente Senior
 
Post: 295
Iscritto il: 22/03/07 21:58
Località: Nerviano

Sponsor
 

Re: nome originale del foglio xls

Postdi Ricky0185 » 24/02/22 18:57

Apri Visual Basic Editor Alt+F11 e vedi tutti i fogli seguiti dalla rinomina tra parentesi. O forse non ho capito la domanda.
Ciao
Ricky0185
Utente Junior
 
Post: 90
Iscritto il: 10/12/19 20:38

Re: nome originale del foglio xls

Postdi Anthony47 » 25/02/22 01:56

Aprendo con winrar nel percorso NomeFile\xl\worksheets\ trovi i worksheet nell'ordine in cui si presentano aprendo il file (guardando i tab col nome foglio).
Puoi verificarlo aprendo i file SheetX.xml: puoi leggere quasi in testa il "Codename" del foglio, che poi puoi incrociare col Nome ; es
Codice: Seleziona tutto
<sheetPr codeName="Foglio2"/>


Immaginehttps://postimages.org/it/
Quando apri l'editor delle macro, nel frame Vba Project (A) il Codename dei singoli fogli e' mostrato "in chiaro", il Nome del foglio e' mostrato tra parentesi.
Quindi nella figura e' mostrato il vba project di un File contenente i fogli chiamati Main e Foglio2; il relativo Codename e' Foglio1 e Foglio2.

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

Re: nome originale del foglio xls

Postdi Ricky0185 » 27/02/22 14:25

Con questa macro, in un modulo standard, in un file multifoglio si reperisce la lunghezza di ciascun foglio espressa in byte con la funzione FileLen
Codice: Seleziona tutto
Sub DimensioneFogli()
Dim xWs As Worksheet
Dim Rng As Range
Dim xOutWs As Worksheet
Dim xOutFile As String
Dim xOutName As String
xOutName = "Dimensione Fogli"
xOutFile = ThisWorkbook.Path & "\TempWb.xls"
On Error Resume Next
Application.DisplayAlerts = False
Err = 0
Set xOutWs = Application.Worksheets(xOutName)
If Err = 0 Then
    xOutWs.Delete
    Err = 0
End If
With Application.ActiveWorkbook.Worksheets.Add(Before:=Application.Worksheets(1))
    .Name = xOutName
    .Range("A1").Resize(1, 2).Value = Array("Nome Fogli", "Dimensioni")
End With
Set xOutWs = Application.Worksheets(xOutName)
Application.ScreenUpdating = False
xIndex = 1
For Each xWs In Application.ActiveWorkbook.Worksheets
    If xWs.Name <> xOutName Then
        xWs.Copy
        Application.ActiveWorkbook.SaveAs xOutFile
        Application.ActiveWorkbook.Close SaveChanges:=False
        Set Rng = xOutWs.Range("A1").Offset(xIndex, 0)
        Rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile))
        Kill xOutFile
        xIndex = xIndex + 1
    End If
Next
Application.Sheets(xOutName).Activate
Columns("B:B").Select
Selection.NumberFormat = "#,##0_);(#,##0)"
Columns("A:B").Select
Columns("A:B").EntireColumn.AutoFit
Range("A1").Select
'oppure per isolare un foglio sostituisci le 6 righe sopra con
'ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:B" & xIndex), , xlYes).Name = "DimensioneFogli"

Application.ScreenUpdating = True
Application.Application.DisplayAlerts = True
End Sub

La guida di Excel dice di un file chiuso mentre se aperto la funzione cambia. La macro funziona bene e restituisce le dimensioni dei singoli fogli.....ma il cui totale non corrisponde alle dimensioni del file così come appare nella Dir.
È solo una curiosità che vorrei chiarire.
R
Ricky0185
Utente Junior
 
Post: 90
Iscritto il: 10/12/19 20:38

Re: nome originale del foglio xls

Postdi Anthony47 » 27/02/22 18:08

La macro funziona bene e restituisce le dimensioni dei singoli fogli.....ma il cui totale non corrisponde alle dimensioni del file così come appare nella Dir.
È solo una curiosità che vorrei chiarire

La tua macro crea tanti file Excel, ognuno contenente un solo foglio alla volta del file in esame, e di questi file legge le dimensioni come visibili in esplora risorse.
Tuttavia il file Excel, oltre al contenuto del singolo foglio, contiene anche una serie di informazioni di servizio che hanno una loro dimensione: proprieta', stili, relazioni, descrizioni, metadati, ...
Avendo duplicato le informazioni di servizio in piu' file e' inevitabile che la somma delle dimensioni dei file scomposti sara' superiore alla dimensione del file originale, anche trascurando l'effetto di tutti i "collegamenti" dovuti alle formule del nuovo file che puntano al file originale.

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


Torna a Applicazioni Office Windows


Topic correlati a "nome originale del foglio xls":


Chi c’è in linea

Visitano il forum: Nessuno e 25 ospiti