Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Modificare il CodeName dei fogli excel

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

Modificare il CodeName dei fogli excel

Postdi ricky53 » 07/02/22 01:48

Ciao a tutti,
è da diverso tempo che non frequento questo forum, ogni tanto mi affaccio e leggo senza intervenire. Vorrei poter avere più tempo da dedicare alla mia passione su excel/vba che ho da quando è nato il primo excel.

Passo alla mia richiesta:
ho un file excel con tanti fogli (oltre 100 e cresceranno, 1 foglio al giorno ma non tutti i giorni devono esserci) vorrei, aprendo il VBA, avere ordinati i fogli secondo il CodeName crescente così come ho ordinati i nomi degli fogli.
Per chiarezza allego descrivo cosa vorrei ottenere:
aprendo il VBA in Microsoft Excel Oggetti
foglio001 (LO_2021-04-01)
foglio002 (LO_2021-04-03)
foglio003 (LO_2021-04-07)
.
.
.
foglio151 (LO_2021-12-02)
foglio152 (LO_2021-12-04)
foglio153 (LO_2021-12-07)
foglio154 (LO_2021-12-12)
foglio155 (LO_2021-12-19)
.
.
.
foglio174 (LO_2022-22-02)
foglio175 (LO_2022-22-03)
foglio176 (LO_2022-22-06)

e poi altri fogli che verranno inseriti successivamente

Attualmente la situazione è la più disparata avendo fatto inserimenti e copie di fogli esistenti in varie posizioni:
foglio1 (LO_2021-04-01)
foglio10 (LO_2021-05-11)
foglio100 (LO_2021-08-01)
foglio11 (LO_2021-05-16)
.
.
.
foglio20 (LO_2021-05-23)
foglio21 (LO_2021-04-13)
foglio22 (LO_2021-04-25)
.
.
.
foglio4 (LO_2021-04-19)
foglio40 (LO_2021-04-03)
.
.
foglio15 (LO_2021-05-02)
foglio150 (LO_2021-09-22)
.
.
.


Capisco che non è fondamentale ed è quasi una questione estetica, aprendo il VBA, voler vedere i nomi in ordine.

Grazie ed un ciao a tutti
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4534
Iscritto il: 11/04/09 19:29
Località: Italia

Sponsor
 

Re: Modificare il CodeName dei fogli excel

Postdi Dylan666 » 07/02/22 07:18

Questo sarebbe andato bene se avessi compensato sempre i numeri dei nomi dei fogli con degli zeri (es.001, 002, 003 ecc.)
https://www.howtogeek.com/280917/how-to ... -in-excel/

Nel tuo caso invece (dove se ho ben capito questo non sempre è accaduto) penso non se ne esca senza un substring del nome del foglio e vari passaggi in più. Lascio la parola a altri
Avatar utente
Dylan666
Moderatore
 
Post: 39349
Iscritto il: 18/11/03 16:46

Re: Modificare il CodeName dei fogli excel

Postdi Anthony47 » 07/02/22 08:47

Ricky! Ben ritrovato! Come te la passi?

Quanto al tuo problema, ho capito che tu hai gia' sistemato i foglio col loro "Name" crescente; adesso vorresti rinominare il "Codename" affinche' risulti anche lui crescente?
Se e' così, allora potresti provare con questa macro:
Codice: Seleziona tutto
Sub ReCodeN()
Dim I As Long
'
With ThisWorkbook
    For I = 1 To .Sheets.Count
        .VBProject.VBComponents(Sheets(I).CodeName) _
        .Properties("_CodeName") = "Foglio" & 1000 + I
    Next I
End With
End Sub

I codename vengono rinominati come Foglio1001, Foglio1002, etc... Foglio1999 (quando ci arriverai), Foglio2000, ...
Devi preventivamente autorizzare l'accesso "al modello a oggetto dei progetti vba" tramite Menu /File /Opzioni /Centro protezione; Impostazioni Centro protezione /Impostazioni delle macro (su XL2003 le impostazioni hanno un diverso percorso).

Aggiungo anche che quando aggiungerai un nuovo foglio, questo ara' il Codename Foglio1; non ci saranno problemi se questo e' l'ultimo foglio della serie e l'ordine dei foglio precedenti e' rimasto immutato (potrai rieseguire la macro e "sistemare" anche l'ultimo foglio); forse pero' e' meglio che crei una macro che aggiunga il foglio e contemporanemente ne sistemi il codename cercando quale e' l'ultimo utilizzato (il codename del foglio con Index-1)

Buona giornata
Avatar utente
Anthony47
Moderatore
 
Post: 18277
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Modificare il CodeName dei fogli excel

Postdi ricky53 » 07/02/22 20:48

Grazie per la risposta.
@Dylan666: i nomi dei CodeName vengono assegnati automaticamente da excel e "LUI" non mette gli ZERI :)
Causando il disordine che non mi è gradito.
Dobbiamo dirlo al signor Microsoft

Grazie
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4534
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Modificare il CodeName dei fogli excel

Postdi ricky53 » 07/02/22 21:15

Grazie Antony,
tutto bene. Tanto Bridge e tante passeggiate Romane e fuori porta.
Vedo che tu sei sempre in prima linea, ma come fai?


Ieri notte ... avevo trovato del codice simile che avevo adattato ma ... l'ho provato e non faceva quello che volevo io.

Il tuo invece va benissimo.
Ho solo invertito l'ordine di scrittura in modo da avere il CodeName maggiore con la data maggiore del nome del foglio, così quando inserisco un nuovo foglio (che faccio SOLO con "SPOSTA e COPIA") con una data maggiore il CodeName sarà il maggiore dei presenti più 1

Grazie per aver risolto, come sempre, le mie problematiche anche se solo estetiche :) :) :)

Alla prossima
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4534
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Modificare il CodeName dei fogli excel

Postdi ricky53 » 07/02/22 21:34

Ciao a tutti
riporto, a beneficio di altri utenti, il codice adattato per aver la numerazione del CodeName crescente come la data crescente del nome dei vari fogli

Codice: Seleziona tutto
Sub ReCodeName()
' 2022_02_07 suggerita da Antony47 - PC-Facile
    Dim I As Long, XX As Long
'
   
    With ThisWorkbook
        XX = .Sheets.Count - 4 ' Vanno sottratti i "4" fogli che non fanno parte dell'insieme da rinominare
        For I = 1 To .Sheets.Count

' Seleziona solo i fogli che vanno rinominati
            If Left(.VBProject.VBComponents(Sheets(I).CodeName) _
                .Properties("_CodeName"), 6) = "Foglio" Then
               
' messo il formato a "4" cifre
                .VBProject.VBComponents(Sheets(I).CodeName) _
                .Properties("_CodeName") = "Foglio_" & Format(XX, "0000")

' per scrivere il nome dal più grande a scendere
                XX = XX - 1
            End If
        Next I
    End With
End Sub



Per chiarezza ho inserito dei commenti

Grazie ancora Antony
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4534
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Modificare il CodeName dei fogli excel":

Formula excel
Autore: Nilo69
Forum: Applicazioni Office Windows
Risposte: 16

Chi c’è in linea

Visitano il forum: Nessuno e 59 ospiti