| | 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 |
|
|