Excellerend
Gebruiker
- Lid geworden
- 8 nov 2011
- Berichten
- 68
Beste Helpmij-leden,
Een VBA vraag aangaande het maken van een PDF (via code van Ron de Bruin).
De onderstaande code is tevens verwerkt in het voorbeeldbestand.
Het gaat met name om het schuin/vetgedrukte deel. Bij het aanroepen van de macro vraagt een Msgbox en een tweetal Inputboxen of het gehele werkblad geprint moet worden of slecht een aantal rijen.
Voor een aantal rijen moet in de Inputboxen een begin- en eindrij worden opgegeven, voor het gehele werkblad volstaat men door de Inputboxen de Annuleren. (Lastige hiervan is dat de optie If vbCancel = True Then Exit Sub niet mogelijk is.)
De vraag; is het mogelijk dat als men in het werkblad een aantal cellen selecteert (in kolom A, rijen is niet mogelijk omdat het blad deels beveiligd is) men op basis van die selectie de gehele rijen opslaat als een PDF.
Dus het eindresultaat van de macro is uiteindelijk hetzelfde als wat het nu doet, maar de macro moet eerst kijken of er een aantal (cellen) geselecteerd is.
Zo ja, die selectie uitbreiden naar rijen en PDF-en.
Zo nee, het gehele blad PDF-en.
Alvast bedankt!
Grt Peter
Een VBA vraag aangaande het maken van een PDF (via code van Ron de Bruin).
De onderstaande code is tevens verwerkt in het voorbeeldbestand.
Code:
Sub Bestand_mailen_PDF()
Dim FileName As String
ActiveSheet.Unprotect
[I] [B]MsgBox "Kies in de volgende twee menu's een beginrij en eindrij. Kies 'Annuleren' als het gehele blad afgedrukt moet worden."
x = InputBox("Kies de beginrij", "Printbereik", vbOKCancel)
y = InputBox("Kies de eindrij", "Printbereik", vbOKCancel)[/B][/I]
If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "Er is meer dan één tabblad geselecteerd," & vbNewLine & _
"selecteer het juiste tabblad en probeer het opnieuw."
Else
FileName = Create_PDF(Range([I][B]"A" & x & ":" & "R" & y[/B][/I]), ThisWorkbook.Path & "\[RAPPORT] " & Range("A3") & " " & Range("D3") & " -" & Format(Date, " dd-mm-yyyy") & ".pdf", True, False)
If FileName <> "" Then
Mail_PDF_Outlook FileName, "", "[RAPPORT] " & ActiveSheet.Range("A3") & " " & ActiveSheet.Range("D3") & " -" & Format(Date, " dd-mm-yyyy"), _
"", False
Else
MsgBox "Het is niet mogelijk de rapportage te maken, mogelijke redenen zijn:" & vbNewLine & _
"Microsoft Add-in is niet geinstalleerd" & vbNewLine & _
"De rapportage is niet op de schijf opgeslagen" & vbNewLine & _
"De pad van het bestand is niet toegankelijk"
End If
End If
ActiveSheet.Protect
If MsgBox("Wilt uw de zojuist verzonden rapportage apart opslaan op uw computer?", vbYesNo + vbQuestion, "Opslaan") = vbNo Then Kill FileName
End Sub
Het gaat met name om het schuin/vetgedrukte deel. Bij het aanroepen van de macro vraagt een Msgbox en een tweetal Inputboxen of het gehele werkblad geprint moet worden of slecht een aantal rijen.
Voor een aantal rijen moet in de Inputboxen een begin- en eindrij worden opgegeven, voor het gehele werkblad volstaat men door de Inputboxen de Annuleren. (Lastige hiervan is dat de optie If vbCancel = True Then Exit Sub niet mogelijk is.)
De vraag; is het mogelijk dat als men in het werkblad een aantal cellen selecteert (in kolom A, rijen is niet mogelijk omdat het blad deels beveiligd is) men op basis van die selectie de gehele rijen opslaat als een PDF.
Dus het eindresultaat van de macro is uiteindelijk hetzelfde als wat het nu doet, maar de macro moet eerst kijken of er een aantal (cellen) geselecteerd is.
Zo ja, die selectie uitbreiden naar rijen en PDF-en.
Zo nee, het gehele blad PDF-en.
Alvast bedankt!
Grt Peter