| | Post: 439 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
02/06/2018 21:24 | |
Ciao a tutti.
Ho un modulo precompilato (un cartoncino).
In questo ci sono dei dati già scritti (celle celesti)
Devo stampare in questo solo le celle in giallo
e non le celle in celeste e tutte le righe nere
che ci sono nel foglio excel allegato.
C'è qualche opzione di stampa o serve una macro?
Un grazie in anticipo.
john ---------------
excel 2007 |
|
| | Post: 439 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
02/06/2018 22:16 | |
Ciao,
ho rintracciato in rete questa macro:
Sub stampa()
Dim avviso As String
Dim xIndex As Long
Application.ScreenUpdating = False
avviso = MsgBox("Sign. " & Environ("UserName") & " stampo tutto il foglio?....", _
vbQuestion + vbYesNo + vbDefaultButton2, "AVVISO")
If avviso = 7 Then Exit Sub
ActiveSheet.Unprotect "123456"
With ActiveSheet
xIndex = .Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.ColorIndex
.Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.Color = vbWhite
.PrintPreview
.Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.ColorIndex = xIndex
End With
ActiveSheet.Protect "123456"
[B7].Select
End Sub
che nasconde con il colore bianco le celle da non stampare, non so
come modificare per nascondere anche in bordi delle celle.
Allego il nuovo file.
john ---------------
excel 2007 |
| | Post: 440 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
02/06/2018 22:35 | |
Ho modificato così:
Sub stampa()
Dim avviso As String
Dim xIndex As Long
Application.ScreenUpdating = False
avviso = MsgBox("Sign. " & Environ("UserName") & " stampo tutto il foglio?....", _
vbQuestion + vbYesNo + vbDefaultButton2, "AVVISO")
If avviso = 7 Then Exit Sub
ActiveSheet.Unprotect "123456"
With ActiveSheet
xIndex = .Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.ColorIndex
.Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.Color = vbWhite
.Range("A1:D25").Borders(xlDiagonalDown).LineStyle = xlNone
.Range("A1:D25").Borders(xlDiagonalUp).LineStyle = xlNone
.Range("A1:D25").Borders(xlEdgeLeft).LineStyle = xlNone
.Range("A1:D25").Borders(xlEdgeTop).LineStyle = xlNone
.Range("A1:D25").Borders(xlEdgeBottom).LineStyle = xlNone
.Range("A1:D25").Borders(xlEdgeRight).LineStyle = xlNone
.Range("A1:D25").Borders(xlInsideVertical).LineStyle = xlNone
.Range("A1:D25").Borders(xlInsideHorizontal).LineStyle = xlNone
.Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Interior.Color = xlNone
.PrintPreview
.Range("A1,C1,A2,A3,A21,C21,A22,C22,A23,C23,A24,C24,A25,C25").Font.ColorIndex = xIndex
End With
End Sub
solo che dopo aver chiuso l'anteprima i colori e i bordi nel foglio non ritornano
john ---------------
excel 2007 |
| | Post: 696 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Senior | Excel 2016-32bit Win11 | | OFFLINE |
|
02/06/2018 23:34 | |
Invece di modificare il foglio origine prima di avviare la stampa provvedi a farne una copia che andrai a modificare / stampare / ed in fine eliminare.
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 441 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
02/06/2018 23:40 | |
Ciao rollis,
questo non lo so fare.
john ---------------
excel 2007 |
| | Post: 5.406 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
03/06/2018 08:15 | |
Ciao non ce bisogno di macro tanto complicate, basta inserirci sopra un immagine e visualizzarla o nascondere alla necessità, questa la stampa risultante, vista in anteprima stampa
screen shot windows
queste le due macro che ho usato
Option Explicit
Public tt As Boolean
Sub vedi()
Dim x
If tt = False Then
For x = 1 To 4
ActiveSheet.Shapes.Range(Array("Rectangle " & x)).Visible = False
Next x
tt = True
Else
For x = 1 To 4
ActiveSheet.Shapes.Range(Array("Rectangle " & x)).Visible = True
Next x
tt = False
End If
End Sub
Sub StampaT()
Dim Risp, r
Risp = MsgBox(" Stampante = SI Video = NO", vbYesNoCancel, "Dove inviare la stampa")
If Risp = 2 Then GoTo 1
ActiveSheet.PageSetup.PrintArea = "$A$1:$D$25"
If Risp = 7 Then
ActiveWindow.SelectedSheets.PrintPreview
ElseIf Risp = 6 Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
1 Range("A1").Select
End Sub
con le icone l'occhio vedi e nascondi e la stampante o la vedi a video o la mandi alla stampante.
Ciao By Sal
[Modificato da by sal 03/06/2018 08:16] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 442 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
03/06/2018 08:48 | |
Ciao bysal,
la tua macro "occhio" mi dava errore:
errore run time 1004
impossibile trovare l'elemento corrispondente al nome specificato
perchè era inserito il nome in inglese rectangle che ho sostituito con rettangolo.
Per il resto funziona.
Un saluto e tante grazie.
john
---------------
excel 2007 |
|
|