Discussione:
anteprima di stampa da form vba
(troppo vecchio per rispondere)
kar
2008-01-16 22:38:26 UTC
Permalink
Salve a tutti.
Utilizzando excel 2003 SP1, con una macro genero un foglio3 con dei dati che
dovrei stampare.
In un commandbutton presente in un form ho inserito il codice prodotto dal
registratore di macro :
Sub anteprima_foglio3()

Sheets("Foglio3").Select
Range("A1:G200").Select
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.787401575)
.RightMargin = Application.InchesToPoints(0.787401575)
.TopMargin = Application.InchesToPoints(0.984251969)
.BottomMargin = Application.InchesToPoints(0.984251969)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0.78740157480315)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.984251968503937)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintPreview
End Sub


o anche solamente

ActiveWindow.SelectedSheets.PrintPreview

ma quando clicco sul pulsante si blocca tutto e devo terminare con
CTRL+ALT+CANC.

Ovviamente, se il pulsante lo metto su di un foglio e non all'interno di un
form, tutto funziona.
Ma come si fa , allora, a fare stampare un foglio ( e farne l'anteprima ) da
un programma VBA ?
Grazie
Mauro Gamberini
2008-01-17 08:46:08 UTC
Permalink
Post by kar
o anche solamente
ActiveWindow.SelectedSheets.PrintPreview
ma quando clicco sul pulsante si blocca tutto e devo terminare con
CTRL+ALT+CANC.
*Richiama* la tua UserForm in questo modo:

Public Sub m()
UserForm1.Show vbModeless
End Sub

(modo che ti consente di spostare il focus
dalla UserForm agli oggetti sottostanti
la UserForm)

Quindi, questo il codice del pulsante:

Private Sub CommandButton1_Click()
With Worksheets("Foglio3")
.Activate
.PrintPreview
End With
End Sub

Dai un'occhiatina a:
Metodo Show
nella guida del vba di Excel
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
kar
2008-01-17 18:29:38 UTC
Permalink
Post by Mauro Gamberini
Public Sub m()
UserForm1.Show vbModeless
End Sub
Mio codice :
Private Sub Workbook_Open()
UserForm1.Show vbModeless
End Sub
Post by Mauro Gamberini
(modo che ti consente di spostare il focus
dalla UserForm agli oggetti sottostanti
la UserForm)
in effetti mi permette questa operazione ..
Post by Mauro Gamberini
Private Sub CommandButton1_Click()
With Worksheets("Foglio3")
.Activate
.PrintPreview
End With
End Sub
Fatto. Ma il problema resta sempre lo stesso.
Cambia qualcosa se il command da cui lancio il preview e' collocato in un
controllo page ?
Grazie
Mauro Gamberini
2008-01-17 20:08:53 UTC
Permalink
Post by kar
Fatto. Ma il problema resta sempre lo stesso.
L'unico problema(che non è un problema)
è che devo avere qualcosa da stampare
sul Foglio3.
Post by kar
Cambia qualcosa se il command da cui lancio il preview e' collocato in un
controllo page ?
A me funziona tranquillamente
anche mettendo il codice in una CommadButtonon
posizionato in un controllo MultiPage.

Stai *nascondendo* qualcosa?
Non capisco io?
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
kar
2008-01-17 20:46:16 UTC
Permalink
Post by Mauro Gamberini
L'unico problema(che non è un problema)
è che devo avere qualcosa da stampare
sul Foglio3.
E ben pieno ...
Post by Mauro Gamberini
Post by kar
Cambia qualcosa se il command da cui lancio il preview e' collocato in un
controllo page ?
A me funziona tranquillamente
anche mettendo il codice in una CommadButtonon
posizionato in un controllo MultiPage.
Stai *nascondendo* qualcosa?
No assolutamente (in tutti i sensi .... )
Quando apro il foglio excel nell'evento open lancio il form cosi' come tu mi
hai suggerito.
Il programma si compone di un unico userform1 in cui ci sono dei command che
fungono da menu e un controllo multipage le cui pagine vengono selezionate
in base alla scelta effettuata. All'interno di una queste page ( e
preciamente alla n. 8 ) c'e' ci sono due listbox , dei textbox e dei
command.
In seguito ad una elaborazione aggiorno i listbox e contemporaneamente il
foglio3 a partire dalla linea 8 per 6 colonne, quindi rendo "enable" il
command43 che dovrebbe fare il preview .... ma !!

Ho fatto , inoltre, la prova che mi hai suggerito tu creando un nuovo file
in cui ho inserito nel foglio3 dei dati ecc ecc ed in effetti funziona anche
a me !?!?!

Non so proprio darmi una spiegazione.
Grazie comunque.
Ciao
kar

Loading...