Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Cambiare nome al foglio excel con una macro
venerdì 20 giugno 2008 - 16.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
alkes83
Profilo
| Junior Member
55
messaggi | Data Invio:
ven 20 giu 2008 - 16:10
Salve a tutti!!
Devo compiere questa operazione in linguaggio VB
Situazione attuale:
ho dei file .csv che apro con excel (vi ricordo che i file csv hanno un solo foglio) che hanno nomi diversi, quindi ogni file avrà un nome del foglio diverso dagli altri.
Obiettivo:
devo cambiare nome al foglio dei file csv
Problema:
la macro in se è semplice, però il problema è che parto sempre con un nome del foglio diverso, quindi se registro la macro con un foglio qualsiasi, nella macro comparirà sempre il nome del foglio con cui l'ho registrata.
Sub Macro1()
Sheets("BT - 2007-08-27 2007-09-09 KM").Select
Sheets("BT - 2007-08-27 2007-09-09 KM").Name = "mese intero_maggio"
Range("G26").Select
End Sub
Ecco la macro, il problema è che il nome del foglio con cui l'ho registrata è BT - 2007-08-27 2007-09-09 KM mentre la prox volta sarà diverso.
Posso rendere questa operazione indipendente dal nome del foglio in cui la faccio?
Se si come?
Grazie.
p.s. scusate la lunghezza del msg
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
ven 20 giu 2008 - 16:33
Innanzi tutto la macro devi trasferirla in un modulo Bas dimodoché è indipendente dal foglio. In secondo luogo vedi che il nome della cartella è racchiuso tra virgolette ? Bene, questo significa che per te risulta semplice parametrizzare l'istruzione con l'inserimento di una variabile stringa che a sua volta cambia valore in relazione all'elemento considerato dell'insieme Sheets.
alkes83
Profilo
| Junior Member
55
messaggi | Data Invio:
ven 20 giu 2008 - 16:52
L'ho gia resa indipendente dal foglio, infatti ogni volta che apro excel compare la macro, per il resto visto che sono ignorante ( molto ignorante in VB ) puoi darmi dirmi la stringa completa che devo inserire?
Scusami e grazie
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
ven 20 giu 2008 - 20:08
Dunque ... in Excel devi controllare l'insieme WorkBooks (le Cartelle di lavoro ovvero i files .xls) e, all'interno di ognuno di questi, l'insieme WorkSheets (i fogli di lavoro)
Quindi, riepilogando:
Dim oWk as WorkBook
Dim oSh as WorkSheet
For each oWk in Excel.WorkSheets
For Each oSh in oWk.WorkSheets
If oSh.Name = strNomeCercatp Then oSh.Name = strNomeVoluto
Next
Next
Ho buttato giù il codice a memoria, prova a vedere se funziona. Tieni conto che parto dal presupposto che tu conosci il nome del foglio da rinominare (strNomeCercato) e che hai già stabilito il nome in sostituzione (strNomeVoluto)
alkes83
Profilo
| Junior Member
55
messaggi | Data Invio:
ven 20 giu 2008 - 22:13
Il problema è che i nomi dei file sono ogni volta diversi, quindi la strNomeCercato cambia di ogni volta.
Io vorrei cercare di rendere la macro indipendente dal qualsiasi nome del foglio.
Spero di essermi spiegato bene.
Dainesi
Profilo
| Senior Member
476
messaggi | Data Invio:
mar 1 lug 2008 - 08:58
Non dimenticare che l'Item di un insieme può essere richiamato per nome o ... per il suo ordinale!!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !