ho un foglio1 con alcuni dati e un pulsante al quale vorrei assegnare
la macro "Duplica".
Su questo foglio1 l'esecuzione della macro "Duplica" dovrebbe:
1) creare una copia del foglio1 (inclusa la macro) il cui nome
dovrebbe essere uguale al valore della cella W1 del foglio1 (una data)
2) copiare i valori delle celle U8:V56 del foglio1 e incollarli nelle
celle U8:V56 del nuovo foglio
Il problema che non riesco a risolvere stà nel fatto che l'esecuzione
della macro "Duplica" nel foglio2 dovrebbe ripetere il tutto sul
foglio3, il foglio3 sul foglio4 e così via....
Il mio tentativo funziona solo con il primo foglio perchè credo che la
mia macro faccia riferimento sempre solo al foglio iniziale.
Ringrazio chi può aiutarmi
Cingolo
> Salve,
ciao
evidentemente "forse non tutti sanno che" ...
Activesheet Foglio attivo
Activesheet.Next Foglio successivo a quello attivo
Activesheet.Index Numero d'ordine del foglio attivo
Activesheet.Name Nome del foglio attivo
Sheets(1) Primo foglio
Sheets(Sheets.Count) Ultimo foglio
Il numero d'ordine è quello indicato dalla posizione delle
linguette in basso e cioè non riferito alla relativa "data di nascita"
inoltre
Set f = Sheets.Add ti permette di riferirti al nuovo foglio aggiunto attraverso
la variabile oggetto f
()---cucchiaino
www.riolab.org
Non mi è chiaro cosa vuoi fare.
Foglio1 crea, ad esempio, il foglio: 20-01-2001
(la data presente in W1 del Foglio1)
e la utilizza come nome per il nuovo
foglio(vedi nota finale)?
E poi copiamo i valori presenti in U8-V56
del Foglio1 pe copiarli in U8.V56 del
foglio 20-01-2001?
Quando eseguirai la macro dal
foglio 20-01-2001, i valori di W1 e di
U8:V56 li prendiamo da questo foglio
per metterli nel nuovo foglio che stiamo
creando? Se sì, domanda: a parte
il Range U8:V56, tutto il resto che si trova
sul foglio padre, lo buttiamo?
Se(se) la condizione è questa:
Public Sub m()
On Error GoTo RigaErrore
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim s As String
Set sh1 = ActiveSheet
Worksheets(sh1.Name).Copy After:=Worksheets(sh1.Name)
Set sh2 = ActiveSheet
With sh2
.Rows.Delete
.Name = _
Replace(CStr( _
sh1.Range("W1").Value), _
"/", "-")
sh1.Range("U8:V56").Copy _
Destination:=.Range("U8:V56")
End With
RigaChiusura:
Set sh1 = Nothing
Set sh2 = Nothing
Exit Sub
RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura
End Sub
Nota.
Non puoi utilizzare "/" (il
separatore standard delle date)
nei nomi che dai ai
tuoi fogli. Nella macro sostituisco
"/" con "-". Vedi tu se ti va bene, altrimenti
fai sapere. Grazie.
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
Ho il foglio denominato "PIPPO". La macro (assegnata ad un pulsante
presente su questo foglio) dovrebbbe fare questo in sequenza:
1) crea una copia identica del foglio "PIPPO" senza modificarne nulla
(questa copia per il momento chiamiamola foglio2)
2) copia il valore della cella W1 (ad esempio il valore "1000") del
foglio "PIPPO" e rinomina foglio2 con questo valore
- (a questo punto avrò 2 fogli identici, uno iniziale denominato
"PIPPO" e l'altro denominato "1000")
3) copia i valori delle celle U8:V56 del foglio "PIPPO" e fa incolla-
valori sulle celle U8:V56 del foglio "1000"
(Il problema per me nasce ora..)
Quando mi sposterò sul foglio "1000" e premerò il pulsante eseguendo
la macro questa dovrebbe:
1) crea una copia identica del foglio "1000" senza modificarne nulla
(questa copia per il momento chiamiamola foglio3)
2) copia il valore della cella W1 (ad esempio il valore "PAPERINO")
del foglio "1000" e rinomina foglio3 con questo valore
- (a questo punto avrò 2 fogli identici, uno iniziale denominato
"1000" e l'altro denominato "PAPERINO")
3) copia i valori delle celle U8:V56 del foglio "1000" e fa incolla-
valori sulle celle U8:V56 del foglio "PAPERINO"
E cosi via........ Quando mi sposterò sul foglio "PAPERINO" e premerò
il pulsante eseguendo la macro questa dovrebbe:
1) crea una copia identica del foglio "PAPERINO" senza modificarne
nulla (questa copia per il momento chiamiamola foglio4)
2) copia il valore della cella W1 (ad esempio il valore "2000") del
foglio "PAPERINO" e rinomina foglio4 con questo valore
- (a questo punto avrò 2 fogli identici, uno iniziale denominato
"PAPERINO" e l'altro denominato "2000")
3) copia i valori delle celle U8:V56 del foglio "PAPERINO" e fa
incolla-valori sulle celle U8:V56 del foglio "2000"
Spero di essere stato più chiaro, ti ringrazio per l'attenzione.
Ciao
On 7 Apr, 09:57, "Mauro Gamberini"
1) crea una copia identica del foglio "PIPPO" senza modificarne nulla
(questa copia per il momento chiamiamola foglio2)
2) copia il valore della cella W1 (ad esempio il valore "1000") del
foglio "PIPPO" e rinomina foglio2 con questo valore
************************************************
Il codice postato fa già questo.
- (a questo punto avrò 2 fogli identici, uno iniziale denominato
"PIPPO" e l'altro denominato "1000")
3) copia i valori delle celle U8:V56 del foglio "PIPPO" e fa incolla-
valori sulle celle U8:V56 del foglio "1000"
************************************************
Mi sembra una cosa inutile.
Ho già i valori di Pippo nel foglio 1000.
Cancella questa riga:
.Rows.Delete
nel codice che ti ho postato.
- (a questo punto avrò 2 fogli identici, uno iniziale denominato
"PIPPO" e l'altro denominato "1000")
3) copia i valori delle celle U8:V56 del foglio "PIPPO" e fa incolla-
valori sulle celle U8:V56 del foglio "1000"
(Il problema per me nasce ora..)
Quando mi sposterò sul foglio "1000" e premerò il pulsante eseguendo
la macro questa dovrebbe:
<cut>
***************************************************
Il codice postato fa quanto chiedi.
Domanda: ma tu l'hai provato?
Perchè altrimenti....
Un saluto,
Cingolo