• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Ja of Nee opslaan opde desktop

Status
Niet open voor verdere reacties.

Roboman

Gebruiker
Lid geworden
5 jun 2014
Berichten
51
Geachte Helpers,

Ik ben al een tijdje met succes pdf'jes aan het mailen vanuit Excel. Zelf sla ik de gecreëerde pdf's op in een vaste folder structuur. Nu wil ik in een van de versies een Ja/Nee vraag aan de gebruiker stellen om wel of niet een kopie van de file op de desktop op te slaan zodat de gebruiker die zelf kan archiveren. Dit is nodig als de andere gebruiker (Collega) het sheet gebruikt maar NIET de folder structuur heeft.

Die Ja/Nee keuze heb ik in VB opgelost met de gebruikelijke vb oplossing.

If Response = vbYes Then
MsgBox "Save a Copy on your desktop?'." (is Ja)
Else
' The no button was selected.
MsgBox "Continue to send email " (Is Nee)
End If

Nu zit ik met twee problemen. In he scrips gebruik ik het volgende om een pdf file op te slaan op MIJN machine, waarin ik in mijn folder structuur wegschrijf volgens;

Dim OutFileName As String
OutFileName = "D:\Opslag folder\" & Year & "\Administration " & Year & "\Invitations\" & Worksheets("Sheet X").Range("T4") & ".pdf"
Waarbij ik enige variabelen uit het sheet ophaal om de filenaam te maken.o.a. "Year" en Soort invitatie uit Cel T4. Dat werkt.

Om nu een kopie op de desktop te zetten voor gebruikers die de folder structuur niet hebben dacht ik in de Ja/Nee loop onder "Ja" een stukje te zetten wat de desktop kopie zou maken.
Zoals b.v;

' Definieer eerst de output file naam
Dim PdfFileName As String
PdfFileName = "Worksheets("Sheet X").Range("T4") & ".pdf"

'Exporteer de data naar de file opde desktop van de gebruiker

"Environ("USERPROFILE") & "\Desktop\" & PdfFileName" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Dit geeft altijd "Compile Error / Syntax errors" ondanks dat de delen van de code wel op andere plekken werken. Ook krijg ik een error op de "USERPROFILE"
Heeft iemand een idee om dit aan de gang te krijgen.

Met vriendelijke groet
Roboman
 
En zo?
Code:
Sub hsv()
  ActiveSheet.ExportAsFixedFormat 0, CreateObject("wscript.shell").specialfolders(4) & "\" & Sheets("Sheet X").Range("T4") & ".pdf"
End Sub
 
In je getoonde code staan een aantal " tekens waar ze niet horen.
 
Laatst bewerkt:
Beste Harry,

Deze oplossing werkt inderdaad . Ik moest alleen de Subhsv/End sub weghalen en nu werkt het prima. Zie hieronder

Dim Response As Integer
Response = MsgBox(prompt:="Save File on Desktop? 'Yes' or 'No'.", Buttons:=vbYesNo)

' If statement to check if the yes button was selected.
If Response = vbYes Then
MsgBox "You selected 'Yes'."

ActiveSheet.ExportAsFixedFormat 0, CreateObject("wscript.shell").specialfolders(4) & "\" & Sheets("ReTake").Range("T4") & ".pdf"

Else
' The no button was selected.
MsgBox "You selected 'No'."

End If

Erg bedankt, en ik heb weer wat te leren over de "specialfolders" truuk.

Fijne Feestdagen
Roboman
 
@Roboman

Dat kan ook in één schrijfbeweging zonder de variabel 'response'.
Code:
if MsgBox("Save File on Desktop? 'Yes' or 'No'.", vbYesNo) = vbYes Then
  MsgBox "You selected 'Yes'."
  ActiveSheet.ExportAsFixedFormat 0, CreateObject("wscript.shell").specialfolders(4) & "\" & Sheets("ReTake").Range("T4") & ".pdf"
Else
 MsgBox "You selected 'No'."
End If
 
Beste HSV,
Ja inderdaad dat had ik ook uit geëxperimenteerd. In de uiteindelijke code heb ik de MsgBox " You selected No" geheel laten vervallen omdat de gebruiker dan al een keuze gemaakt heeft en het proces dan al loopt.
Overigens heb ik in de msgbox een tekst met variabele opgenomen zodat ik de gebruiker vraag "Save Blabla.pdf file on Desktop" waarbij "BlaBla.pdf" de variabele is en met de switch vbQuestion erachter zodat er een Vraagteken getoond wordt op de msgbox. [ MsgBox(prompt:="Save " & PdfName & " RT.pdf File on Desktop? 'Yes' or 'No'.", Buttons:=vbYesNo + vbQuestion) ].
Uiteraard zonder Jouw/Uw hulp was ik misschien nog niet zover gekomen. Maar een frisse blik kan soms helpen.

Met Vriendelijke Groet,
Roboman
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan