Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VBA] Formattare report su *.doc esistente

    Di nuovo un buongiorno a tutti voi,
    Ho una serie di dati, in una maschera, che vorrei inviare ad un file *.doc già predisposto.

    Avevo intenzione di farlo con "DoCmd.OutputTo"
    Il problema è che non so se si possa decidere quali campi della maschera devono essere collocati in una certa posizione... o meglio credo che si possa fare, ma non ho la più pallida idea di come operare.

    Potete darmi qualche indicazione? Grazie
    Se sei incerto... Tieni aperto!!!

  2. #2
    Ciao ,
    ho fatto qualcosa di simile ma il report l'avevo realizzato come formato xls . Non so se puo' interessarti la cosa .
    In formato .doc non ho mai provato .
    Scusa se forse ti ho solo disturbato .
    Cordiali saluti
    Red Roma

  3. #3
    No no... mi interessa. Come hai fatto? Probabilmente ci sono delle similitudini importantissime che mi tornerebbero utili. In fondo *.xls o *.doc non dovrebbe fare molta differenza.

    Hai usato DoCmd.OutputTo...?
    Se sei incerto... Tieni aperto!!!

  4. #4
    Ciao ,
    ho costruito la mia applicazione in VBA x Word e stampavo un report Excel .

    Il codice che ho utilizzato è il seguente :

    codice:
    Dim Xl As Excel.Application  'dichiaro un nuova applicazione excel
    Dim XlSh As Excel.Sheets     'dichiaro il foglio excel
    Set Xl = New Excel.Application ' apro l'applicazione excel
    Xl.Visible = False           ' non visualizzo excel
    Xl.Workbooks.Open              FileName:="C:\utility\Richieste\Report\Stampa_Richiesta.xls" ' apro il foglio che utilizzo per stampare il report 
    ' ============================================================================= '
    ' Aggiorno i dati nel report excel prima di procedere alla stampa               '
    ' ============================================================================= '
    With Stp_Richiesta ' stp_richiesta è un type che contiene informazioni
        Xl.Range("C7").Value = .Stp_Id_Richiesta
        Xl.Range("I7").Value = .Stp_Dt_Richiesta
        Xl.Range("C9").Value = Trim(.Stp_Ufficio)
        Xl.Range("C10").Value = Trim(.Stp_Cognome) & Space(2) & Trim(.Stp_Nome)
        Xl.Range("C13").Value = Trim(.Stp_Descrizione)
        Xl.Range("D34").Value = .Stp_Dt_Inizio_Lav
        Xl.Range("I34").Value = .Stp_Dt_Fine_Lav
        Xl.Range("D36").Value = .Stp_Dt_Consegna
        Xl.Range("D38").Value = Trim(.Stp_Sviluppatore)
        Xl.Range("D40").Value = Trim(.Stp_Linguaggio)
        Xl.Range("D43").Value = Trim(.Stp_Dir_Save_Pgm)
        Xl.Range("D46").Value = Trim(.Stp_Pgm)
        Xl.Range("D49").Value = Trim(.Stp_Dir_Save_Dati)
        Xl.Range("D51").Value = Trim(.Stp_Dati)
    End With
    Xl.Sheets.PrintOut ' stampo il foglio aggiornato 
    Xl.ActiveWindow.Close (0) ' chiudo la finestra excel attiva
    Xl.Quit                   ' chiudo excel
    Set Xl = Nothing
    End Sub

    Se proprio ti dovesse risultare utili fammelo sapere al max ti posto il progetto !
    Cordiali saluti
    Red Roma

  5. #5
    Senza dubbio il codice è molto chiaro! :sexpulp:

    Traggo quindi delle conclusioni in merito, dato che quando vai ad aggiornare i dati in Excel, ogni oggetto è stato indirizzato in una particolare posizione, tanto è vero che ne definisci le singole celle di destinazione.

    Mi chiedo come dovrei fare se la destinazione è un documento Word... ma a questo punto non escludo di operare anche con Excel.
    Mi interesserebbe approfondire... c'è qualche altra riga di codice di cui pensi valga la pena prendere visione o basta questo?

    Intanto grazie davvero!
    Se sei incerto... Tieni aperto!!!

  6. #6
    Ciao ,
    scusami ma in questo momento sono veramente un po' preso devo fare alcune modifiche ad un gestionale .
    Se non riesco stasera , domattina controllo se sono presenti altre righe di codice che potrebbero esserti utili .
    Chiedo scusa ma ora devo assolutamente terminare quello che sto facendo .
    A + tardi e spero di esserti stato utile .
    Cordiali saluti
    Red Roma

  7. #7
    Nessun problema! Postalo pure quando avrai tempo. Intanto mi stavo interrogando su come avevi fatto a dichiarare la variabile Excel.Application :master:

    Stavo cercando di fare il percorso a ritroso per riuscire ad individuare tutte le variabili che hai definito... ma mi manca qualcosa...
    Se sei incerto... Tieni aperto!!!

  8. #8
    Scusa mi sono dimenticato di dirti che devi aggiungere nei riferimenti del progetto Microsoft Excel 8.0 o 9.0
    Ciao
    Cordiali saluti
    Red Roma

  9. #9
    Sì... ci sono! :mavieni:

    Però mi interesserebbe dare un'occhiata a come hai gestito il type stp_richiesta e le sue variabili
    Se sei incerto... Tieni aperto!!!

  10. #10
    Ciao
    scusa il ritardo ma anche oggi è una giornata caotica .
    Per quanto riguarda il type l'ho definito all'interno di un modulo ed ho dichiarato una variabile come il tipo appena definito .
    Come segue :
    [CODE]
    Public Type Stampa_Richiesta
    Stp_Id_Richiesta As Long
    Stp_Dt_Richiesta As String * 8
    Stp_Ufficio As String * 50
    Stp_Cognome As String * 50
    Stp_Nome As String * 50
    Stp_Descrizione As String * 500
    Stp_Dt_Inizio_Lav As String * 8
    Stp_Dt_Fine_Lav As String * 8
    Stp_Dt_Consegna As String * 8
    Stp_Sviluppatore As String * 100
    Stp_Linguaggio As String * 200
    Stp_Dir_Save_Pgm As String * 200
    Stp_Pgm As String * 100
    Stp_Dir_Save_Dati As String * 200
    Stp_Dati As String * 100
    End Type

    Public Stp_Richiesta As Stampa_Richiesta
    [\CODE]

    Dopodichè estraggo i dati di mio interesse dal database ed associo il valore ai campi di stampa come segue :
    [CODE]
    Dim RsStampa As Recordset
    Dim SqlString As String
    SqlString = ""
    SqlString = SqlString & " select * from richieste,personale,uffici "
    SqlString = SqlString & " where id_richiesta = " & VId_Richiesta & " "
    SqlString = SqlString & " and richieste.id_personale = personale.id_personale "
    SqlString = SqlString & " and personale.id_ufficio = uffici.id_ufficio "

    Set RsStampa = Db.OpenRecordset(SqlString)
    If Not RsStampa.EOF Then
    Stp_Richiesta.Stp_Id_Richiesta = VId_Richiesta
    Stp_Richiesta.Stp_Ufficio = RsStampa!ufficio
    Stp_Richiesta.Stp_Cognome = RsStampa!cognome
    Stp_Richiesta.Stp_Nome = RsStampa!nome
    Stp_Richiesta.Stp_Descrizione = RsStampa!descrizione
    Stp_Richiesta.Stp_Dt_Richiesta = RsStampa!data_richiesta
    End If
    RsStampa.Close
    [\CODE]

    Sto preparando il file da postare ... calcola solo che il progetto non è ancora ultimato ...
    Cordiali saluti
    Red Roma

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.