[ planerso @ 08.05.2008. 11:28 ] @
Pozdrav,

Formirao sam tabelu u Excelu 2007. Uveo sam i Conditional formating za eventualne greske i nelogicnosti tokom unosa. Da li postoji mogucnost da se onemoguci stampa dok se neudovolji uslovu Conditional formatinga?


Unapred hvala!
[ Jpeca @ 09.05.2008. 08:03 ] @
Za eventualne greske i nelogicnosti tokom unosa čini mi se primerenije korišćenje validacije (Data Validation). Provera bi se u tom slučaju vršila prilikom unosa, pa eventualno treba samo dodano proveriti da li su sve obavezne ćelije unesene, pre štampe.

Ako ti to ne odgovara, opiši kako si zamislio proveru korišćenjem uslovnog formatiranja kako bi mogao da ti dam odgovor. Primer bi bio od pomoći.
[ planerso @ 12.05.2008. 06:09 ] @
Pozdrav,

Problem je u tome, sto npr. zelim da neka polja ne ostanu prazna, kako bih zbir mogao da prikazem po razlicitim filterima. Znaci ukoliko bi ta polja ostala nepopunjena, ukljucio sam CONDITIONAL FORMATING, da bode oci. Ali mi ni to nije totalna sigurica da ce ta polja, ukoliko su npr crvena, biti i popunjena. Npr unosite bruto, neto i otpad. Normalno BRUTO bi trebalo da bude zbir NETO+otpad, a ukoliko to nije, celija crveni i NEMA STAMPANJA. Da li postoji rešenje?
[ Jpeca @ 12.05.2008. 07:51 ] @
Mnogo je lakše proveriti pre štampe/čuvanja fajla da li određena polja nisu prazna, što bi moglo da bude rešenje iz ovoga što si napisao.
Za događaj BeforePrint (Worksheet modul) unese se sledeći kod
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
' Rutina koja se poziva pre štampe
' Poziva ChekCond za zadatu oblast
'
Dim Response
Dim rngCond As Range
Set rngCond = Sheets(1).Range("C1:C100") ' Ovde zadati oblast koj
If CheckCond(rngCond) Then
       Response = MsgBox("Nastaviti sa štampom", vbYesNo, "Nekompletan unos")
       If Response = vbNo Then
       ' Cancel Print
         Cancel = True
       End If
End If
End Sub

U kodu je pretpostavljeno da je oblast koja se proverava C1:C100, što se lako promeni. Provera se vrši u posebnoj funkciji (kako bi lakše mogla da se dopunjuje i ispravlja po potrebi)

Code:
Public Function CheckCond(rng As Range) As Boolean
' Provera da li u zadatoj oblasti ima praznih ćelija
'
 Dim cl As Range
  CheckCond = False
  For Each cl In rng
      If cl.Text = "" Then
              CheckCond = True
              Exit For
      End If
      If CheckCond Then GoTo FuncEnd
  Next cl
FuncEnd:
End Function