Exportation d'un onglet sur le bureau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SwimCoachNico79

XLDnaute Occasionnel
Bonjour à tous,

J'ai réalisé un petit programme qui me permet de remplir un coût d'action. J'y ai incorporé deux boutons qui me permettent d'exporter l'onglet au format excel et pdf sur mon bureau. Jusque là tout va bien...

Dès que j’exécute mon programme sur un autre ordinateur le fichier bug... (problème de chemin).

Ma question est comment écrire les deux codes suivant afin que mon fichier puisse être utilisé par n'importe qui et de n'importe quel ordinateur (toujours enregistrer l'onglet sur le bureau de l'utilisateur) ?

Voici le code pour excel :

ChDir "C:\Users\mon prénom et mon nom\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\mon prénom et mon nom\Desktop\" & Range("B9") & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False

Voici le code pour pdf :

Private Sub CommandButton5_Click()
Dim Rep As String
Rep = "C:\Users\mon prénom et mon nom\Desktop\"
Rep = Rep & Sheets("Feuil2").Range("B9").Value & ".pdf"
Sheets("Feuil2").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Rep, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

Je suis sous Excel 2010.

Merci pour votre aide !
 
Re : Exportation d'un onglet sur le bureau

Bonjour


Tu peux utiliser les possibilités offertes par Windows Scripting Host et notamment SpecialFolders
Exemple ci-dessous
Code:
Sub test()
Dim Wsh, cheminBureau As String
Set Wsh = CreateObject("WScript.Shell")
cheminBureau = Wsh.SpecialFolders("Desktop")
MsgBox cheminBureau
End Sub

En ajoutant et adapatant cela à ton code VBA existant, cela devrait fonctionner quelque soit le PC.
 
Re : Exportation d'un onglet sur le bureau

En fait ma solution ne fonctionne que sous Excel 2007/2010 mais pas sous 2003 comment intégrer le code de TempusFugit dans celui-ci :

Private Sub CommandButton1_Click()
Sheets("Feuil2").Select
Range("A1:BZ62").Select
Selection.Copy
Sheets("CIF").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("A1").Select
Sheets("CIF").Select
Application.CutCopyMode = False
Sheets("CIF").Move
ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
ChDir "C:\Users\" & Environ("username") & "\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\" & Environ("username") & "\Desktop\" & Range("B9") & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
Sheets("Feuil2").Select
Range("A1").Select
Sheets("Feuil1").Select
Range("I14").Select
End Sub

Où existe t-il une autre solution "universelle".
Merci d'avance pour vos réponses.
 
Re : Exportation d'un onglet sur le bureau

Bonjour


Je ne vois de difficulté particulière pour intégrer ce que je t'ai proposé.
Code:
Dim Wsh, cheminBureau As String
Set Wsh = CreateObject("WScript.Shell")
cheminBureau = Wsh.SpecialFolders("Desktop")

Une fois que tu as le chemin du bureau, il te suffit de remplacer dans ton code ce qui sert à définir ce chemin.

Testes cet exemple simplifié
Il faut qu'il y ait une chaien de caractère dans la cellule B9 de la feuille 1

Post-scriptum; Excel 2003 ne sait enregister qu'au format xls
Code:
Sub test()
Dim Wsh, cheminBureau As String
Set Wsh = CreateObject("WScript.Shell")
cheminBureau = Wsh.SpecialFolders("Desktop") & "\"

ActiveWorkbook.SaveAs Filename:= _
       cheminBureau & Sheets(1).Range("B9") & ".xls", _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
1 K
Retour