Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Duplicare un foglio di lavoro e nominarlo tramite MessageBox

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

Duplicare un foglio di lavoro e nominarlo tramite MessageBox

Postdi GreenDays » 23/05/12 07:41

Buongiorno a tutti/e, :)

vorrei creare una macro che fosse in grado di:

- selezionare un foglio di lavoro
- duplicarlo nello stesso file
- e al momento della duplicazione si dovrebbe aprire una MessageBox che mi chiede come chiamarlo.

Elementarmente e per capire come operare, con il registratore di macro ho provato a duplicare il foglio chiamato “Default” e successivamente l’ho rinominato “giugno”

Codice: Seleziona tutto
Sub CopiaSheet()
    Sheets("Default").Select
    Sheets("Default").Copy After:=Sheets(6)
    Sheets("Default (2)").Select
    Sheets("Default (2)").Name = "giugno"
    ActiveWindow.SmallScroll Down:=-6
End Sub


Come potrei fare?
Grazie e buon proseguimento di giornata :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Sponsor
 

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Anthony47 » 23/05/12 10:34

Buona l' idea di registrare una macro, anche se in genere genera codice disottimizzato.

Partendo da quello che hai pubblicato:
Codice: Seleziona tutto
Sub CopiaSheet()
    Sheets("Default").Select     '<< Superflua
    Sheets("Default").Copy After:=Sheets(Sheets.Count)  '<<Cosi' copia dopo l' ultimo foglio
    Sheets("Default (2)").Select  '<< Superflua, foglio gia' selezionato
'    Sheets("Default (2)").Name = "giugno"      '<< Tolto
ActiveSheet.Name = InputBox("Nome nuovo foglio?")   '<< AGGIUNTO
    ActiveWindow.SmallScroll Down:=-6     '<< Inutile
End Sub

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 23/05/12 12:54

Buon pomeriggio Anthony47 e grazie mille per il prezioso riscontro;

Anthony47 ha scritto:Buona l' idea di registrare una macro, anche se in genere genera codice disottimizzato.


Perdona, ma cosa intendi per codice disottimizzato? Sono alle prime armi per quanto riguarda i codici ed il VBA

Ti confermo che la macro funziona alla perfezione (non che avessi dubbi, ma penso che il feedback è sempre utile a chi come te programma utilizzando il VBA).

Ciao :) e grazie ancora
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi patel » 23/05/12 13:36

te lo ha spiegato bene Anthony47 , molte istruzioni create dal registratore sono superflue, quindi il codice non è ottimizzato.
patel
Utente Senior
 
Post: 128
Iscritto il: 24/04/12 16:03

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 23/05/12 18:18

Buonasera,

unica cosa che ho notato è che se dovessi cliccare nell'inputbox il tasto "annulla" viene restituito il messaggio di errore sotto riportato ed il relativo debug! Come potrei risolvere?

Immagine

Grazie ancora per l'aiuto e buona serata :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Anthony47 » 23/05/12 18:24

Dipende dall' interfaccia che vuoi realizzare, es l' utente DEVE assegnare un nome file, oppure non e' obbligato; come pure da quanto vuoi essere tollerante con l' utente...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 23/05/12 18:35

Vorrei semplicemente che qualora l'utente ci ripensasse nella creazione di un nuovo foglio e pigiasse sul tasto annulla, si esce dalla routine (End Sub immagino). Questa operazione come si tradurrebbe in codice? :-?

Ciao e grazie
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Anthony47 » 23/05/12 18:49

Lasciando il foglio duplicato, quindi.
Invece di ActiveSheet.Name = InputBox("Nome nuovo foglio?") 'AGGIUNTO userai
Rispo = InputBox("Nome nuovo foglio?")
If Rispo <> "" Then ActiveSheet.Name = Rispo


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 23/05/12 19:04

Abbi pazienza, ma provando ad inserire questo codice:

Codice: Seleziona tutto
Sub CopiaSheet()
    Sheets("Default").Copy After:=Sheets(Sheets.Count)
    Rispo = InputBox("Nome nuovo foglio?")
    If Rispo <> "" Then ActiveSheet.Name = Rispo
End Sub


