Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Evitare finestra di salvataggio per non premere invio

Ultimo Aggiornamento: 29/06/2018 10:05
Post: 3
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
28/06/2018 09:47

RISOLTO: Macro - Evitare finestra di salvataggio per premere invio
Ciao a tutti,
mi spiego bene:

Ho una Macro che con il ciclo For mi salva un'area di selezione in un percorso prestabilito.
Il problema arriva adesso: io vorrei evitare che si debba aprire la finestra di salvataggio per dover premere ogni volta il tasto "invio".
E' possibile questa cosa?
Grazie :D

Sub SalvaPDFReportConCiclo()

    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim nome As String
    Dim i As Integer
    Dim selezione As Range
    Dim percorso As String
        
    On Error GoTo errHandler
     
    Set ws = Worksheets("Report")
    Set selezione = ws.Range("A1:R225")
     
    percorso = Worksheets("Tabelle dati").Range("C12").Value

 For i = 3 To 541 Step 1
     
    Worksheets("Tabelle dati").Range("C8") = Worksheets("Elenco Aziende").Range("B" & i)

    Worksheets("Tabelle dati").Select
    nome = Range("C1").Value & " " & "-" & " " & Range("C8").Value     
     
    'apre la finestra di dialogo per il salvataggio dei file
    'la cartella di default è la stessa della cartella di excel
    strFile = Replace(nome, " ", " ") _
           '  & "_" _
           ' & Format(Now(), "yyyy-mm-dd_hh-mm") _
            & ".pdf"
    strFile = percorso & strFile
     
    myFile = Application.GetSaveAsFilename _
            (InitialFileName:=strFile, _
              FileFilter:="PDF Files (*.pdf), *.pdf", _
              Title:="Seleziona la cartella e inserisci il nome del file da salvare")
     
    If myFile <> False Then
            selezione.ExportAsFixedFormat _
              Type:=xlTypePDF, _
              Filename:=myFile, _
              Quality:=xlQualityStandard, _
              IncludeDocProperties:=True, _
              IgnorePrintAreas:=True, _
              OpenAfterPublish:=False
     
    End If

Next i

exitHandler:
            Exit Sub
errHandler:
            MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler
    
End Sub
[Modificato da Galli93 29/06/2018 10:06]
Post: 3.564
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
28/06/2018 14:58

Onestamente, non capisco cosa vuoi dire...Posso solo leggere il VBA

>>>For i = 3 To 541 Step 1, se mi spieghi cosa c'entra quel Step 1 ???
In teoria salvi 538 file PDF. OK
>>>myFile = Application.GetSaveAsFilename....
Hai scritto nel codice che desideri "aprire la finestrella" per scegliere dove salvare ed inserirci il nome

Nel caso Tu conosci già dove salvare e il nome da dargli. Il VBA esegue e Tu non vedresti nessuna finestrella
[Modificato da raffaele1953 28/06/2018 14:59]
Excel 2013
Post: 3
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
28/06/2018 15:38

La macro con il ciclo For è giusta così, parte dal valore che trova nella cella "Bi" con i che va da 3 a 541. Ne salva così tanti perché ogni volta cambia riga e quindi prende dei dati diversi.

A parte questo, ho capito che Application.GetSaveAsFilename è sbagliato, ma non saprei cos'altro mettere.

Per questo sto chiedendo aiuto ;)
Post: 3.566
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
28/06/2018 16:43

>>>Per questo sto chiedendo aiuto
Giusto, però se non alleghi un files vado solo a naso.
Sembra che dove devi salvare sia scritto in Worksheets("Tabelle dati").Range("C12").Value... Tipo C:\Excel-PDF c'è pure il \ finale?
>>>nome = Range("C1").Value & " " & "-" & " " & Range("C8").Value
Già col nome sono fermo (non può essere lo stesso per tutti i file), comunque se hai il nome + il percorso
vb
        With .Worksheets("Modello")
            sNome = i ' salverà come ex 3.pdf a seguire
            .ExportAsFixedFormat _
                 Type:=xlTypePDF, _
                 Filename:=sPath & "\" & sNome & ".pdf", _
                 Quality:=xlQualityStandard, _
                 IncludeDocProperties:=True, _
                 IgnorePrintAreas:=False, _
                 OpenAfterPublish:=False
        End With
[Modificato da raffaele1953 28/06/2018 16:55]
Excel 2013
Post: 4
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
28/06/2018 17:24

Il nome lo modifica ogni volta quindi salva 500 e passa file PDF con il nome corrispondente.
Ti chiedo scusa ma non riesco a capire il tuo codice, non potresti inserirlo nella mia Macro? Così è tangibile la modifica e la capisco :)
Post: 3.567
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
28/06/2018 23:42

Io non Vi capisco, come faccio provare un codice se non ho il file?
Penso debba essere cosi. Controlla prima la riga17, casomai togli & "\"
vb
Sub SalvaPDFReportConCiclo()
    Dim ws As Worksheet
    Dim strIndirizzo As String
    Dim myFile As Variant
    Dim strFile As String
    Dim nome As String
    Dim i As Integer
    Dim selezione As Range
    Dim Percorso As String
    On Error GoTo errHandler
    Set ws = Worksheets("Report")
    Set selezione = ws.Range("A1:R225")
    Percorso = Worksheets("Tabelle dati").Range("C12").Value
 For i = 3 To 541
    Worksheets("Tabelle dati").Range("C8") = Worksheets("Elenco Aziende").Range("B" & i)
    nome = Range("C1").Value & " " & "-" & " " & Range("C8").Value
    'Qui sotto aggiungo il \ finale, ma non so se tu l'hai già in Tabelle dati").Range("C12")
    strFile = Percorso & "\" & nome & ".pdf"
            selezione.ExportAsFixedFormat _
              Type:=xlTypePDF, _
              Filename:=strFile, _
              Quality:=xlQualityStandard, _
              IncludeDocProperties:=True, _
              IgnorePrintAreas:=True, _
              OpenAfterPublish:=False
Next i
Set ws = Nothing
MsgBox "Fatto"
exitHandler:
            Exit Sub
errHandler:
            MsgBox "Non ho potuto salvare il file PDF"
    Resume exitHandler
End Sub
[Modificato da raffaele1953 28/06/2018 23:49]
Excel 2013
Post: 5
Registrato il: 22/06/2018
Città: BELLAGIO
Età: 31
Utente Junior
2016
OFFLINE
29/06/2018 10:05

Non posso inserire il file perché contiene informazioni sensibili ed è per questo che non l'ho mai caricato :)

Grazie mille ma già con il tuo messaggio precedente avevo risolto.

Grazie
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 02:03. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com