Macro pour enregistrer une feuille

Bonjour

Je monte une micro entreprise.. J'ai créé un facture modèle. Sur cette facture apparait un nom de fichier dans une cellule (numéro-date-noms du type" 2-612012" fabriqué avec des fonctions.

J'ai créé une macro" Archiver" qui permet d'enregistrer le fichier 2-162012 automatiquement. Mon problème est le suivant : je ferme ce document, je rappelle ma facture modèle, je créé une autre facture et si je clique sur la macro "archiver" (par un bouton), le fichier précédent 2-162012 s'ouvre. Je ne connais pas le langage VBA.

Si quelqu'un peut me dépanner. J'ai l'impression que c'est un problème de réinitialisation de la macro.

Merci par avance.

427modele-facture.zip (36.14 Ko)

Salut,

Je ne suis pas sûr d’avoir bien compris ta demande.

Tu ouvres le fichier ci-joint en lecture seule, tu y inscrits tes données et lorsque tu cliques sur le bouton, ce fichier est enregistré sous son nouveau nom.

Le bouton est alors effacé et ce fichier reste ouvert. Si tu fermes et que tu ouvres à nouveau ce nouveau fichier, il n'est plus en lecture seule.

Si ce n’est pas ce que tu désires, sois plus précis(e).

Cordialement.

469modele-facture.zip (36.20 Ko)

Bonjour

J'ai une feuille modèle "modele facture". Sur cette feuille j'ai intégré une macro de nom (enregistrement_facture) qui permet d'aller chercher un nom de fichier dans une cellule. Ce nom de fichier est du type " numero-date-noms". Cette cellule (E14) a été faite sans problème par les fonctions de excel.

Voilà la macro :

Sub Enregistrement_facture()

'

' Enregistrement_facture Macro

' Macro enregistrée le 06/01/2012 par JD

ChDir "F:\Entreprise D'TENTE\facturation"

ActiveWorkbook.SaveAs Filename:=Range("E14")

End Sub

Lorsque je clique pour la première fois sur le bouton associé à la macro, j'enregistre la facture sous le nom "1-712012-toto" par exemple (qui correspond au client n°1 en date du 7 janvier de nom toto. Pour l'instant tout va bien.

Je ferme cette facture. Je reprends mon modèle et j'en créé une autre. Lorsque je clique sur mon bouton macro, la macro précédente qui avait permis de créer le fichier 1-712012-toto apparait (voir la photo) .'F:\Entreprise D''TENTE\facturation\1-712012-toto.xls'!Enregistrement_facture, alors que ce fichier est fermé.

Il manque certainement quelques choses dans la macro pour éviter que que je me retrouve avec deux macros. En fait il ne faut pas qu' une autre macro que celle que j'ai créée au départ(enregistrement_facture) ne s'intégre dans mon fichier modele_facture

Si vous pouvez me dépanner cela serait super. Je vous en remercie par avance

macro

Re,

Je me suis permis de t’apporter mon aide car tu étais restée bien longtemps sans réponse. Tes remerciements pour ma tentative d'aide me vont droit au coeur. Comme tu ne dis pas un mot sur mon travail, je pense que je suis complètement à coté. Désolé

Cordialement.

Bonsoir

En regardant ton image (des fois ça sert) j'ai remarqué que tu avais un bouton de plus

Alors à tester

Dans le module ThisWorkbook

Private Sub Workbook_Open()
  Application.CommandBars("Standard").FindControl(ID:=271).OnAction = _
            "'" & ThisWorkbook.FullName & "'!Enregistrement_facture"
End Sub

Bonjour

Excusez moi Yvouille et Banzai64, bien évidemment je vous remercie de votre contribution à mon problème. Je suis tout nouveau sur les forums, je ne connais pas encore trop les us et coutumes.

Ta réponse Yvouille ne convient pas

Quant à banzai, effectivement j'ai un bouton enregistrement facture qui déclenche la macro "enregistrement_facture". Une fois celle ci executer, si je veux refaire une nouvelle facture avec mon modéle, j'ai deux macros qui sont présentes (comme sur la photos) , celle de l'ancien fichier qui est fermé et celle du nouveau fichier qui est ouvert en attente d'enregistrement.

Ce matin j'ajoute ton code et je te fais part du résultat.

Encore mille merci à vous deux et mille excuses

macro1

rebonjour Banzai64

J'ai copié ton code dans ma macro. le problème avance. je m'explique :

