Newsgroup: it.comp.lang.visual-basic
Titolo: Stampare

Salve a tutti,
Vorrei un aiuto in merito alla stampa di una tabella suddivisa in righe e
colonne. Il mio prodotto deve individuare il programma di video scrittura
installato sul PC, e fin quì non ci sono problemi, e poi deve aprire il word
processor e scrivere la tabella.
Come posso fare?
Grazie per le risposte.
Saluti Amedeo

[Amedeo = 
circa_...@inwind.it
 in
T7p3c.61364$
FJ6.2...@twister1.libero.it
] ha scritto:

Io l'unica cosa che riesco a dire è che non c'ho capito niente, ma proprio
niente.

 proprio niente.
Ti giuro che prima di leggere il tuo post mi sono preoccupato... ero
convinto che dopo la bevuta di ieri sera mi fosse andato il cervello in
palla...
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

 Come posso fare?
mi associo alla confusione che hai generato a Lupo, ma credo di aver capito
qualcosa.
:-)))
Se il numero di righe e colonne è sempre lo stesso, ti prepari un documento
word con la tabella già formattata e impostata come vuoi. In corrispondenza
di ogni cella metti un segnalibro, poi da vb accedi al DOM di Word e popoli
la tabella con i valori.
io forzerei l'uso di un word processor, però, perchè se no la procedura
cambia da programma a programma.
Quello che scrivi per far girare il tutto con Word non va bene se poi
l'utente ha open-office, oppure Lotus AmiPro o quellocheè. Per cui, boh,
decidi il o i word-processor da supportare e poi programmi come ti ho detto
prima.
good coding!!!
-- 
Alletun
"Io lo so che accadrà. La voce sussurra nei miei pensieri di Jair, Rone,
Allanon e soprattutto nelle Mortombre.
Sussurra segreti che mi sono tenuti nascosti, nella grigia oppressione
di questo giorno e nell'oscurità caliginosa di quello che mi aspetta.
Saremo distrutti. Tutti."
Brin Ohmsford - La Canzone di Shannara - T. Brooks


Se è proprio una tabella potresti usare excel invece di word.
Di seguito metto un esempio che potrai sfruttare se vuoi.
Non è tutta roba mia, gran parte l'ho scopiazzata.
Mi scuso con l'autore che non cito solo perchè non riesco a rintracciarne il
nome.
Ciao, Sauro
Option Explicit
Public QuanteColonneExcel As Integer
Public LargColonneExcel(1 To 30) As Integer
Public TitoliExcel(1 To 30) As String
Public MatriceExcel(1 To 1000, 1 To 30) As String
Public QuanteRigheExcel As Integer
Private Sub ElaboraCompleto()
    Dim Quanti As Integer
    Dim Codici(1 To 100) As String
    Dim Des(1 To 100) As String
    Dim Giac(1 To 100) As Double
    Dim Impegn(1 To 100) As Double
    Dim Manca(1 To 100) As Double
    Dim Conta As Integer
    Dim RS As Recordset
    Set RS = PublicDB.OpenRecordset("SELECT * FROM ANAG WHERE
ANAG.A_CRIC='ARLAM' ORDER BY ANAG.A_COD")
    If RS.RecordCount > 0 Then
        RS.MoveLast
        RS.MoveFirst
        Quanti = RS.RecordCount
        For Conta = 1 To Quanti
            Codici(Conta) = RS!A_COD & ""
            Des(Conta) = RS!A_DES & ""
            If Not IsNull(RS!A_QORD) Then
                Giac(Conta) = RS!A_QORD
            End If
            If Not IsNull(RS!A_QIMP) Then
                Impegn(Conta) = RS!A_QIMP
            End If
            If Not IsNull(RS!A_QMAN) Then
                Manca(Conta) = RS!A_QMAN
            End If
            MatriceExcel(Conta, 1) = Codici(Conta)
            MatriceExcel(Conta, 2) = Des(Conta)
            MatriceExcel(Conta, 3) = Trim(Str(Giac(Conta)))
            MatriceExcel(Conta, 4) = Trim(Str(Impegn(Conta)))
            If Manca(Conta) > 0 Then
                MatriceExcel(Conta, 5) = Trim(Str(Manca(Conta)))
            Else
                MatriceExcel(Conta, 5) = " "
            End If
            RS.MoveNext
        Next Conta
        QuanteColonneExcel = 5
        TitoliExcel(1) = "Codice"
        TitoliExcel(2) = "Descrizione"
        TitoliExcel(3) = "Giacenza"
        TitoliExcel(4) = "Impegnato"
        TitoliExcel(5) = "Mancante"
        LargColonneExcel(1) = 12
        LargColonneExcel(2) = 36
        LargColonneExcel(3) = 12
        LargColonneExcel(4) = 12
        LargColonneExcel(5) = 12
        QuanteRigheExcel = Quanti
        Call InExcel("Arlam_GP")
        Unload Me
    Else
        MsgBox "Nessun record trovato in ANAG"
        Unload Me
    End If
End Sub
Private Sub InExcel(NomeFoglio As String)
    Dim contacolonne As Integer
    Dim ContaRighe As Integer
    Dim ExclApp As Object
    Dim WKS As Object
    Dim NN, KK As Integer
    On Error GoTo err
    Screen.MousePointer = vbHourglass
    'Rettifico il Nome Foglio (giusto per dormire tranquillo!):
    NomeFoglio = Replace(Replace(Replace(NomeFoglio, ":", ""), "\", ""),
"/", "")
    NomeFoglio = Replace(Replace(Replace(Replace(NomeFoglio, "?", ""), "*",
""), "[", ""), "]", "")
    'dichiaro una variabile excel.application
    Set ExclApp = GetObject(, "Excel.Application")
    '...e in caso di errore gestisco l'errore e apro excel...
Resuming:
    With ExclApp
        .Visible = True
        'Set ExclApp = GetObject("c:\documenti\arlam.xls")
        With .ActiveWorkbook
            Set WKS = .Worksheets.Add
            ' Verifico se già esiste un foglio con lo stesso nome
            For NN = 1 To .Sheets.Count
                If NomeFoglio = .Sheets(NN).Name Then
                    NomeFoglio = NomeFoglio + "-nuovo"
                End If
            Next NN
        End With
    End With
    'Assumo comunque che mi bastino 36 char...
    NomeFoglio = Left(NomeFoglio, 36)
    'Carico lo sheet con i dati
    With WKS
            For KK = 1 To QuanteColonneExcel
                .Cells(1, KK).Value = TitoliExcel(KK)
                .Cells(1, KK).Font.Bold = True
            Next KK
            For ContaRighe = 1 To QuanteRigheExcel
                For contacolonne = 1 To QuanteColonneExcel
                    .Cells(ContaRighe + 1, contacolonne).Value = _
                                MatriceExcel(ContaRighe, contacolonne)
                Next contacolonne
            Next ContaRighe
            .Cells(2, 1).Activate
            .Columns.AutoFit
            .Name = NomeFoglio
    End With
    'WKS.SaveAS "C:\" & NomeFoglio
    Set ExclApp = Nothing
    Set WKS = Nothing
    Screen.MousePointer = 0
    Exit Sub
err:
    If err = 429 Then
        'Se Excel non è aperto
        err.Clear
        Set ExclApp = CreateObject("Excel.Application")
        ExclApp.Workbooks.Add
        Resume Resuming
    Else
        With err
            MsgBox Trim(Str(.Number)) & ":" & vbCrLf & .Description,
vbOKOnly + vbCritical, "Errore"
        End With
    End If
    Screen.MousePointer = 0
End Sub