Bouton Mettre à jour avant sauvegarde

Bonjour!

J'ai un Programme Visual Basic et j'aimerais être capable d'avoir un bouton et lorsque je clique, j’exécute mes macros afin qu'elle se mettent à jour dans le classeur, avant de pouvoir sauvegarder le classeur. Toutes mes macros sont des Private Sub sur pres de 15 feuilles.

Voici ce que j'ai trouvé:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

ActiveWorkbook.RunAutoMacros xlAutoActivate

End Sub

Mais je ne sais pas si cela m'est vraiment utile et je ne sais pas non plus comment l'utiliser..

Merci d'avance

Bonjour,

Il faut que tu les appelles toutes une par une :

Feuil1.maj

Feuil2.maj

etc

eric

PS: Feuil1 et Feuil2 sont les codenames, pas les noms des feuilles.

Et ".maj" signifie quoi ?

J'ai essayer et cela ne fonctionne pas

(J'ai laissé Feuil1, Feuil2, etc. Tandis que leur nom de feuille est respective est D-1, D-2, etc.)

Private Sub Sauvegarde_Click()

Feuil1.maj

Feuil2.maj

etc.

Application.Dialogs(xlDialogSaveAs).Show

End Sub

est-ce fait la bonne chose ? J'ai un message d'erreur: Erreur méthode ou données introuvable

..Je veux m'assurer de jouer les macros avant de sauvegarder..

J'ai mis maj en exemple, c'est le nom de la macro que tu veux lancer.

Mais tu ne peux pas les mettre Private, elles ne peuvent plus être appelées de l'extérieur du module feuillle.

Remet-les en normal et met-leur un paramètre bidon si tu ne veux pas qu'elles apparaissent dans les macros à lancer.

Tes feuilles :

Sub maj(bidon As Boolean)

End Sub

Ta procédure qui les appelle :

Sub test()
    Feuil1.maj True
    Feuil2.maj True
End Sub

que tu pouvais laisser dans Workbook_BeforeSave je pense.

eric

Ok Merci Beaucoup !

J'ai compris maintenant

Bonjour,

Je me demande à quoi sert (bidon As Boolean). Est-ce nécessaire ?

Présentement j'ai encore un autre problème lorsque je sauvegarde.. je m'explique:

Mes textbox prend une donnée (résultat d'un calcul excel) à partir d'une cellule et me l'affiche. J'ai réussi par Linkcell en plus d'un petit programme, tel que:

Sub textbox_Change()

textbox = Format( textbox, "0.000")

If Sheets("RÉSULTATS").Range("Calcul.D1.3").Text = True Then

textbox.Text = Sheets("RÉSULTATS").Range("Calcul.D1.3").Text & " '' "

End If

End Sub

ET lorsque je sauvegarde avec ceci:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Call Feuil4.textbox_Change

etc..

End Sub

Sub Sauvegarde_Click()

Application.Dialogs(xlDialogSaveAs).Show

End Sub

Toute mes valeurs de mes textbox sont perdues et m'affiche absolument n'importe quoi (ex.1082000.000)

J'aimerais bien qu'il affiche À TOUT LES FOIS tel que mon programme textbox_Change demande

Merci encore de m'aider, Merci beaucoup beaucoup!

Bonjour,

Je me demande à quoi sert (bidon As Boolean). Est-ce nécessaire ?

Je t'ai déjà expliqué le pourquoi.

Pour le reste pas trop le temps de chercher à comprendre tes explications, je suis dans les valises.

Démarre un nouveau fil.

eric

Désolé..

Je me demandais seulement si c'est bel et bien de cette manière je devrais écrire mes programmes

Sub texbox_Change(textbox.Value As Boolean)

End Sub

C'est peut-etre là mon problème..

Merci de ton aide précieuse que tu m'as donné jusqu'à présent!

Non, c'était un cas particulier : ne pas mettre un sub en private pour pouvoir l'appeler d'un autre module, mais faire en sorte qu'il n'apparaisse pas dans les macros à lancer quand on est dans excel (post du 07 Mai 2014, 15:04).

Pour créer les sub évènement soit double-clic sur l'objet, ou choix de l'évènement dans la liste déroulante en haut à droite de vbe pour que les paramètres se mettent automatiquement.

eric

Merci beaucoup. J'ai trouvé la solution !

Rechercher des sujets similaires à "bouton mettre jour sauvegarde"