quand j'ouvre le modèle pour la première fois et que je créé par exemple la facture" 1-812012-toto", tout se passe bien. je ferme le fichier je rouvre le modele, je créé une autre facture 2 "10-82012-eeeeeee", je n'ai plus d'erreur, c'est déjà ça . Grand merci banzai64

Mais le problème est que le 1er fichier s'ouvre systématiquement dès que je recréé une autre facture. C'est comme ci il n'y avait pas de réinitialisation du modèle afin qu'il n'y ait qu'une macrodans ce fichier modèle

Je ne sais pas si mes explications pourront faire avancer le smilllblick

Je te joins une copie d'écran.

cordialement et merci pour l'aide

Bonjour

Je n'ai pas ce soucis

  • J'ouvre le fichier modèle
  • Dans la liste des fichiers que ce fichier
  • Je modifie le numéro
  • Clic sur le bouton pour enregistrer
  • Dans la liste que le dernier fichier que j'ai créé
  • Fermeture
  • J'ouvre le fichier modèle
  • dans la liste des fichiers que ce fichier
  • etc
  • etc

Pas de solution

robbynash a écrit :

J'ai copié ton code dans ma macro.

Tu peux préciser s'il te plait ?

Je ne comprends ce que tu écris.

la macro avec ton code donnes ceci :

Private Sub Workbook_Open()

Application.CommandBars("Standard").FindControl(ID:=271).OnAction = _

"'" & ThisWorkbook.FullName & "'!Enregistrement_facture"

End Sub

Sub Enregistrement_facture()

'

' Enregistrement_facture Macro

ChDir "F:\Entreprise D'TENTE\facturation"

ActiveWorkbook.SaveAs Filename:=Range("E14")

End Sub

Si tu regardes bien la copie d'écran au moment de la création du fichier 10-812012 (en cliquant sur le bouton enregistrer facture à partir du modele), le fichier précédemment créer (1-812012) s'est ouvert, ce que je ne veux pas.. Il n'y a plus d'erreur, c'est une avancée. Mais il ne faut pas qu'une facture ancienne s'ouvre au moment de la création d'une nouvelle facture.

Il y a quelque chose qui manque dans la macro

Merci quand même pour ta recherche.

cordialement

Bonjour

la macro

Private Sub Workbook_Open() est a placer dans la module ThisWorkbook

thisworkbook v2
macro2

Toujours là banzai64 ?

j'ai effectué ce que tu m'as indiqué. Il note une erreur de debogage. Comme tu le verras dans la copie d'écran j'ai effectué deux fichiers client puis fermer les deux. tu remarqueras lors de la création du deuxième le premier s'est réouvert.

Bonjour

Je ne sais plus quoi dire ou faire

Voici le fichier qui me sert pour les tests

Modifies le chemin de sauvegarde

Bonjour

Le problème est résolu. J'ai recopier d'une autre façon et cela a fonctionné. Donc je te remercie grandement pour ton aide.

est ce que je peux profiter de tes connaissances pour te demander des renseignements supplémentaires.

A savoir, maintenant que les factures peuvent être fabriquées, comment ferais tu pour en même temps garder les données pour faire un fichier client.

Je m'étais dit que j'avais juste à faire une feuille supplémentaire avec nom, prenom etc... Au fur et à mesure que j'entre les données, celles ci sont copiées dans la facture. Mais le hic, c'est l'enregistrement et l'incrémentation des futurs clients. Je te joins le fichier ou j'ai noté un client bidon.

A ton avis est ce que c'est faisable en visual basiQUE

Merci pour ton aide


euh avec le fichier cela serait mieux

excuse moi

70modele-facture.zip (36.18 Ko)

Bonjour

Quitte à fournir un fichier, fournis un fichier qui fonctionne

Celui-ci recherche la macro dans 2-2012 01 08-Jean.xls

robbynash a écrit :

J'ai recopier d'une autre façon et cela a fonctionné.

T'as trouvé une solution qui fonctionne mais tu ne l'a fournie pas (c'est ton droit) mais moi je ne continue pas comme cela

Désolé je passe la main

Bonjour

Désolé pour le fichier, mais c'est ce que j'essaie de t'expliquer depuis le début. Pour redémarrer la macro sur du propre, il faut que j'aille dans personnaliser et que je réaffecte ma macro enregistrement sur la bonne feuille. J'ai toujours eu le parasite de la dernière feuille enregistrer. Le problème est là...

Comme je ne trouve pas de solutions avant de démarrer je vais reaffecter la bonne macro.

Cordialement

Rechercher des sujets similaires à "macro enregistrer feuille"