Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Far scegliere all'utente dove salvare...

  1. #1
    PeppeDM non è in linea Novello
    Salve, ecco i miei problemi su una macro in word che fa una stampa unione.

    1 - Sono completamente ignorante quindi ho 'creato' la macro tra registrazioni e ricerche; detto ciò mi ritrovo che la macro salva i file word, prodotto appunto della stampa unione, nella catella Documenti di Windows mentre vorrei che fosse l'utente a scegliere, attraverso una finestra di dialogo, la cartella di salvataggio.

    Quote Originariamente inviato da Domanda da porre in altro thread
    2 - La stampa unione avviene compilando files Word che attingono dati da un file Excel. Da excel ho una macro che mi fa varie operazioni di formule e copia-incolla e che alla fine 'lancia' la sopracitata macro in Word che, però, non parte poichè c'è ancora Excel aperto quindi vorrei inserire nella macro di Word 2 cose: la chiusura di Excel e poi un'attesa di x secondi prima di andare avanti con le operazioni della macro stessa.
    Ultima modifica di TheTruster; 05-02-2021 13:08 

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da PeppeDM Visualizza il messaggio
    Salve, ecco i miei problemi su una macro in word che fa una stampa unione.

    1 - Sono completamente ignorante quindi ho 'creato' la macro tra registrazioni e ricerche; detto ciò mi ritrovo che la macro salva i file word, prodotto appunto della stampa unione, nella catella Documenti di Windows mentre vorrei che fosse l'utente a scegliere, attraverso una finestra di dialogo, la cartella di salvataggio.

    2 - La stampa unione avviene compilando files Word che attingono dati da un file Excel. Da excel ho una macro che mi fa varie operazioni di formule e copia-incolla e che alla fine 'lancia' la sopracitata macro in Word che, però, non parte poichè c'è ancora Excel aperto quindi vorrei inserire nella macro di Word 2 cose: la chiusura di Excel e poi un'attesa di x secondi prima di andare avanti con le operazioni della macro stessa.
    Ciao PeppeDM,
    Come da regolamento, si deve affrontare un solo argomento per ogni thread, quindi per la seconda domanda, apri pure un'altra discussione lasciando questa solo per la prima.

    Riguardo il tuo problema, guarda l'utilizzo dell'oggetto FileDialog

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    PeppeDM non è in linea Novello
    Non so come inserire le istruzioni del filedialog nella mia macro... che è la seguente
    Public Sub Esegui()
    On Error GoTo ErrH
    Dim objWdMailMerge  As Word.MailMerge
    Dim lngRecNum       As Long
    Dim strPath         As String
    Dim strFilename     As String
     
        strPath = activedocument.path
        
         Set objWdMailMerge = ActiveDocument.MailMerge
        With objWdMailMerge
          .Destination = wdSendToNewDocument
          With .DataSource
            .ActiveRecord = wdLastRecord
            lngRecNum = .ActiveRecord
            .ActiveRecord = wdFirstRecord
            Do
              .FirstRecord = .ActiveRecord
              .LastRecord = .ActiveRecord
              strFilename = .DataFields("NoName").Value & " " & .DataFields("nr1").Value & "_" & .DataFields("Anno1").Value
              If Len(strFilename) Then
                strFilename = strFilename
                objWdMailMerge.Execute
                With ActiveDocument
                  .SaveAs strFilename, wdFormatdoc, AddToRecentFiles:=False
                  .Saved = True
                  .Close
                End With
              End If
              If .ActiveRecord = lngRecNum Then Exit Do
              .ActiveRecord = wdNextRecord
            Loop
          End With
        End With
       
    ActiveDocument.Close _
     SaveChanges:=wdPromptToSaveChanges, _
     OriginalFormat:=wdPromptUser
    oword.Quit
    
    ExitProc:
        Application.ScreenUpdating = False
        Set objWdMailMerge = Nothing
        Exit Sub
       
    ErrH:
        MsgBox Err.Description
        Resume ExitProc
       
    
    End Sub
    

  4. #4
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da PeppeDM Visualizza il messaggio
    Non so come inserire le istruzioni del filedialog nella mia macro...
    Sinceramente vedo un po' di problemi nel tuo codice.

    Prima assegni questa variabile:

    strPath = activedocument.path
    
    ma poi non la usi, quindi dove viene salvato il file che produci?

    poi trovo queste righe:

              strFilename = .DataFields("NoName").Value & " " & .DataFields("nr1").Value & "_" & .DataFields("Anno1").Value
              If Len(strFilename) Then
                strFilename = strFilename    <---------
                objWdMailMerge.Execute
                With ActiveDocument
                  .SaveAs strFilename, wdFormatdoc, AddToRecentFiles:=False    <---------
                  .Saved = True
                  .Close
                End With
    
    Nelle righe con la freccia, perchè assegni una variabile a se stessa, e dopo salvi il file senza utilizzare la variabile strPath che contiene il percorso?

    Per tornare al problema iniziale, il codice per la gestione del FileDialog, va inserito nel punto in cui vuoi che venga determinato il percorso in cui salvare il file... ma il tuo codice appare piuttosto confusionario su questo punto.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  5. #5
    PeppeDM non è in linea Novello
    Grazie per le celeri risposte innanzitutto.
    Come detto in apertura non ho alcuna conoscenza del codice e sto cercando solo di automatizzare questi file per semplificare il lavoro a mia moglie.
    Hai sicuramente ragione sul fatto che i lcodice è confuso poichè, come detto, è frutto di collage e registrazioni quindi dirti che non so quasi come faccia a funzionare è molto vicino alla realtà.
    Qualcosa la intuisco ormai e ho capito che strFilename = strFilename non significa niente...
    Ho pensato (pensato=intuito leggendo qua e la in rete) che scrivere strpath = Activedocument.path bastasse ma la macro porta a termine con successo la stampa unione solo che salva i file dove le pare, nel mio caso in Documenti.
    Ti sarei grato se potessi "mettere a posto" la macro che ho postato così da rendere onore al codice, che mi affascina e che sicuramente approfondirò, e renderla quindi meno confusa.

  6. #6
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Su questo forum adottiamo una politica stringente sul fornire codice pronto.
    Ogni domanda deve presupporre, da parte di chi la pone, un certo impegno nel comprendere i suggerimenti ottenuti e lavorare con le proprie forze per raggiungere la soluzione.

    Nel link che ti ho fornito prima è riportato tutto il codice necessario per far funzionare il FileDialog.

    Riguardo il punto in cui inserirlo, come ti dicevo prima, devi analizzare il codice e vedere dove viene impostato il nome per il salvataggio del file. Devi inserirlo prima, cosicchè il nome effettivo venga preso dalle proprietà del FileDialog.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. dove salvare la recentlist
    Da SebastianoFloridia nel forum C#
    Risposte: 1
    Ultimo Post: 28-12-2018, 14:58
  2. Salvare delle impostazioni utente
    Da Cereal Killer nel forum Visual Basic 6
    Risposte: 11
    Ultimo Post: 13-02-2013, 13:31
  3. [VBA] far scegliere un range all'utente
    Da Dave83 nel forum Microsoft Word
    Risposte: 8
    Ultimo Post: 21-01-2011, 11:59
  4. Salvare controlli Utente e controlli OCX
    Da Cis nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 02-07-2006, 18:15
  5. Risposte: 4
    Ultimo Post: 22-04-2006, 17:43