Postoje slučajevi kada ne želite da korisnik zatvori radnu knjigu programa Excel bez unošenja određenog podatka. U tim bi situacijama bilo korisno uskratiti korisniku mogućnost zatvaranja radne knjige dok se ciljna ćelija ne popuni (kao što je ovdje prikazano). Ovdje dolazi ova zgodna makronaredba.
Spriječite zatvaranje dok se određena ćelija ne popuni.
Kako makro funkcionira
Ovaj kod pokreće događaj BeforeClose radne knjige. Kada pokušate zatvoriti radnu knjigu, ovaj se događaj aktivira, pokreće kod unutar njega. Ova makronaredba provjerava je li ciljna ćelija (u ovom slučaju ćelija C7) prazna. Ako je prazan, proces zatvaranja se poništava. Ako C7 nije prazan, radna knjiga se sprema i zatvara:
Privatna pod Radna knjiga_Prije zatvaranja(Odustani kao Boolean)
'Korak 1: Provjerite je li ćelija C7 prazna
Ako Sheets("Sheet1").Raspon("C7").Vrijednost = " Zatim
'Korak 2: Ako je ćelija prazna, otkažite zatvaranje i obavijestite korisnika
Odustani = Istina
MsgBox "Ćelija C7 ne može biti prazna"
'Korak 3: Ako ćelija nije prazna, spremite i zatvorite
Drugo
ActiveWorkbook.Close SaveChanges:=Točno
Završi ako
Kraj Sub
Korak 1 provjerava je li C7 prazan.
Ako je C7 prazan, korak 2 stupa na snagu, poništavajući proces zatvaranja prosljeđivanjem True u Otkaži Boolean. Korak 2 također aktivira okvir s porukom koji obavještava korisnika o njegovoj ili njezinoj gluposti (pa, nije baš tako grubo, stvarno).
U koraku 3, ako ćelija C7 nije prazna, radna knjiga se sprema i zatvara.
Kako koristiti makro
Da biste implementirali ovu makronaredbu, trebate je kopirati i zalijepiti u prozor koda događaja Workbook_BeforeClose. Postavljanje makronaredbe ovdje omogućuje da se pokrene svaki put kada pokušate zatvoriti radnu knjigu:
Aktivirajte Visual Basic Editor pritiskom na Alt+F11.
U prozoru projekta pronađite naziv projekta/radne knjige i kliknite znak plus pored njega da biste vidjeli sve listove.
Kliknite Ova radna knjiga.
Na padajućem popisu Događaj odaberite događaj Prije zatvaranja.
Upišite ili zalijepite kod u novostvoreni modul.
Unesite svoj kod u događaj Radna knjiga BeforeClose.