Enregistrer en pdf sur bureau quel que soit l'utilisateur

Merci beaucoup !

Par contre, je ne comprends toujours pas bien comment fonctionne l'instruction suivante:

If VarType(nomFichier) = vbBoolean Then
    nomFichier = IIf(InStr(ThisWorkbook.Name, ".") > 0, Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1), ThisWorkbook.Name)
End If

Je t'avais dit plus haut que

vba-new a écrit :

Le traitement IIf(InStr(ThisWorkbook.Name, ".") > 0... que je fais est pour supprimer l'extension du nom du fichier.

Voici une explication du fonctionnement du code suivant :
IIf(InStr(ThisWorkbook.Name, ".") > 0, Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1), ThisWorkbook.Name)

Pour enlever l'extension du fichier, je cherche l'emplacement du point. Si le point existe (instr(...)>0) j'extrais la partie qui est à gauche du point (Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)). Si le point n'existe pas, je garde le nom du fichier (ThisWorkbook.Name)

Ok, merci !

Bonjour,

Cette formule m'a été très utile, merci

Par contre je voudrais que le fichier PDF ne s'ouvre pas, juste enregistrer

ou alors il s'ouvre et se referme.

Merci de votre aide

Bonjour Ambroise,

Aucune idée concernant ta requête, vba-new en saura peut-être davantage.

Bonne journée.

vba-new a écrit :

Bonjour à tous,

Essaie avec ceci :

"D:\Profiles_dupont\Users\" & Environ("username") & "\Desktop\Haute saison v2.pdf"

Bonjour!!!

Je cherche également à enregistrer en pdf sur bureau quel que soit l'utilisateur.

Mais n'y a-t-il pas un problème avec le fait que le document s'enregistre sur le disque D?

Savez vous quel code utiliser pour que celui ci s'enregistre sur le disque de l'utilisateur?

J'ai essayé : Environ("Variable") mais apparemment ça ne marche pas :/

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

Environ("VARIABLE") & ":\Users\" & Environ("username") & "\Desktop\Nom de mon document.pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Une idéee s'il vous plait?

Bonjour Faten.zirek

Essaye ce code

Sub CheminBureau()
  Dim stRep As String
  Dim WshShell As Object
  Set WshShell = CreateObject("WScript.Shell")
  stRep = WshShell.SpecialFolders("Desktop")
  MsgBox "Chemin d'accès au bureau : " & stRep
  Set WshShell = Nothing
End Sub

A+

BrunoM45 a écrit :

Bonjour Faten.zirek

Essaye ce code

Sub CheminBureau()
  Dim stRep As String
  Dim WshShell As Object
  Set WshShell = CreateObject("WScript.Shell")
  stRep = WshShell.SpecialFolders("Desktop")
  MsgBox "Chemin d'accès au bureau : " & stRep
  Set WshShell = Nothing
End Sub

A+

Tout d'abord merci pour ta réponse BrunoM45;

Je ne suis pas très douée en vba, mais voici ce que j'ai réussi à faire; sur mon bureau, ça marche!! mais j'aimerais que la macro suivante fonctionne depuis n'importe quel bureau.. Du coup, tu me conseilles de placer le code que tu as fait à quel endroit??

Ma macro:

Sub Depots()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

"C:\Users\" & Environ("username") & "\Desktop\Nom de mon doc.pdf", Quality:= _

xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add ("C:\Users\" & Environ("username") & "\Desktop\Nom de mon doc.pdf")

.Subject = "Bon de commande"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "

.Display

End With

End Sub

Merci beaucoup!!!

Re,

Voici ton code modifié

Sub Depots()
  Dim sNomFic As String, sRep As String, WshShell As Object
  ' Créer une instance Windows Script pour retrouver le chemin du bureau
  Set WshShell = CreateObject("WScript.Shell")
  sRep = WshShell.SpecialFolders("Desktop")
  Set WshShell = Nothing
  ' Définit le nom du fichier à enregistrer
  sNomFic = "Nom de mon doc.pdf"
  ' Enregistrer la feuille en PDF
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
                                  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                  OpenAfterPublish:=False

  Set a = Outlook.CreateItem(olMailItem)
  With a
    .To = ""
    .Attachments.Add (sRep & "\" & sNomFic)
    .Subject = "Bon de commande"
    .BodyFormat = olFormatHTML
    .Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "
    .Display
  End With
End Sub

A+

BrunoM45 a écrit :

Re,

Voici ton code modifié

Sub Depots()
  Dim sNomFic As String, sRep As String, WshShell As Object
  ' Créer une instance Windows Script pour retrouver le chemin du bureau
  Set WshShell = CreateObject("WScript.Shell")
  sRep = WshShell.SpecialFolders("Desktop")
  Set WshShell = Nothing
  ' Définit le nom du fichier à enregistrer
  sNomFic = "Nom de mon doc.pdf"
  ' Enregistrer la feuille en PDF
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
                                  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
                                  OpenAfterPublish:=False

  Set a = Outlook.CreateItem(olMailItem)
  With a
    .To = ""
    .Attachments.Add (s[color=#FF4000]t[/color]Rep & "\" & sNomFic)
    .Subject = "Bon de commande"
    .BodyFormat = olFormatHTML
    .Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "
    .Display
  End With
End Sub

A+

MERCI INFINIMENT!!

Il y avait juste une faute de frappe. Du coup, j'ai juste supprimer le t, et ça fonctionnait nickel!

J'ai donc écrit:

Sub Depots()

Dim sNomFic As String, sRep As String, WshShell As Object

' Créer une instance Windows Script pour retrouver le chemin du bureau

Set WshShell = CreateObject("WScript.Shell")

sRep = WshShell.SpecialFolders("Desktop")

Set WshShell = Nothing

' Définit le nom du fichier à enregistrer

sNomFic = "Nom de mon doc.pdf"

' Enregistrer la feuille en PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add (sRep & "\" & sNomFic)

.Subject = "Bon de commande"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "

.Display

End With

End Sub

Encore Merci,

Faten

Re,

Oups désolé, j'ai changé le nom de la variable en cours de route

A+

Bonjour, c'est encore moi!

J'ai encore un petit soucis; Au bureau, j'ai un pc; mais chez moi j'ai un mac. Et la macro suivante fonctionne très bien au bureau, mais je n'ai pas réussi à l'exécuter sur un mac.. Qu'en pensez vous? Est ce normal?

Sub Depots()

Dim sNomFic As String, sRep As String, WshShell As Object

' Créer une instance Windows Script pour retrouver le chemin du bureau

Set WshShell = CreateObject("WScript.Shell")

sRep = WshShell.SpecialFolders("Desktop")

Set WshShell = Nothing

' Définit le nom du fichier à enregistrer

sNomFic = "Nom de mon doc.pdf"

' Enregistrer la feuille en PDF

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _

OpenAfterPublish:=False

Set a = Outlook.CreateItem(olMailItem)

With a

.To = ""

.Attachments.Add (sRep & "\" & sNomFic)

.Subject = "Bon de commande"

.BodyFormat = olFormatHTML

.Body = "Bonjour," & Chr(10) & "" & Chr(10) & "Vous trouverez ci-joint mon bon de commande. " & Chr(10) & "" & Chr(10) & "Cordialement, "

.Display

End With

End Sub

Encore merci pour votre aide

Faten

Re,

Oui c'est tout à fait normal

Dans le code on instancie l'objet Outlook,

sur mac il me semble que le logiciel n'a pas le même nom, c'est "Entourage"

A+

BrunoM45 a écrit :

Re,

Oui c'est tout à fait normal

Dans le code on instancie l'objet Outlook,

sur mac il me semble que le logiciel n'a pas le même nom, c'est "Entourage"

A+

Merci pour ta réponse BrunoM45;

Mais pourquoi j'ai l'impression que quand je franchis un obstacle, il y'en a un encore plus important juste après?! lol..

Du coup, tu me conseilles quoi? J'aimerais que mon logiciel soit utilisable sur tous types d'ordinateur?..

Merci encore

Re,

faten.zirek a écrit :

Mais pourquoi j'ai l'impression que quand je franchis un obstacle, il y'en a un encore plus important juste après?! lol..

L'informatique est comme ça, c'est du binaire, après un 1 tu peux avoir un 0

faten.zirek a écrit :

Du coup, tu me conseilles quoi? J'aimerais que mon logiciel soit utilisable sur tous types d'ordinateur?..

Houla... déjà tu es mal parti

Dans ton code, tu instancies Outlook en "Early binding", liaison anticipée, en inscrivant la référence à l'objet dans le projet VBA

OR, entre une version Excel 2000, 2003, 2010 et antérieure cette référence n'est pas la même

De plus le monde PC et Mac est vraiment 2 mondes différends tu ne pourras pas forcément utiliser du code développé sur PC pour un Mac, je pense notamment aux API Windows que l'on utilise parfois.

Bref à toi de chercher un peu et de voir ce que tu veux faire

BrunoM45 a écrit :

Re,

faten.zirek a écrit :

Mais pourquoi j'ai l'impression que quand je franchis un obstacle, il y'en a un encore plus important juste après?! lol..

L'informatique est comme ça, c'est du binaire, après un 1 tu peux avoir un 0

faten.zirek a écrit :

Du coup, tu me conseilles quoi? J'aimerais que mon logiciel soit utilisable sur tous types d'ordinateur?..

Houla... déjà tu es mal parti

Dans ton code, tu instancies Outlook en "Early binding", liaison anticipée, en inscrivant la référence à l'objet dans le projet VBA

OR, entre une version Excel 2000, 2003, 2010 et antérieure cette référence n'est pas la même

De plus le monde PC et Mac est vraiment 2 mondes différends tu ne pourras pas forcément utiliser du code développé sur PC pour un Mac, je pense notamment aux API Windows que l'on utilise parfois.

Bref à toi de chercher un peu et de voir ce que tu veux faire

Merci de m'anoncer la couleur BrunoM45, lol..

Et merci de me faire rire dans un moment pareil! lol

Bon, au boulot!

Rechercher des sujets similaires à "enregistrer pdf bureau quel que soit utilisateur"