Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Non chiudere se cella vuota

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

Non chiudere se cella vuota

Postdi stefanoifs » 23/11/06 09:09

Ciao

è possibile fare una macro che non fa chiudere il documento se la o le celle che dico io sono vuote? quindi sono celle che devono essere obbligatoriamente compilate?
grazie mille a tutti
stefanoifs
Utente Junior
 
Post: 14
Iscritto il: 18/09/06 17:03

Sponsor
 

Postdi Anthony47 » 23/11/06 17:31

Ciao stefanoifs,
Devi usare una macro attivata dall’ evento Workbook_BeforeClose: vai nel vba editor (via Alt-F11), doppioclick su ThisWorkbook (nella finestra Progetto a sx); incolla la seguente macro nel frame bianco di dx:

Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'. . . . .
'. . . . .
If Worksheets("Foglio1").Range("A1").Value = "" Then
MsgBox ("ERRORE: La cella A1 deve essere compilata prima di chiudere il file; telefonare a . . . per chiarimenti")
Cancel = True
Exit Sub
End If
'. . . .
'. . . . .
End Sub


Questo e’ un esempio, che impedisce il salvataggio se la cella A1 e’ vuota; sostituisci la struttura di verifica, inserisci eventuali istruzioni da eseguire prima della fine della macro e dovrebbe essere fatta.
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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi stefanoifs » 24/11/06 10:47

grazie mille un'altra cosa.... ma se io devo immettere un intervallo di celle come faccio? grazie
stefanoifs
Utente Junior
 
Post: 14
Iscritto il: 18/09/06 17:03

Postdi stefanoifs » 24/11/06 11:00

L'HO PROVATO... IL FATTO è QUESTO: IO HO UNA MACRO DI SALVATAGGIO IN UNA CARTELLA DA ME NOMINATA "LISTA" SE IO USO LA MACRO CHE MI HAI DATO CHIUDENDO IL PROGRAMMA FUNZIONA ALLA PERFEZIONE (A PARTE IL FATTO CHE NON SO COME INSERIRE UN INTERVALLO AL POSTO DI UNA CELLA SOLA :) ) MA SE IO SALVO IL PROGRAMMA USANDO LA MACRO DI SALVATAGGIO NON FUNZIONA OVVIAMENTE COME POSSO FARE PER NON FAR SALVARE IL FILE SE NON SONO COMPILATE LE CELLE DI MIO INTERESSE?

GRAZIE MILLE E SCUSA IL DISTURBO
stefanoifs
Utente Junior
 
Post: 14
Iscritto il: 18/09/06 17:03

Postdi stefanoifs » 24/11/06 13:08

Aggiornamento:

ho provato con:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'. . . . .
'. . . . .
If Worksheets("Foglio1").Range("A1").Value = "" Then
MsgBox ("ERRORE: La cella A1 deve essere compilata prima di chiudere il file; telefonare a . . . per chiarimenti")
Cancel = True
Exit Sub
End If
'. . . .
'. . . . .
End Sub

funziona ma c'è solo un piccolo particolare: io devo salvare (almeno per la prima volta) il modello "in bianco" che ovviamente non mi fa salvare.... come faccio?
stefanoifs
Utente Junior
 
Post: 14
Iscritto il: 18/09/06 17:03

Postdi Anthony47 » 24/11/06 15:57

Ovviamente non puoi aggirare la regola per poter tu salvare il file vuoto, .....ma si puo’ cambiarla.

Il metodo piu’ semplice e’ leggere lo user name di excel, e se corrisponde al tuo consenti il salvataggio.

Per prova esegui questa macro, ti visualizzera’ il nome utente di excel, quello definito tramite Strumenti ->Opzioni, tab “Generale”, voce “Nome Utente”:

Codice: Seleziona tutto
Sub TestaUt()
MsgBox "Utente corrente: " & Application.UserName
End Sub



Quindi modificherai la tua macro come da questo esempio:

Codice: Seleziona tutto
If Application.UserName = "Il mio nome utente" Then Goto OkSalva
If Worksheets("Foglio1").Range("A1").Value = "" Then
MsgBox ("ERRORE: La cella A1 deve essere compilata prima di chiudere il file; telefonare a . . . per chiarimenti")
Cancel = True
Exit Sub
End If

OkSalva:
'. . . .
'. . . . .
End Sub



Qualcosa di piu’ complicato potrebbe essere l’ uso del nome del pc (come definito nel sistema operativo); prova questa:

Codice: Seleziona tutto
Sub TestaEnv()
MsgBox "Current user is " & Environ("ComputerName")
End Sub


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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Non chiudere se cella vuota":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti