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 :

worksheet activate qui marche pas [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut worksheet activate qui marche pas
    Bonjour,
    Je bloque sur le problème suivant.
    A l'ouverture du classeur, dans "Thisworkbook" se trouve le code suivant afin d'activer à l'ouverture la feuille sh_11xx (codename).

    Dans la feuille se trouve le code suivant :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Private Sub worksheet_activate()
     
    Application.ScreenUpdating = False
     
    Me.Unprotect password:=PW
     
    'mise en page du titre
     
        Dim T1$, T2$, chaine_rouge$, x&
        T1 = sh_parameters.Range("A21").Value
        T2 = sh_update.Range("C1")
        chaine_rouge = "(source-oorsprong SAP - " & T2 & ")"
        With Range("a1")
            .Value = "Dépenses de personnel / Personeelsuitgaven - Bud_" & T1 & " " & chaine_rouge
            x = InStrRev(.Value, chaine_rouge)
            With .Font
                .Bold = True
                .Italic = True
                .Name = "Verdana"
                .Size = 18
            End With
            .Characters(x, Len(chaine_rouge)).Font.Color = vbRed
        End With
     
     
    'ouverture sur cellule déterminée
    Application.Goto reference:=Range("M2"), Scroll:=True
     
    With Me
        .Range("a1").Interior.Color = RGB(255, 255, 176)
        .Columns("A:XFD").Hidden = False
        .Columns("B:F").Hidden = True
        .Columns("H").ColumnWidth = 2.6
        .Columns("AC").ColumnWidth = 7.75
        .Columns("I").ColumnWidth = 17.15
        .Columns("L").ColumnWidth = 17.15
        .Columns("AA:AB").ColumnWidth = 17.15
        .Columns("J:K").ColumnWidth = 15.3
        .Columns("M:P").ColumnWidth = 15.3
        .Columns("R:X").ColumnWidth = 15.3
        .Columns("Z").ColumnWidth = 15.3
        .Columns("Y").ColumnWidth = 14.3
        .Columns("Q").ColumnWidth = 14.3
    End With
     
    Me.Protect password:=PW, UserInterfaceOnly:=True
     
    Application.ScreenUpdating = True
     
    End Sub
    Mon problème est que le code ne fait rien alors que j'active bien la feuille à l'ouverture du classeur.
    En fait si je ferme et enregistre le classeur sur une autre feuille, à l'ouverture le code marche
    Mais si par contre je ferme et enregistre sur la feuille 11xx ==> rien

    pq?

    Merci.

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Rosemma,

    Ravi de te retrouver.

    Sauf erreur, le Codename d'une feuille est le code retourné par l'éditeur VBE, généralement Feuil1 ou Sheet1.
    Ce n'est pas le nom de la feuille.

    Dans ce cas, tu peux coder sur l'évènement Open de ton classeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.Worksheets("sh_11xx").Activate
    Remarque.
    Même si ce rattachement est tacite, car intégré à un évènement Activate, mieux vaut prendre l'habitude de bien rattacher les objets Range à leur feuille parent.

  3. #3
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Au pire tu peux selectionner le Feuille2 puis la feuille1 dans open

  4. #4
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    merci
    mais je veux mettre le codename de l'éditeur vbe et pas le nom de l'onglet

  5. #5
    Invité
    Invité(e)
    Par défaut
    bonjour,
    comment veux tu activer un onglet et voir l’événement associé fonctionner alors que ton fichier est en train de s’ouvrir et pas encor activé lui même?

    copie col ton code dans un module standard et appel le d'Open!

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    mais je veux mettre le codename de l'éditeur vbe et pas le nom de l'onglet
    Consulte alors l'éditeur VBE. Généralement, le codename précède le nom de la feuille du classeur qui,lui, paraît entre parenthèses.

    Quand bien même, je préfère, pour ma part, utiliser le nom de la feuille plutôt que son CodeName.

  7. #7
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    j'ai crée un module et insérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub OMonit()
     
    sh_11xx.Activate
     
    End Sub
    et dans workbook.open

    mais problème idem

  8. #8
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut dysorthographie,

    J'ai peut-être mal lu.
    L'évènement Activate de la feuille se produira si la feuille est activée à l'Open du classeur, non?
    D'où la nécessité, parfois, d'utiliser la propriété EnableEvents.

    Ou c'est l'approche du week-end pascal?

  9. #9
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Salut dysorthographie,

    J'ai peut-être mal lu.
    L'évènement Activate de la feuille se produira si la feuille est activée à l'Open du classeur, non?
    D'où la nécessité, parfois, d'utiliser la propriété EnableEvents.

    Ou c'est l'approche du week-end pascal?
    EnableEvents ???

  10. #10
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Oui, c'est une propriété de l'objet Application.

    Elle permet d'annihiler les évènements si sa valeur - booléenne - est False.
    Eventuellement dans ton cas, il faudrait l'initier à True.

  11. #11
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Oui, c'est une propriété de l'objet Application.

    Elle permet d'annihiler les évènements si sa valeur - booléenne - est False.
    Eventuellement dans ton cas, il faudrait l'initier à True.
    dans le module ou dans workbook.open ?

  12. #12
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    dans le module ou dans workbook.open ?
    Là où l'activation d'un objet (Classeur, Feuille, Cellule) est susceptible de déclencher une action.
    Si cette propriété est initiée à False, il est parfois utile, voire nécessaire, de la rétablir à True en fin de procédure.

  13. #13
    Invité
    Invité(e)
    Par défaut
    si sh_11xx est activé à l'ouverture du fichier aucune chance que l'évènement ce déclenche, déclare en public!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Public Sub worksheet_activate()
    static Exec as booleant
    if Exec =true then exit sub
    Exec =true 
    traitement 
    Exec=false 
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub OMonit()
     sh_11xx.Activate
    sh_11xx.worksheet_activate
    End Sub

  14. #14
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    Merci
    Cela fonctionne
    et en plus j'ai appris quelque chose :-)

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

Discussions similaires

  1. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 14h19
  2. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50
  3. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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