Probleme de sauvegarde vba excel

bobspong80 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 21 décembre 2007 - 26 janv. 2007 à 13:50
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 - 29 janv. 2007 à 16:22
Salut a tous!!
J'ai un petit probleme de sauvegarde d'un classeur que j'ouvre avec vba excel, je créé une nouvelle feuille tous se passe bien mais lorsque je sauvegarde ma nouvelle feuille a disparu mon code est le suivant

Public Function Generer_bilan(station As String)
Dim Classeur_bilan As Workbook
Set Classeur_bilan = Workbooks.Open("c:\SDTE_DEV\BILANS" & station & "_" & jour & "_" & mois & "_" & annee & ".xls")
Dim feuille As Worksheet


Set feuille = Classeur_bilan.Worksheets.Add(before:=Classeur_bilan.Worksheets(Classeur_bilan.Sheets.Count))


feuille.name = "Bilan journalier de la station"


Classeur_bilan.Close savechanges:=True




End Function

Merci d'avance
BOB

3 réponses

domsig Messages postés 125 Date d'inscription lundi 6 septembre 2004 Statut Membre Dernière intervention 11 mai 2010
26 janv. 2007 à 14:05
ben justement je crois que le savechanges=true sert à dire à excel que les changements ont été sauvegardés et que donc il n'a pas à se poser la question de savoir s'il doit sauvegarder les changements ou pas.


Il faut que tu fasses un classeur_bilan.save quelque chose puis classeur_bilan.close, ou quelque chose dans ce style.


bon courage

Allez voir mon site !
http://www.amis-marolles.org
le site d'une association s'occupant de patrimoine et de traditions
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 janv. 2007 à 18:53
salut,

pas d'accord avec Domsig, savechanges est un paramètre de fermeture qui demande si le programmeur veut enregistrer ou non le fichier.
Ce dont tu parles, c'est WorkBookSboub.Saved = True

Bobspong80 :
Pourquoi une fonction ?
Une fonction récupère un résultat résultant d'un calcul, là tu ne donnes que des instructions à faire, donc il te faut une procédure. De plus, je pense que ByVal sera mieux dans le code
<strike>Public Function</strike> Generer_bilan(station As String)
Public Sub Generer_bilan(ByVal station As String)

Test pas à pas (F8, dans vb, en ayant placé le curseur dans le code) et vois ce qui cloche.
Et afin de suivre l'évolution des classeurs, réduit la taille de la fenêtre vba, pour voir un peu ce qui se passe sur excel

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
29 janv. 2007 à 16:22
Salut,

Je suis completement d'accord avec Mortalino sur l'utilisation d'une procédure.
Toutefois, le paramètre ByVal ne me semble pas utile ici étant donné que la variable station ne subit aucune modification.

En revanche, après avoir testé ta fonction, je suis dans le regret de te dire qu'elle fonctionne sans souci aucun.

Vérifie donc bien tes fichiers car le problème ne vient pas de ton code.

@+++

PS : tu utilises des variables non déclarées (jour, mois et annee), il aurait été bon de préciser de quoi il s'agit, variables globales ????

[mailto:K@lobit K@lobit] < Ne pas clicker ici
http://www.excelpourtous.com
0
Rejoignez-nous