Vba Enregistrement Fichier Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
ledzep
Membre fidèle
Membre fidèle
Messages : 159
Appréciations reçues : 2
Inscrit le : 15 août 2014
Version d'Excel : Office 365 et 2010

Message par ledzep » 12 mai 2018, 12:15

Bonjour à tous

J'ai assemblé ce code en plusieurs étapes.
Le code est dans Thisworkbook

En premier sauvegarde classique , Un bouton -> Msgbox Yes Non enregistrement Correct.

J'ai voulu mettre en plus la date heure et nom du fichier .
c'est là que ça ce complique , il ne fait que la première partie .

Ma question est Pourquoi

Sub Fermeture_Cliquer()

Dim Path As String, valeur As String

Path = ActiveWorkbook.Path & "C:\Users\dany\Desktop\RESERV NACELLE\Resevation Nacelle" 'Zone Stockage

valeur = "Reserva " & Format(Date, "dd-mmmm-yyyy") & "_" & Format(Time, "hh-mm") & ".xls" ' Nom Date Heure Format de fichier

Reponse = MsgBox("Voulez-vous enregistrer les modifications ?", vbYesNo, "Demande de confirmation")

ThisWorkbook.Save

Application.Quit

End Sub

Merci de votre aide

LedZep
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 3'513
Appréciations reçues : 242
Inscrit le : 26 janvier 2011
Version d'Excel : 2007

Message par Theze » 12 mai 2018, 15:30

Bonjour,

ça ce n,'est pas possible :
Path = ActiveWorkbook.Path & "C:\Users\dany\Desktop\RESERV NACELLE\Resevation Nacelle" 'Zone Stockage
Tu ne peux pas aller au delà du lecteur qui lui, est est la racine donc, "ActiveWorkbook.Path" ne peut pas se trouver avec "C:\...."
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 12 mai 2018, 15:36

Bonjour LedZep,

Voici une proposition avec ce que j'ai compris de ta demande et de ton code :
Sub Fermeture_Cliquer()

    Dim sPath As String, sNomFichier As String
    Dim Reponse As Byte

    Reponse = MsgBox("Voulez-vous enregistrer les modifications ?", vbYesNo, "Demande de confirmation")
    If Reponse = vbNo Then Exit Sub 'on sort de la procédure si l'utilisateur a cliqué sur non
    
    sPath = "C:\Users\dany\Desktop\RESERV NACELLE\Resevation Nacelle\"    'Zone Stockage

    sNomFichier = "Reserva " & Format(Now, "dd-mmmm-yyyy_hh-mm") & ".xls"    ' Nom Date Heure Format de fichier

    ThisWorkbook.SaveAs sPath & sNomFichier, FileFormat:=56 'ne pas oublier de définir la propriété FileFormat. 56 = fichier xls

    ''Application.Quit
    ' Plutot que de fermer Excel, peut-etre que fermer le classeur suffit
    ThisWorkbook.Close

End Sub
vba-new

Edit : bien vu Jean-Eric pour le fileformat qui est bien 56 et non 52. C'est corrigé merci
Modifié en dernier par vba-new le 12 mai 2018, 22:16, modifié 1 fois.
vba-new
Avatar du membre
ledzep
Membre fidèle
Membre fidèle
Messages : 159
Appréciations reçues : 2
Inscrit le : 15 août 2014
Version d'Excel : Office 365 et 2010

Message par ledzep » 12 mai 2018, 19:31

Bonjour vba-new et à tous

Merci de ta réponse.

J'ai collé ton code dans un nouveau fichier ( mis la zone de stockage à jour)

Il ne met pas la date du fichier en début de dossier du style 2018-05-12 repertoire.

J'ai utiliser des Msgbox pour faire le pas à pas mais pas trouvé la solution

J'ai mis le fichier en PJ

Merci de ton aide

LedZep
repertoire.xlsm
(17.06 Kio) Téléchargé 10 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'759
Appréciations reçues : 443
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 12 mai 2018, 19:48

Bonjour à tous,
@ vba-new
FileFormat est égal à 56 et non à 52 si on enregistre en .xls (Excel 97-2003) à partir de Excel 2007-2016.
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
ledzep
Membre fidèle
Membre fidèle
Messages : 159
Appréciations reçues : 2
Inscrit le : 15 août 2014
Version d'Excel : Office 365 et 2010

Message par ledzep » 12 mai 2018, 21:57

Bonsoir Jean -Eric et à tous

Merci de ta réponse.

J'ai modifier selon ton conseil,

le fichier n’enregistre pas les modifications .... ( même avant la modif 56 au lieu de 52))

Il se déroule correctement sans bug

Une idée

Bonne soirée
LedZep
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 12 mai 2018, 22:28

@Jean-Eric : Merci pour ta remarque. C'est corrigé dans le code plus haut.

@LedZep : J'avoue ne pas comprendre ce que tu veux... Le mieux est que tu nous expliques en termes non techniques ce que tu souhaites faire avec ton bouton. Mais on n'est pas loin. Si quelqu'un a mieux compris que moi, n'hésitez pas à proposer une solution ! Jean-Eric ?
vba-new
Avatar du membre
ledzep
Membre fidèle
Membre fidèle
Messages : 159
Appréciations reçues : 2
Inscrit le : 15 août 2014
Version d'Excel : Office 365 et 2010

Message par ledzep » 12 mai 2018, 22:50

Bonsoir à tous,

Ok j'ai mal formulé ma demande.

Donc voici ce qu j'aimerai:

Quand je clic sur fermeture le fichier s'enregistre avec confirmation

Yes = enregistrement du fichier avec pour intitulé : Année-Mois- Jour et Nom du fichier de départ. (format si possible)
No = Quitte sans enregistrement.

( Je cherche de mon coté (avec une autre méthode )aussi mais n'arrive pas à enregistrer mes modif)

Merci de votre aide

LedZep
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'759
Appréciations reçues : 443
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 12 mai 2018, 22:59

Re,
Il y a encore des incertitudes !...
Cdlt.
Public Sub Fermeture_Cliquer()
Dim sPath As String, sFilename As String
Dim Reponse As VbMsgBoxResult

    Reponse = MsgBox("Voulez-vous enregistrer les modifications ?", vbYesNo, "Demande de confirmation")
    If Reponse = vbNo Then Exit Sub
    sPath = "C:\Users\PCHP\Desktop\ENG\"
    sFilename = "repertoire" & Format(Now, "_yyyymmdd_hh-mm") & ".xls"
    With ThisWorkbook
        .Save   'On enregistre ou pas le classeur actif ?
        .SaveAs Filename:=sPath & sFilename, FileFormat:=56
        .Close
    End With

End Sub
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
ledzep
Membre fidèle
Membre fidèle
Messages : 159
Appréciations reçues : 2
Inscrit le : 15 août 2014
Version d'Excel : Office 365 et 2010

Message par ledzep » 12 mai 2018, 23:25

Bonsoir

Voici une modif que j'ai faite en PJ

Si cela peut aider




LedZep

Désolé pas vu le dernier message
2018-05-12 repertoire v1 .xlsm
(17.38 Kio) Téléchargé 21 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message