Condividi:        

macro per azioni su più fogli

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

macro per azioni su più fogli

Postdi zuzzumaja » 29/01/12 19:01

Salve, ho un file con 50 fogli, avrei necessità di ripetere alcune operazioni in ciascun foglio.
es. inserisci una riga in A1 in ciascun foglio, oppure inserisci la parola "VERIFICATO" nella cella F1 sempre di ciascun foglio, mi dareste una mano per evitare di fare le azioni foglio per foglio ?

ringrazio anticipatamente
zuzzumaja
Utente Junior
 
Post: 68
Iscritto il: 26/08/09 13:34

Sponsor
 

Re: macro per azioni su più fogli

Postdi Flash30005 » 29/01/12 19:16

Ehmm
sembrerebbe che tu voglia ripetere la stessa operazione, che fai sul primo foglio, in tutti i fogli della cartella
e volendo si può riuscere a fare qualcosa ma mi sorge un dubbio come fare a distinguere ciò che va ripetuto e altre operazioni che non devono essere ripetute, (esempio digitazione dati esclusivi del primo foglio)?

Altrimenti dovresti fare un elenco di operazioni es.:
"Aggiungere una riga" in una cella potrai indicare il numero di riga e con un comando farlo fare in tutti i fogli
oppure "Inserire Stringa" in una cella indicare la stringa da inserire e in un'altra l'indirizzo cella/celle
etc
dipende, comunque, dalla quantità di operazioni da fare
Un'altra idea che potrebbe essere fattibile potrebbe essere quella di registrare una macro mentre fai un'operazione al foglio1, con un pulsante che richiama una macro con ciclo for... next (scansione di tutti i fogli tranne il primo) e ripete la macro da te registrata.

Vedi se riesci con questi spunti a realizzare qualcosa altrimenti posta ancora riportando uno stralcio del file e esempi più completi possibile

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per azioni su più fogli

Postdi zuzzumaja » 29/01/12 19:32

Un'altra idea che potrebbe essere fattibile potrebbe essere quella di registrare una macro mentre fai un'operazione al foglio1, con un pulsante che richiama una macro con ciclo for... next (scansione di tutti i fogli tranne il primo) e ripete la macro da te registrata.


Credo che questa possa andare, ma mi dovresti dire come realizzare "una macro con ciclo for... next "

In pratica il foglio 1 è una specie di template, che si ripete per 50 volte, diventando foglio 2, 3, 4..50, e quindi ogni aggiustamento di formati e/o variazioni di contenuti, va ripetuto su tutti i fogli. (tutto può essere ripetuto su gli altri fogli, non ci sono dati esclusivi sul 1 foglio)
zuzzumaja
Utente Junior
 
Post: 68
Iscritto il: 26/08/09 13:34

Re: macro per azioni su più fogli

Postdi Flash30005 » 30/01/12 00:14

Allora la macro "Madre" è questa:
Codice: Seleziona tutto
Sub Copia()
For NF = 1 To Worksheets.Count
If Worksheets(NF).Name <> "Template" Then
Worksheets(NF).Select
Call Macrocreata
Worksheets("Template").Select
End If
Next NF
End Sub

Aggiungi una macro vuota
così
Codice: Seleziona tutto
Sub Macrocreata()



End Sub


Qnado registri una macro avrai qualcosa del genere
Codice: Seleziona tutto
Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 30/01/2012 da Flash
'

'
    Rows("11:11").Select
    Selection.Insert Shift:=xlDown
    Range("D13").Select
    ActiveCell.FormulaR1C1 = "Verificato"
    Range("D14").Select
End Sub

Non devi far altro che copiare il codice esclusi i commenti e nome macro
e incollarlo all'interno di Macrocreata
e avrai
Codice: Seleziona tutto
Sub Macrocreata()
    Rows("11:11").Select
    Selection.Insert Shift:=xlDown
    Range("D13").Select
    ActiveCell.FormulaR1C1 = "Verificato"
    Range("D14").Select
End Sub


Avvii la macro con nome "Copia" e hai finito

C'è della manualità ma insignificante rispetto al lavoro che avresti dovuto fare in assenza

potranno esserci altri consigli migliori quindi in attesa di altre soluzioni puoi cominciare a fare pratica ;)

ciao

P.s. Ho chiamato il foglio, nel quale registri la macro e fai le operazioni da ripetere, "Template" sostituisci secondo le tue esigenze
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per azioni su più fogli

Postdi zuzzumaja » 30/01/12 19:44

grande flash, funziona..
ma mi sono perso nella cosa più semplice, non riesco a copiare il contenuto di una cella :oops:

es. in a1 del template, c'è scritto "prova", creo la macro ma copia la cella senza contenuto (la parola prova)

:?:
tnk
zuzzumaja
Utente Junior
 
Post: 68
Iscritto il: 26/08/09 13:34

Re: macro per azioni su più fogli

Postdi Anthony47 » 30/01/12 21:36

Bentornato.
Puoi pubblicare il codice che stai usando per questa copia?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per azioni su più fogli

Postdi zuzzumaja » 30/01/12 22:40

Sub Macro1()
'
' Macro1 Macro
' Macro registrata il 30/01/2012 da user
'

'
Range("A1").Select
Selection.Copy
End Sub
zuzzumaja
Utente Junior
 
Post: 68
Iscritto il: 26/08/09 13:34

Re: macro per azioni su più fogli

Postdi Anthony47 » 30/01/12 23:05

Ok, non sto a chiederti quale e' l' istruzione che "Incolla"; come pure ti e' chiaro che la Copia la fai dal foglio Attivo?
Prova con
Codice: Seleziona tutto
Sheets("FoglioNNN").Range("A1").Copy Destination:=ActiveSheet.Range("A1")    '<< da quale foglio devi copiare?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per azioni su più fogli

Postdi Flash30005 » 30/01/12 23:20

Ehmmm

ma io intendevo di attivare la macro prima di
1) selezionare la cella destinazione
2) scrivere nella cella
3) premere invio
a questo punto, hai una macro così fatta
Codice: Seleziona tutto
Sub Macro1()

    Range("A1").Select
    ActiveCell.FormulaR1C1 = "prova"
    Range("A2").Select
End Sub


ma che puoi semplificare così

Codice: Seleziona tutto
Sub Macro1()

    Range("A1").FormulaR1C1 = "prova"
 
End Sub

Nella MacroCreata (svuotata dai precedenti codici) devi inserire solo quesa riga e avrai
Codice: Seleziona tutto
Sub Macrocreata()

Range("A1").FormulaR1C1 = "prova"

End Sub


Avvi la macro Copia e ti ritroverai in tutti i fogli la parola "prova" nella cella "A1"

Ciao

P.s. Vedi anche il post di Antony
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "macro per azioni su più fogli":


Chi c’è in linea

Visitano il forum: Gianca532011 e 38 ospiti