XL 2016 VBA-ENREGISTREMENT picking + nom de fichier

BEN_NWP

XLDnaute Nouveau
Bonjour à tous,
Pour commencer, je voulais vous remercier de la qualité du forum qui dépanne au quotidien d'un nombre incalculable de pétouilles :)

Je souhaiterai vous demander un coup de pouce pour le fichier en PJ.
Je souhaite avoir une box d'enregistrement, celle ci fonctionne, mais le chemin par défaut est le bureau...
Alors je bute depuis un moment sans comprendre d'où vient l'anomalie.

L'action bouton permet l'enregistrement d'un onglet via le choix d'un répertoire,
L'enregistrement prends en comptes l'extension souhaitée et le nom de fichier souhaité.
Le fichier s'enregistre bien, la fenetre de choix de répertoire s'ouvre, mais je ne peux enregistrer que sur le bureau,

Merci de votre aide,
J'espère m'être fait comprendre.

Bonne soirée,

Sub TEST()
'Sheets("TEST1").Visible = True
'Sheets("TEST1").Select
Application.DisplayAlerts = False
'

Select Case MsgBox("Vous allez enregistrer le fichier, il doit être sauvegardé dans un répertoire utile", vbYesNo + vbQuestion, "Info Utilisateur")
Case vbYes


Dim chemin As Variant, nomFichier As String, extension As String
'Dim objShell As Object, objFolder As Object, oFolderItem As Object


Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choix du répertoire de Stockage", &H2&)

On Error GoTo Onerror

Set oFolderItem = objFolder.Items.Item
chemin = oFolderItem.Path


Sheets("TEST1").Copy
extension = ".xlsx"
With ActiveWorkbook

.SaveAs Filename:=Range("C9") & "_" & Range("A9") & "_" & Range("E9") & " SCORE" & extension
.Close
End With

'Vérif du chemin
MsgBox "Chemin : " & CurDir



Onerror::

Case vbNo
'procédure si on clique sur non
CreateObject("Wscript.shell").Popup "Le fichier n'a pas été enregistré", 3, "Info Utilisateur", vbExclamation


End Select
End Sub
 

Pièces jointes

  • TESTS MACROS.xlsm
    28.8 KB · Affichages: 9

Hasco

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Si vous initialisez une variable (chemin) et que vous ne vous en servez pas alors, effectivement, problème.
VB:
        With ActiveWorkbook

            .SaveAs Filename:=chemin & Application.PathSeparator & Range("C9") & "_" & Range("A9") & "_" & Range("E9") & " SCORE" & extension
            .Close
        End With

Attention la macro est appelée à partir d'un bouton sur une feuille dans laquelle C9 A9 E9 sont vides! vous n'aurez que _ avant SCORE

Bonne soirée
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
714

Statistiques des forums

Discussions
314 708
Messages
2 112 088
Membres
111 416
dernier inscrit
philipperoy83