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 :

nom onglet dans statusbar


Sujet :

Macros et VBA Excel

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

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut nom onglet dans statusbar
    bonjour à tous,

    J'ai ce bout de code qui se trouve dans un module et qui se lance a l'activation du workbook.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub welcomeStatusBar()
     
    Dim d As String
    d = Format(Now(), "dd-mm-yyyy")
    Application.StatusBar = "Welcome" & " / " & Environ("Username") & " / " & d
     
    End Sub
    Je voudrais ajouter au bout de ce code le nom de l'onglet tel qu'affiché dans le classeur et tel qu'affiché dans le code VBA.

    De plus, je voudrais qu'il s'adapte a chaque changement de feuille. Je pensais appeler le code dans un private sub workbook_sheetactivate.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Oui essaie avec cet événement
    Et ajoute Sh.name dans ton statusbar
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    ce code est dans un module car j'y fait appel à plusieurs endroits dans mes codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub welcomeStatusBar()
     
    Dim d As String
    d = Format(Now(), "dd-mm-yyyy")
    Application.StatusBar = "Welcome" & " / " & Environ("Username") & " / " & d
     
    End Sub
    Comment faire appel à cette procédure et ajouter sh.name dans private sub workbook_sheetactivate(byval sh as object)

    Merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    et bien .... vous avez presque la réponse il me semple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub workbook_sheetactivate(byval sh as object)
    .....
    Call welcomeStatusBar(sh)
    End Sub
    et vous modifiez votre welcomeStatusBar pour mettre la worksheet en argument (optionnel ou non)
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  5. #5
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Merci pour votre réponse mais n'est-ce pas private sub...

    Je suis un peu débutant en VBA, que voulez vous dire par mettre la worksheet en argument?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Rebonjour,

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub welcomeStatusBar(Optional Sh As Worksheet)
     
    Dim d As String
    If Sh Is Nothing Then Set Sh = ActiveSheet
     
    d = Format(Now(), "dd-mm-yyyy")
    Application.StatusBar = "Welcome" & " / " & Environ("Username") & " / " & d & " Sheet " & Sh.Name
     
    End Sub
    et pour l'appeler dans ThisWorkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
    Call welcomeStatusBar(Sh)
     
    End Sub
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

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

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Merci je comprends mieux maintenant

    Cependant, il indique le nom de l'onglet et non le nom donné dans l'explorateur VBA.

    Je me suis peut être mal exprimé et/ou fais mal comprendre précédemment.

    Comment modifier pour avoir le nom VBA

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    que voulez vous dire par mettre la worksheet en argument ?
    Dans Excel, la plupart des fonctions ont besoin d'un ou plusieurs arguments pour renvoyer une valeur.
    Et bien en VBA, c'est pareil. Si tu souhaites écrire une procédure qui ouvre un fichier, trier un de ces tableaux et ensuite l'exporter avec condition. Au lieu d'écrire plusieurs fonction ou SUb qui font pratiquement la même chose, tu en écris une seule en prévoyant des paramètres.

    Pour faire plus simple.
    Imagine que tu achètes un robot qui ouvre des portes et dont la commande est OUVREPORTE et bien si tu as plusieurs portes, tu lui passeras comme argument le numéro de la prorte à ouvrir soit OUVREPORTE 4 pour la 4ème porte à ouvrir
    Si tu achètes maintenant un robot plus sophistiqué qui ouvre à la fois des portes et des fenêtres, et dont la commande est OUVRE, tu passeras deux arguments. L'un pour indiquer que c'est une porte ou une fenêtre qu'il doit ouvrir et le deuxième pour lui donner le numéro de la porte ou de la fenêtre à ouvrir soit OUVRE "Porte", 3

    Est-ce plus clair ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    Bonjour

    Dans ThisWorbook (Alt F11), procédure pour chaque onglet du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
      Dim T1 As String, T2 As String, T3 As String
      T1 = "Welcome" & " / " & Environ("Username")
      T2 = " / " & Format(Now(), "dd-mm-yyyy") & " en " & Sh.Name
      T3 = " et  nommée " & Sh.CodeName
      Application.StatusBar = T1 & T2 & T3
    End Sub
    Tu verras la distinction entre Name et Codename

  10. #10
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Pq ce code donne comme erreur "la méthode 'statusbar' de l'objet 'application' a échoué, quand je passe d'un classeur à un autre.
    le problème se pose quand l'autre classeur est en lecture seule.
    comment y remédier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub workbook_deactivate()
     
    Application.StatusBar = False 'remise à zéro de la barre d'état
     
    Application.ErrorCheckingOptions.BackgroundChecking = True
     
    End Sub

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    dans le module this workbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetActivate(ByVal sh As Object)
        remake_statusbar sh
    End Sub
    dans un module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub remake_statusbar(sh)
       Application.StatusBar = "Welcome" & " / " & Environ("Username") & " / " _
       & Format(Now(), " dd-mm-yyyy ") & "( onglet actif : " & sh.Name & " codename :" & sh.CodeName & " )"
    End Sub
    Nom : demo3.gif
Affichages : 239
Taille : 58,1 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par rossemma Voir le message
    Pq ce code donne comme erreur "la méthode 'statusbar' de l'objet 'application' a échoué, quand je passe d'un classeur à un autre.
    le problème se pose quand l'autre classeur est en lecture seule.
    comment y remédier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub workbook_deactivate()
     
    Application.StatusBar = False 'remise à zéro de la barre d'état
     
    Application.ErrorCheckingOptions.BackgroundChecking = True
     
    End Sub
    Merci Mr Toulon pour votre aide mais le problème est celui-ci.
    Je bloque, c'est énervant

  13. #13
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    Je relance car je bloque depuis deux jours et mes connaissances en VBA sont nulles pour trouver la solution.

    Merci à tous pour votre aide

  14. #14
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Pq ce code donne comme erreur "la méthode 'statusbar' de l'objet 'application' a échoué, quand je passe d'un classeur à un autre.
    le problème se pose quand l'autre classeur est en lecture seule.
    comment y remédier?
    Parce que tu n'étais pas clair.

    Que veux dire passer d'un classeur à l'autre
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    Re

    Les 2 classeurs étant ouverts, activer un onglet de l’un ou de l’autre, ne pose pas de problème chez moi, quand bien même le second est en lecture seule !
    Images attachées Images attachées  

  16. #16
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 23
    Points
    23
    Par défaut
    ta procédure de modification de statusbar étant liée à un évènement du classeur 1 il me semble normal que lorsque tu passes au classeur 2 il ne se passe rien...

  17. #17
    Membre régulier
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 89
    Points
    89
    Par défaut
    en fait j'ai le message lorsque que j'ouvre un autre classeur qui est en pièce jointe dans un mail. Il ouvre ce dernier en mode protégé.

Discussions similaires

  1. [AC-2010] Nom onglet dans un champ
    Par CmzxNene dans le forum VBA Access
    Réponses: 11
    Dernier message: 19/11/2013, 01h09
  2. [XL-2010] Lister Nom des onglets dans mail HTML
    Par cdrik78 dans le forum Excel
    Réponses: 1
    Dernier message: 13/02/2013, 10h28
  3. [XL-2003] Nom d'onglet dans une cellule
    Par Bulledeau dans le forum Conception
    Réponses: 6
    Dernier message: 15/01/2012, 13h35
  4. [XL-2003] Nom onglet dans un code
    Par jorisphi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/06/2010, 15h27
  5. [XL-2007] Référence à un nom d'onglet dans une formule de calcul
    Par FXdeCadix dans le forum Excel
    Réponses: 2
    Dernier message: 19/05/2010, 17h17

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