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 :

utilisation de "Workbook_Open()" sous condition [XL-2010]


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
    Août 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 71
    Par défaut utilisation de "Workbook_Open()" sous condition
    Bonjour,

    Je viens vers vous car je bloque sur un point précis.

    En effet, dans mon programme j'utilise la fonction "Workbook_Open()" située dans "This workbook".

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Workbook_Open() 'permet le lancement de la procedure a l'ouverture du fichier
     
    If Workbook.Name = "Controle_Preliminaire_Base.xlsm" Then
    GoTo Ouverture_nouveau_fichier
    Else: GoTo Ouverture_fichier_deja_existant
     
    Ouverture_nouveau_fichier:
    instruction1
    instruction2
     
    Ouverture_fichier_deja_existant:
    instruction3
    Comme vous l'avez surement deviné, j'ai un soucis a cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Workbook.Name = "Controle_Preliminaire_Base.xlsm" Then
    Le but recherché est que lors de l'ouverture d'un fichier portant le nom "Controle_Preliminaire_Base.xlsm" alors je fais les instructions 1,2, et 3.
    Sinon je ne fais que l'instruction 3.

    Cependant, j'ai utilisé workbook.Name, filename et d'autres mais j'ai une erreur, ou bien lors de l'utilisation de Filename alors aucune des instructions n'est effectuées.

    Ma question est donc la suivante:
    Quel est la syntaxe afin de dire "fichier portant le nom:"" ".

    Merci d'avance

    Cordialement

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Par défaut
    bonjour,

    Essai avec ActiveWorkbook.name = "".

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    La procédure événementielle "Workbook.Open" agit uniquement lorsqu'on ouvre le fichier contenant la procédure. Si tu veux ouvrir un fichier à l'aide d'une macro et exécuter une procédure selon le fichier ouvert il faut le faire via une macro dans un module et non via une macro événementielle.

    Ci-dessous un exemple à placer dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Test()
    Dim Fichier As String, Tbl() As String
     
    Fichier = Application.GetOpenFilename
    Tbl = Split(Fichier, "\")
     
    If Tbl(UBound(Tbl)) = "Controle_Preliminaire_Base.xlsm" Then
        Workbooks.Open Filename:=Fichier  '<-- pour ouvrir le fichier sélectionné
        'instruction
    Else
        'instruction
    End If
     
    End Sub
    Tu peux jeter un oeil dans l'aide VBA sur l'instruction "GetOpenFilename" pour y ajouter les paramètres adéquats

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 71
    Par défaut
    Bonsoir,

    Merci de vos reponse et de votre aide.

    Oui, en effet, je me suis posé la question sur le fait d'avoir ma procedure dans le "Workbook.Open" et si ça pouvait venir de là...

    Je vais donc etudier les codes proposés (et les modifier le cas échéant).

    Merci pour votre aide et vous tiens au courant de la suite des evenements.

    Je ne ferme donc pas ce topic pour l'instant.

    Bonne soirée a vous.

    Amicalement

    Manu

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 71
    Par défaut
    Bonjour,

    Après tests, il s'avère que la ligne de code de Jeansairien intégrée dans mon "WorkbookOpen" fonctionne bien (donc merci Jeansairein .
    Par conséquent, je vais rester sur celle-ci.

    Fring: merci tout de même évidement pour tes conseilles je garde ton code pour mes prochaines procédures...

    Je considère donc ce topic comme résolu.

    Bonne fin de journée et bon courage a tous.

    Cordialement

    Manu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/11/2006, 18h00

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