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 :

arreter une macro a la réouverture


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut arreter une macro a la réouverture
    salut
    j'ai se code qui fonctionne tres bien , mais si j'ouvre le classeur enregistrer sous le nom de la cellule f8 , le # fature change encore , car il y a un autre code qui dit a l'ouverture f8+1

    comment empecher cette action pour une nouvelle ouverture mais seulement pour les classeur enreistrer f8 ????

    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
    20
    21
    22
    Sub enregistrer_classeurfacture()
    Dim chemin As String, fichier As String
    chemin = ThisWorkbook.Path
    fichier = chemin & "\" & Range("f8") & ".xls"
    ActiveWorkbook.SaveAs Filename:=fichier
    Range("c9").Select
        Selection.ClearContents
    Range("a21:b44").Select
        Selection.ClearContents
        Range("e10").Select
     
        Dim N As Long
    N = Sheets(1).Range("F9").Value
    N = N + 1
    Sheets(1).Range("F9").Value = N
    Dim Numfacture As Long
    Numfacture = Sheets(1).Range("F9").Value
    Numfacture = Numfacture + 1
    Sheets(1).Range("F8").Value = "FE-" & Format(Date, "yymm") & Numfacture
     
     
    End Sub
    et le code a l'ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_open()
    Dim N As Long
    N = Sheets(1).Range("F9").Value
    N = N + 1
    Sheets(1).Range("F9").Value = N
    Dim Numfacture As Long
    Numfacture = Sheets(1).Range("F9").Value
    Numfacture = Numfacture + 1
    Sheets(1).Range("F8").Value = "FE-" & Format(Date, "yymm") & Numfacture
     
    End Sub
    merci

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,
    essaie ceci (qui suppose que ton nom de fichier est en sheets(1).Range("F8"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Workbook_open()
    Dim N As Long
    if sheets(1).Range("F8") = thisworkbook.name then
       N = Sheets(1).Range("F9").Value
       N = N + 1
       Sheets(1).Range("F9").Value = N
       Dim Numfacture As Long
       Numfacture = Sheets(1).Range("F9").Value
       Numfacture = Numfacture + 1
       Sheets(1).Range("F8").Value = "FE-" & Format(Date, "yymm") &   Numfacture
    endif
     
    End Sub
    Je n'ai pas testé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 132
    Par défaut
    ca semble bien fonctionner.

    en faite le workbook s'applique au classeur et dans ton code il s'applique a la feuille ????

    (j'essais de comprendre)

    merci

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par lebeniste Voir le message
    ca semble bien fonctionner.

    en faite le workbook s'applique au classeur et dans ton code il s'applique a la feuille ????

    (j'essais de comprendre)

    merci
    Ce n'est pas cela.
    A l'ouverture on vérifie que le nom du classeur (Thisworkbook.name) est bien égal au contenu de la cellule F8, ce que j'ai compris que tu as demandé.
    Si c'est la ces, on incrémente la facture, sinon, on ne fait rien.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. arreter une macro en cours d'execution.
    Par scons dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/06/2014, 11h49
  2. [XL-2003] Arret inexpliqué avant fin d'instructions d'une macro / raisons ?
    Par clent7550 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/07/2011, 14h38
  3. vba continuer ou arreter une macro selon la réponse
    Par ana92 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2011, 23h14
  4. [XL-2003] arret de la macro après un rajout dans une macro
    Par lege00 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/08/2009, 14h59
  5. arreter l'execution d'une macro
    Par benjibast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/09/2007, 14h54

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