IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Excel
  New Posts New Posts RSS Feed - [RISOLTO] Condizioni impedire stampa foglio
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[RISOLTO] Condizioni impedire stampa foglio

 Post Reply Post Reply
Author
Message
il_betto View Drop Down
Veterano
Veterano
Avatar

Joined: 13/Giu/2011
Status: Offline
Points: 2987
Post Options Post Options   Thanks (0) Thanks(0)   Quote il_betto Quote  Post ReplyReply Direct Link To This Post Topic: [RISOLTO] Condizioni impedire stampa foglio
    Posted: 09/Gen/2018 at 11:04
Ciao a Tutti,

ho un file excel.xlsm contenente diversi fogli: uploads/19358/test_print.rar

Devo fare un confronto tra valori di celle.

Se sono in uno dei primi tre fogli di lavoro,
e se il valore di AI31 (inserito dall' utente) è >= del valore fisso in AJ31
allora, schiacciando il pulsante "Stampa", si stampa il foglio attivo,
altrimenti esce una msgbox e basta.

Ho inserito in VBA il codice che giustamente apre una msgbox,
qualora il numero immesso dall' utente in AI31 è inferiore a quello teorico / nominale presente in AJ31.

Riscontro però 2 problemi.

- se il valore immesso dall' utente in AI31 è inferiore ad AJ31, compare la msgbox ma mi viene fatta la stampa lo stesso e ciò non mi va bene

- se l' utente mi mette come primo tentativo in AI31 un valore inferiore ad AJ31 mi viene fuori la msgbox;
se però, senza salvare, l' utente mi mette una seconda volta in AI31 un valore inferiore ad AJ31 e schiaccia "Stampa" non mi compare più la msgbox e parte la stampa direttamente.
Ciò non va bene !!

Grazie in anticipo per l' aiuto !!!



Edited by il_betto - 10/Gen/2018 at 14:26
Back to Top
Sponsored Links


Back to Top
il_betto View Drop Down
Veterano
Veterano
Avatar

Joined: 13/Giu/2011
Status: Offline
Points: 2987
Post Options Post Options   Thanks (0) Thanks(0)   Quote il_betto Quote  Post ReplyReply Direct Link To This Post Posted: 09/Gen/2018 at 12:03
Rispetto a prima,

ho aggiunto nel codice la riga che mi impedisce la stampa, 
purtroppo solo la prima volta se il valore di AI31 è < AJ31,
perchè dalla seconda volta in poi non compare più la msgbox  e la stampa parte automaticamente ... Cry

    If ActiveSheet.Index < 4 Then
    
       If CDbl(ActiveSheet.Range("AI31")) >= CDbl(Mid(ActiveSheet.Range("AJ31").Value, 7)) Then
          ActiveSheet.Range("AJ31:AK31").Interior.ColorIndex = xlNone
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 2
          ActiveSheet.Range("A1:AN34").PrintOut
          Application.EnableEvents = True
          ActiveSheet.Range("AJ31:AK31").Interior.Color = RGB(255, 255, 102)
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 1
          Cancel = True
       Else
          MsgBox "Impossibile stampare: Ore mensili insufficienti !!"
          Cancel = True
          Exit Sub
       End If
    End If
Back to Top
il_betto View Drop Down
Veterano
Veterano
Avatar

Joined: 13/Giu/2011
Status: Offline
Points: 2987
Post Options Post Options   Thanks (0) Thanks(0)   Quote il_betto Quote  Post ReplyReply Direct Link To This Post Posted: 09/Gen/2018 at 15:11
Pare che così funzioni:

ho tolto l' Exit Sub che non  c' entrava niente ...

If ActiveSheet.Index < 4 Then
    
       If CDbl(ActiveSheet.Range("AI31")) >= CDbl(Mid(ActiveSheet.Range("AJ31").Value, 7)) Then
          ActiveSheet.Range("AJ31:AK31").Interior.ColorIndex = xlNone
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 2
          ActiveSheet.Range("A1:AN34").PrintOut
          Application.EnableEvents = True
          ActiveSheet.Range("AJ31:AK31").Interior.Color = RGB(255, 255, 102)
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 1
          Cancel = True
       Else
          MsgBox "Impossibile stampare: Ore mensili insufficienti !!"
          Cancel = True
Exit Sub
       End If
    End If
Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 10170
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 09/Gen/2018 at 18:17
Ciao
bene per aver risolto, ma non sarebbe più logico "prima" valutare la fattibilità della stampa e poi se i riscontri sono corretti procedere con  i settaggi pagina etc ??

saluti
domenico
win 10- office 2010
Back to Top
il_betto View Drop Down
Veterano
Veterano
Avatar

Joined: 13/Giu/2011
Status: Offline
Points: 2987
Post Options Post Options   Thanks (0) Thanks(0)   Quote il_betto Quote  Post ReplyReply Direct Link To This Post Posted: 10/Gen/2018 at 14:23
Ciao dodo, buon anno !!!

Grazie mille come sempre dei tuoi veri e preziosi suggerimenti !!

Hai ragione, lo terrò presente per le future migliorie !!!

Poichè in azienda abbiamo sia Office 2010 che Office 2013,
e c' e' chi ha come settaggio il "punto" come "separatore decimale", anzichè la virgola,
ho dovuto cambiare la condizione dell' if (in quanto il Cdbl dava problemi)
in modo che il codice andasse bene per ogni tipo di utente.

Allego codice corretto:

    If ActiveSheet.Index < 3 Then
       If Replace(ActiveSheet.Range("AI31"), ".", ",") >= Replace(Mid(ActiveSheet.Range("AJ31").Value, 8), ",0", "") Then
          ActiveSheet.Range("AJ31:AK31").Interior.ColorIndex = xlNone
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 2
          ActiveSheet.Range("A1:AN34").PrintOut
          Application.EnableEvents = True
          ActiveSheet.Range("AJ31:AK31").Interior.Color = RGB(255, 255, 102)
          ActiveSheet.Range("AJ31:AK31").Font.ColorIndex = 1
          Cancel = True
       Else
          Cancel = True
          MsgBox "Impossibile stampare: Ore mensili insufficienti !!"
       End If
    End If


Grazie ancora !!
Adesso devo risolvere il topic astioso e complesso rimasto pending da fine anno scorso Wink



Edited by il_betto - 10/Gen/2018 at 14:25
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,047 seconds.