Sviluppare funzionalita su Microsoft Office con VBA Macro vs PDF vs sovrascrittura

Login Registrati
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #22267 Score: 0 | Risposta

    Simone

      Ciao a tutti,

      so che probabilmente è una questione già affrontata più volte, ma ho già letto decine di articoli ma non riesco a risolvere la situazione.

      In pratica ho un file excel, di cui voglio fare la stampa pdf con nome e percorso di salvataggio presi dai dati nelle celle (B34 è il nome, B55 il percorso). E fin qui tutto bene. Ma vorrei che ci fosse un controllo dell'esistenza del file al momento del salvataggio del pdf, per evitare di sovrascrivere per errore dei documenti.. ma questo non riesco a farlo funzionare..!

      Poi ci sarebbe una chicca che vorrei aggiungere, cioè la creazione delle cartelle del percorso (sono semplicemente anno e mese) nel caso non esistessero.. ma questo sarebbe solamente la ciliegina sulla torta... l'importante è evitare la sovrascrittura.. Se qualcuno mi può aiutare.. GRAZIE! 

       

      Sub SaveAsPDF()
      
      Dim myPath As String
      Dim myFile As String
      Dim Ans As Integer
      myFile = Range("B34").Value
      myPath = ActiveSheet.Range("b55").Value
      
              If Dir(myPath & myFile) <> "" Then
              Ans = MsgBox("Il file esiste già. Sostituire?", vbQuestion + vbYesNo, "File già presente!")
              If Ans = vbNo Then Exit Sub
              End If
          
          ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPath & myFile, _
              Quality:=xlQualityStandard, IncludeDocProperties:=True, _
              IgnorePrintAreas:=False, OpenAfterPublish:=True
                  
      End Sub
      #22274 Score: 0 | Risposta

      DeletedUser
      Bloccato
        13 pts

        Simone ha scritto:

        ma questo non riesco a farlo funzionare..!

        Perché? Cosa avviene? Scoppia il pc ? Va in crash? Si scioglie il disco? Si cancella il file?
        Questa stupida mania di scrivere sui Forum: "Non funziona" (e niente altro) non la capisco proprio !!!
        Come se scrivere così facesse capire TUTTO a chi non sa NULLA del tuo file.

        Il codice mi sembra corretto, dato che usi DIR() per verificare il percorso.
        Ma se non spiegate in dettaglio cosa succede o cosa non succede fate solo perdere tempo.

        Per quanto riguarda la creazione del percorso (se non esiste) puoi  usare questa ottima funzione:

        https://www.forumexcel.it/forum/threads/creare-un-percorso-completo-se-non-esiste.25532/

         

        #22280 Score: 0 | Risposta

        Simone

          ..Ciao!..

          Non funziona nel senso che facendo girare la macro col file salvato e presente nella directory, non mi compare la msgbox e la macro prosegue sovrascrivendo il file (lo vedo dal minuto del salvataggio).

          Sembra che la funzione DIR non lavori bene, non so se sia la path con sintassi sbagliata [in b55 c'è C:PROVA\2019\12_dicembre\], ma nel caso credo non dovrebbe funzionare nemmeno il salvataggio..

          Ho provato anche ad invertire la funzione IF, ma senza successo...

          Grazie per l'aiuto, intanto provo ad implementare cosa mi hai già suggerito!

           

          #22285 Score: 0 | Risposta

          patel
          Moderatore
            50 pts

            Simone ha scritto:

            non so se sia la path con sintassi sbagliata [in b55 c'è C:PROVA\2019\12_dicembre\],

            infatti è sbagliata, devi scrivere C:\PROVA

             

            #22289 Score: 0 | Risposta

            DeletedUser
            Bloccato
              13 pts

              Simone ha scritto:

              Sembra che la funzione DIR non lavori bene, non so se sia la path con sintassi sbagliata [in b55 c'è C:PROVA\2019\12_dicembre\]

              Sulla funzione Dir() non esiste alcun dubbio: funziona come si deve!

              Sei tu che ha sbagliato a scrivere il percorso, come ti ha fatto notare Patel.

              SUGGERIMENTO
              Queste cose accadono finché non si impara a fare il DEBUG del proprio codice.
              Facendo il DEBUG il problema l'avresti scoperto, capito e corretto da solo, senza bisogno di aiuto.
              E' così che si impara a programmare.  

              #22318 Score: 0 | Risposta

              Simone

                Giusto per chiudere, oltre al percorso a cui mancava lo \ iniziale, mi sembra di aver risolto aggiungendo anche & ".pdf" alla funzione Dir(). Così il controllo funziona.

                If Dir(myPath & myFile & ".pdf") <> "" Then
                Ans = MsgBox("Il file esiste già. Sostituire?", vbQuestion + vbYesNo, "File già presente!")
                If Ans = vbNo Then Exit Sub
                End If

                buona giornata,

                S.

              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Macro vs PDF vs sovrascrittura
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: