Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro cambia pagina con condizione

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 cambia pagina con condizione

Postdi martin » 14/03/10 17:18

ciao ragazzi
mi servirebbe un aiuto nel modificare una macro che mi passa da un foglio all'altro.
ho 10 campi da compilare finiti regolarmente dovrei andare alla pagina successiva attivando una macro. tipo (Sheets("Foglio2").Select e cosi via per 100 pagine
il mio problema sta che se dimentico un campo vorrei che la macro che mi manda alla pagina successiva mi dia un avviso del campo dimenticato e quindi non mi consenta di andare avanti finche non completi quel campo che puo essere numerico o alfanumerico indicandomi quale allo stesso tempo.
fatto questo mi servirebbe altra macro che in fase di programmazione possa essere copiata in altri 100 pagine in automatico in modo che ad ogni pagina abbia la stessa procedura.
grazie
martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Sponsor
 

Re: Macro cambia pagina con condizione

Postdi Flash30005 » 14/03/10 20:44

Dovresti dare qualche indicazione in più relativa ai campi (le coordinate se in riga o in colonna)
Se i 100 fogli li hai già creati oppure si creano man mano che termini la compilazione del foglio.

Insomma se invii il file è ancora meglio

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: Macro cambia pagina con condizione

Postdi martin » 14/03/10 21:35

Flash30005 ha scritto:Dovresti dare qualche indicazione in più relativa ai campi (le coordinate se in riga o in colonna)
Se i 100 fogli li hai già creati oppure si creano man mano che termini la compilazione del foglio.

Insomma se invii il file è ancora meglio

ciao


ok grazie per avermi risposto.
niente di particolare sono solo dei campi in colonna fai conto a1,a2,a3
i fogli sono gia creati
trovata la macro con la condizione che vada avanti solo se le celle sono compilate
mi serve solo un metodo per sostituire sui cento fogli velocemente la macro che alla condizione mi vada avanti di un foglio.
grazie
ciao
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: Macro cambia pagina con condizione

Postdi Flash30005 » 15/03/10 00:50

con una macro così messa in un modulo
Codice: Seleziona tutto
Sub CambiaFoglioSe()
For CC = 1 To 10
    If Cells(1, CC).Value = 0 Then
        MsgBox "Manca dato bella colonna " & CC
        Cells(1, CC).Select
        GoTo esci
    End If
Next CC
For FF = 1 To Worksheets.Count
    If Sheets(FF).Name = ActiveSheet.Name Then
        Sheets(FF + 1).Select
        GoTo esci
    End If
Next FF
esci:
End Sub


hai il cambio pagina controllato
ma devi mettere due righe di codice in ogni foglio che consistono nel codice di chiamata macro in questa maniera
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$J$1" Then Exit Sub
Call CambiaFoglioSe
End Sub

dove (J1 è il decimo campo)

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: Macro cambia pagina con condizione

Postdi Anthony47 » 15/03/10 01:05

Leggi il messaggio di Flash sopra; il mio suggerimento:
su ogni foglio usi la formattazione condizionale per indicare i valori che mancano; in una cella a piacere ma semple la stessa su ogni foglio, diciamo Z1, ti calcoli un flag che e' >0 quando manca un dato e va a 0 quando tutto e' ok. Con questo stesso flag puoi far comparire in testa al foglio, in un riquadro sempre visibile, la scritta "Ci sono dati da introdurre" oppure "Puoi passare al foglio successivo" (=SE(Z1>0;"frase";"altra frase") che, sempre con Z1 colori di Rosso o di Verde tramite formattazione condizionata.
Infine metti in un modulo la macro
Codice: Seleziona tutto
Sub Macro_Next()
If [Z1]<>0 then Exit Sub
On Error Resume Next
ActiveSheet.Next.Select
End Sub

Assegni poi a questa macro un tasto di scelta rapida, es Contr-Maiusc-S (S per Successivo); a questo punto da qualsiasi foglio passi al successivo con Contr-Maiusc-S.

Volendo fai altra macro analoga con activesheet.previous.select.

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: Macro cambia pagina con condizione

Postdi martin » 15/03/10 01:47

[hai il cambio pagina controllato
ma devi mettere due righe di codice in ogni foglio che consistono nel codice di chiamata macro in questa maniera
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$J$1" Then Exit Sub
Call CambiaFoglioSe
End Sub

dove (J1 è il decimo campo)

Ciao[/quote]


perfetto funziona grazie

la econda macro non l'ho capita ma va lo stesso anche senza
ciao martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Re: Macro cambia pagina con condizione

Postdi martin » 15/03/10 01:56

Anthony47 ha scritto:Leggi il messaggio di Flash sopra; il mio suggerimento:
su ogni foglio usi la formattazione condizionale per indicare i valori che mancano; in una cella a piacere ma semple la stessa su ogni foglio, diciamo Z1, ti calcoli un flag che e' >0 quando manca un dato e va a 0 quando tutto e' ok. Con questo stesso flag puoi far comparire in testa al foglio, in un riquadro sempre visibile, la scritta "Ci sono dati da introdurre" oppure "Puoi passare al foglio successivo" (=SE(Z1>0;"frase";"altra frase") che, sempre con Z1 colori di Rosso o di Verde tramite formattazione condizionata.
Infine metti in un modulo la macro
Codice: Seleziona tutto
Sub Macro_Next()
If [Z1]<>0 then Exit Sub
On Error Resume Next
ActiveSheet.Next.Select
End Sub

Assegni poi a questa macro un tasto di scelta rapida, es Contr-Maiusc-S (S per Successivo); a questo punto da qualsiasi foglio passi al successivo con Contr-Maiusc-S.

Volendo fai altra macro analoga con activesheet.previous.select.

Ciao



ok grazie anthony anche questa va bene
ciao
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04


Torna a Applicazioni Office Windows


Topic correlati a "Macro cambia pagina con condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti