"ActiveWorkbook.Close savechanges" NE FONCTIONNE PAS?

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

  • Nouveau dossier.zip
    50.9 KB · Affichages: 77
  • Nouveau dossier.zip
    50.9 KB · Affichages: 78
  • Nouveau dossier.zip
    50.9 KB · Affichages: 67
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
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:

pierrejean

XLDnaute Barbatruc
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
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi