"ActiveWorkbook.Close savechanges" NE FONCTIONNE PAS?

  • Initiateur de la discussion Initiateur de la discussion amauryde
  • Date de début Date de début

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 !

amauryde

XLDnaute Occasionnel
Bonjour à tous,

Voila, j'exécute une macro que vous pouvez trouver dans essai en cliquant sur le bouton 1. Toute la macro se déroule bien: ouverture du fichier resumen/transfert des données/ et au moment d'enregistrer les changements dans resumen ca ne marche pas... qq'un a-t'il une idée?

Merci à vous
 

Pièces jointes

Dernière édition:
Re : "ActiveWorkbook.Close savechanges" NE FONCTIONNE PAS?

Bonjour amauryde,

1) Si vous aviez utilisé l'option "Option Explicit" en début de votre module, la compilation aurait provoqué une erreur sur la ligne:
ActiveWorkbook.Close savechanges = True avec le message "variable non définie".

Le compilateur s'arrête sur cette ligne car il a trouvé une variable savechanges non déclarée avant son utilisation.

Or savechanges n'est effectivement pas une variable mais un nom de paramètre de la méthode close. Donc l'erreur est ailleurs.
Lorsque vous utilisez des paramètres nommés, la valeur du paramètre est indiqué à l'aide de ":=" et non "="

la syntaxe correcte est :
ActiveWorkbook.Close savechanges:=True

Le classeur se refermait néanmoins sans sauvegarde. Le paramètre savechanges étant le premier paramètre de Close, on n'a pas besoin de le nommer car il est à sa position par défaut. On aurait pu écrire: ActiveWorkbook.Close True.

En écrivant savechanges=True, VBA effectue la comparaison d'une variable savechanges (non initialisée) avec la valeur TRUE. Le résultat de la comparaison est FAUX donc ActiveWorkbook.Close savechanges:=True est interprété comme :
ActiveWorkbook.Close FALSE donc VBA referme le fichier sans sauvegarde.
 
Dernière édition:
Re : "ActiveWorkbook.Close savechanges" NE FONCTIONNE PAS?

Re

Il me semble que le problème n'est pas tout à fait résolu pour autant
Je suggere:

Code:
Sub AjouterAuBilan()
'
' Macro1 Macro
' Macro enregistrée le 02/07/2012 par fl170417
Dim Vfecha, Vb, Vc, Va As String
Vfecha = Range("B2").Value
Vb = Range("B3").Value
Vc = Range("B4").Value
Va = Range("B6").Value
Workbooks.Open Filename:=ThisWorkbook.Path & "\Resumen.xlsx"
    derlin = ActiveSheet.Range("B65536").End(xlUp).Row
     ActiveSheet.Cells(derlin + 1, 2) = Va
    ActiveSheet.Cells(derlin + 1, 3) = Vb
    ActiveSheet.Cells(derlin + 1, 4) = Vc
    ActiveSheet.Cells(derlin + 1, 5) = Vfecha
    'enregistrer et fermer le fichier bilan
    ActiveWorkbook.Close SaveChanges:=True

End Sub
 
- 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
4
Affichages
586
Retour