e cliccando su "annulla" all'interno della inputbox, il foglio si crea comunque :-? (per me "panico"). Mi piacerebbe che cliccando sul tasto annulla, l'operazione del copia/incolla del foglio fosse annullata (senza ovviamente che viene restituito a schermo il messaggio di errore sopra indicato).

Se potessi fornirmi questa informazione te ne sarei ulteriormente grato.

Ciao e grazie :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Flash30005 » 23/05/12 22:25

E' sufficiente spostare l'ordine delle righe codice secondo la propria esigenza
quindi prima fai la domanda del nome foglio,
se c'è un testo nel box, crea il foglio e assegna il nome
altrimenti non crea (e non distrugge) ;)
in questa maniera
Codice: Seleziona tutto
Sub CopiaSheet()
Rispo = InputBox("Nome nuovo foglio?")
If Rispo <> "" Then
Sheets("Default").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Rispo
End If
End Sub


ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 24/05/12 06:42

Ciao a tutti/e, Anthony47, Flash30005, buongiorno!

grazie mille per la spiegazione e per il codice che ho testato e funziona correttamente (presuppongo che
il feedback fosse utile).

Buon proseguimento di giornata
Ciao :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 30/07/12 17:49

Ciao a tutti/e, buonasera, :)

riprendo questo post perchè vorrei non solo creare un foglio già formattato con una macro (cosa che grazie a voi sono riuscito a fare) ma mi piacerebbe anche che il foglio creato avesse nelle celle C3 C4 C5 e C6 rispettivamente i valori presenti nel Foglio1 celle: B5 C5 D5 e E5.

Ringrazio tutti/e coloro che mi forniranno il loro supporto! Subito sotto il file di riferimento (con la macro che crea già il nuovo foglio)

http://uploading.com/files/get/e6fm37e1/Amico.xls

Ciao e grazie ancora :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Flash30005 » 30/07/12 21:10

Ho cercato direalizzare quanto da te richiesto
Codice: Seleziona tutto
Sub CopiaSheet()
Rispo = InputBox("Inserisci il nome Amico?")
    If Rispo <> "" Then
    B5 = Range("B5").Value
    C5 = Range("C5").Value
    D5 = Range("D5").Value
    E5 = Range("E5").Value
    Sheets("Default - Amici").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = Rispo
    Range("C3").Value = B5
    Range("C4").Value = C5
    Range("C5").Value = D5
    Range("C6").Value = E5
    ActiveSheet.Visible = True
End If
End Sub

ma non credo sia questa la tua esigenza...
fai sapere
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 31/07/12 07:00

Ciao a tutti/e, Flash30005 :)

Flash30005 : ti ringrazio per la risposta, temo purtroppo che questa sia una soluzione "statica". Mi spiego meglio: se volessi creare una cartella dell'amico i cui valori da copiare sono presenti nelle celle B6 C6 D6 e E6 la macro da te porposta non funzionerebbe! :-?

Nel frattempo sto provando anch'io a risolvere questo "problema" ma se ti venisse in mente qualcosa a te ed a tutti coloro che leggeranno questo post.....

Grazie ancora e buona giornata :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Flash30005 » 31/07/12 07:36

Perdona ma ho realizzato la macro secondo le tue specifiche che, come avrai notato, avevo messo in dubbio la validità...
GreenDays ha scritto:mi piacerebbe anche che il foglio creato avesse nelle celle C3 C4 C5 e C6 rispettivamente i valori presenti nel Foglio1 celle: B5 C5 D5 e E5.


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi GreenDays » 31/07/12 18:40

;) nel frattempo continuo a cercare la soluzione e se la trovo ovviamente la condivido! Ciao! :)
Utilizzo Microsoft Excel 2003
GreenDays
Utente Junior
 
Post: 29
Iscritto il: 21/05/12 08:25

Re: Duplicare un foglio di lavoro e nominarlo tramite Messag

Postdi Flash30005 » 31/07/12 20:22

:roll:
Come preferisci
Io opterei nel dare una specifica più chiara di cosa vorresti ottenere

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Duplicare un foglio di lavoro e nominarlo tramite MessageBox":


Chi c’è in linea

Visitano il forum: patel e 5 ospiti