PDA

Visualizza la versione completa : [VB] Stampare con Excel


??
28-06-2001, 16:45
MI SAPETE DIRE QUAL'è IL CODICE CHE ALLINEA UN TESTO AL CENTRO, PER LA STAMPA IN visualbasic??

GRAZIE CIAO.

massimiliano.costantini
29-06-2001, 08:59
Nei primi tempi in cui programmavo utilizzavo un RichTextBox e lo riempivo con delle stringhe ed alla fine stampavo il contenuto; c'erano però dei problemi a mescolare immagini e parole (???) quindi ho dovuto abbandonare quel metodo. Così con un po' di fatica ma molta soddisfazione sono passato all'utilizzo dell'ActiveX di Word. In pratica crei con VB il documento di stampa e per gli allineamenti puoi usare le tabelle di Word (il tutto con Codice VB); se hai problemi scrivimi.
Ora mi pare di capire che stai utilizzando l'oggetto printer: un po' menoso per fare stampe, anche se molto efficiente. Per formattare le stringhe potresti costruirti a mano ogni riga di stampa: la parola 'Ciao', ad esempio, la puoi stampare con dei caratteri spazio davanti, anche se poi, a causa dei caratteri proporzionali, le righe successive rimarrebbero leggermente disallineate.
Ultimo consiglio: guarda se riesci a passare all'ActiveX di Word

zampa28
24-03-2002, 15:22
come uso l'activeX di word o meglio di excel?

l'oggetto printer mi ha stufato:) :(

debbelandia
24-03-2002, 15:37
in pratica sfrutti le dll del proramma word o execel , tieni presente che se tu non ce lo hai installato non funziona!!!!

zampa28
24-03-2002, 16:54
ok ho questo codice:



Dim obAppExcel As Object 'oggetto application
Dim obFoglioLavoro As Object 'oggetto worksheet
Dim blnInEsecuzione As Boolean 'se l'oggetto excel è in esecuzione

'intercetta gli errori
On Error Resume Next

'imposta il riferimento all'applicazione Excel
Set obAppExcel = GetObject(, "Excel.application")
If Err.Number <> 0 Then
Set obAppExcel = CreateObject("Excel.application")
blnInEsecuzione = False 'excel non era già in esecuzione
Else
blnInEsecuzione = True
End If

'inserisce una nuova cartella di lavoro
obAppExcel.Workbooks.Add

'imposta il riferimento sul foglio attivo
Set obFoglioLavoro = obAppExcel.ActiveSheet

'immette valori in celle del foglio attivo
obFoglioLavoro.Cells(1, 1).Value = "vendite"
obFoglioLavoro.Cells(1, 2).Value = "mese"
obFoglioLavoro.Cells(2, 1).Value = 21913.44
obFoglioLavoro.Cells(2, 2).Value = "aprile"

'non esce se excel era già in esecuzione
obAppExcel.ActiveWorkbook.Close = False
If Not (blnInEsecuzione) Then 'se non era già in esecuzione
obAppExcel.Quit 'allora esce da excel
End If



domande:

-come apro un documento excel già esistente?

-come stampo questo documento

-come posso fare per evitare che mi chieda di salvare


Wild, ans e tutti gli altri vi aspetto!:)

zampa28
24-03-2002, 20:58
up

zampa28
25-03-2002, 19:14
up

zampa28
25-03-2002, 22:29
Vabbé Zampa risolviteli da solo i problemi;)




Option Explicit
'variabile oggetto che contiene il riferimento alla cartella di lavoro di Excel
Dim FileExcel As Workbook
'variabile oggetto che contiene il riferimento al foglio di lavoro di Excel
Dim FoglioExcel As Worksheet
__________________________________________________ _________________

Private Sub CmdStampa_Click()

'stampa su excel
Set FileExcel = Excel.Workbooks.Open(App.Path & "\pippo.xls")
'imposta il riferimento sul foglio attivo
Set FoglioExcel = FileExcel.Worksheets("pluto")
'immette valori in celle del foglio attivo
FoglioExcel.Cells(x, y).Value = "ciccio"
'stampa
FoglioExcel.PrintOut
'chiude e non salva
FileExcel.Close (False) 'per salvare impostare true
Set FileExcel = Nothing 'libero l'istanza

End Sub



:ciauz:

zampa28
25-03-2002, 22:31
PS Wild se puoi cambia il titolo in:

[VB]stampare con Excel

by Zampa

;)

vonkranz
26-03-2002, 09:07
Addirittura utilizzare Excel per centrare un testo in un foglio? mi sembra uno spreco inutile di risorse.
Con questo codice, centri un testo in mezzo ad una pagina


Dim a as sting
dim b as integer
a = "Testo Centrato"
b = printer.TextWidth(a)
printer.CurrentX = (printer.Width - b) \ 2
printer.Print a


Fara' al caso vostro?
Ciao.

Loading