macro duplicazione foglio incremento cella
Hai un problema con Excel? 
macro duplicazione foglio+ incremento cella
di dm88 (utente non iscritto) data: 10/11/2015 23:01:34
Ciao a tutti...sono nuovo del forum, ma spero di poter presto rispondere ai dubbi degli altri utenti, e non solo far risolvere i miei
Il mio problema è presto detto: in una cartella di lavoro, ho due fogli: il primo rappresenta un elenco completo di dati, nel secondo foglio vengono richiamati solo alcuni dati del foglio precedente (attraverso cerca.verticale e cerca.orizzontale), ed è corredato di grafici: questo secondo foglio è costruito in maniera tale che cambiando il valore di una cella, vengono richiamati i dati del primo foglio riferiti a questo nuovo valore, e così via.
vorrei duplicare il secondo foglio x volte, e contemporaneamente incrementare una stessa cella (es.B2) di 1 rispetto al valore del foglio precedente: es. se nel foglio 2 nella cella B2 compare il valore 70, vorrei duplicare quel foglio 10volte, in modo che nel primo foglio clone nella cella B2 ci sia 71, nel secondo foglio clone ci sia 72 e così via.
Finora sono riuscito solo a duplicare i fogli attraverso il codice:
Sub DUPLICATTIVO()
Dim x As Integer
x = InputBox("Enter number of times to copy active sheet")
For numtimes = 1 To x
'Loop by using x as the index number to make x number copies.
ActiveWorkbook.ActiveSheet.Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
'Put copies in front of Sheet1.
'Replace "Sheet1" with sheet name that you want.
Next
End Sub
ma riguardo il contemporaneo incremento della cella B2, non so come andare avanti. Qualcuno può darmi una mano? grazie mille in anticipo
di Raffaele_53 data: 10/11/2015 23:59:26
Ci sono diversi pensieri
Prova ad elencali Uno a Uno (con i risultati voluti)
Un semplice Worksheet_Change (riferito in altro foglio), potrebbe aiutare, però se non alleghi un file con quello che desideri, non saprei come fare?
Ps. Grafico sono scarso
di Luca73 data: 11/11/2015 09:14:12
Prova a vedere se come impostato funziona.
Ho modificato il tuo impostando in una variabile il foglio di origine e poi copiandolo.
Quando copia rende attivo il nuovo foglio
Per semplicità il tuo ActiveWorkbook.Sheets("Sheet1") l'ho trasformato in ActiveWorkbook.Sheets(1) in quanto io non avevo il foglio con il tuo nome.
Ho modificato poi la cella A1 (modifica a tua necessità dovrebbe essere B2) incrementando il valore di parteza di 1 per ogni copia.
Praticamente parte sempre da quello che hai copiato dove c'era un valore K e poi somma il numero di copia.
Consiglio metti un Option Explicit all'inizio e dichiara tutte le variabili.
Ciao
Luca
Option Explicit
Sub DUPLICATTIVO()
Dim x As Integer
Dim numtimes As Integer
Dim ShOrigin As Worksheet
x = InputBox("Enter number of times to copy active sheet")
Set ShOrigin = ActiveWorkbook.ActiveSheet
For numtimes = 1 To x
'Loop by using x as the index number to make x number copies.
ShOrigin.Copy After:=ActiveWorkbook.Sheets(1)
ActiveSheet.Range("A1") = ActiveSheet.Range("A1") + numtimes
'Put copies in front of Sheet1.
'Replace "Sheet1" with sheet name that you want.
Next
End Sub
|
di dm88 (utente non iscritto) data: 11/11/2015 16:11:09
grazie luca73 e raffaele_53 per la vostra pronta risposta.. luca il codice funziona perfettamente, grazie mille!! non so quanto la mia richiesta fosse o meno di facile risoluzione (immagino facilissima per voi)..per questo vi chiedo: mi consigliereste un libro che mi possa insegnare a produrre macro di questo livello di difficoltà? grazie di cuore
Vuoi Approfondire?