IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA pour Lancement et fermeture (auto-save)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut VBA pour Lancement et fermeture (auto-save)
    Je commence dans le codage VBa mais tranquillement j'apprend les bases (comme la plupart qui écrivent sur le forum probablement).

    Je vous explique mon problème. J'ai créé une feuille de soumission qui ajoute 1 (+1) à la cellule F11 (qui est le numéro de la facture) à chaque fois que j'ouvre le fichier "Soumissions.xls". À la fermeture du fichier, si les cases sont vides, donc qu'aucune soumission est en cours, un macro enlève 1 à la cellule F11 (pour qu'à l'ouverture le numéro de soumission se suit au lieu d'augmenter même si la dernière fois que le fichier a été ouvert aucune soumission n'a été écrite).

    Si à la fermeture les cases ne sont pas vide, une sauvegarde se fait sous le nom "Soumission #"cellule F11" & "le nom de la personne dans la cellule B14" & "la date d'Aujourd'hui".xls". Ensuite, toujours dans la fermeture, les cellules qui doivent être vides se font effacer avec ClearContents (sans effacer le numéro en F11) et finalement une sauvegarde est fait du fichier en "Soumissions.xls" pour avoir le modèle de base avec le nouveau numéro de soumission.

    Jusque là tout marche comme sur des roulettes. Le problème est que si j'ouvre une ancienne soumission, en la fermant ça refait les macros de "si les cases ne sont pas vide" donc en bout de ligne, si j'étais rendu à la soumission #60 mais que j'ouvre la 34, en réouvrant le modèle de base je me retrouve à 35 au lieu de 61.

    Bref, est-ce que c'est possible de dire au fichier "Si à ton ouverture, le worksheet est "Soumissions.xls", agis normalement, sinon, cancel le macro de sorti." ou une autre manière qui me permettrait de ne pas sauvegarder le modèle "Soumissions.xls" en sortant si la feuille est remplie tout en pouvant faire continuer le numérotage des soumissions la prochaine fois que j'ouvre le fichier.

    Je vous copie mon code du "ThisWorkbook" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Option Explicit
    Private Sub Workbook_Open()
    If ThisWorkbook.Name = "Soumissions.xls" Then
    Range("F11").Value = Range("F11").Value + 1
    End If
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Range("B14,B15,B16,B17,B18,B19,B20,B21") = Empty Then
    Range("F11").Value = Range("F11").Value - 1
    SaveOri '--> (C'est mon macro qui enregistre par dessus le modèle de base de Soumission.xls)
    ThisWorkbook.Saved = True
    Else
    SaveAsA1 '--> (Le macro qui enregistre-sous la feuille sous un autre nom)
    Application.ScreenUpdating = False
    reset '--> (Le macro qui efface les données pour avoir un modèle vierge tout en gardant la case F11)
    SaveOri
    End If
    End Sub
    On m'a suggéré d'insérer la ligne : If ThisWorkbook.Name <> "Soumissions.xls" Then Exit Sub au début du "Workbook_BeforeClose" mais ça ne marche pas. Ça avait l'air de marcher au début mais une fois le fichier excel chez le client, le problème persiste, quand j'ouvre une ancienne soumission, que je la ferme et que je réouvre le modèle de base, le numéro de la soumission est celui après l'ancienne soumission ouverte au lieu de suivre celle de la dernière soumission enregistrée.

    Merci!

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, sauvegarde en Pdf ou regarde dans http://silkyroad.developpez.com/VBA/...cEditor/#LIV-D pour supprimer le code

Discussions similaires

  1. [XL-2003] Code VBA pour envoi mail auto Lotus 8.5
    Par thomasmbai dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/06/2012, 19h16
  2. VBA raccourcis clavier pour lancement macro
    Par JNP63 dans le forum VBA Word
    Réponses: 4
    Dernier message: 25/11/2008, 17h26
  3. VBA pour lancement automatique de lecture de diapositives
    Par rboini dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 11/08/2007, 11h21
  4. [VBA-Word] lancement de macro à la fermeture de fichier
    Par perophron dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/06/2007, 15h32
  5. fermeture auto de connexion TComPort
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 00h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo