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 :

Message d'accueil à l'ouverture d'un classeur [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut Message d'accueil à l'ouverture d'un classeur
    Bonjour,

    J'ai créé une Macro pour un message d'accueil... Jusque là rien d'extraordinaire...
    Cependant, mes connaissances restent limitées puisqu'au lieu de voir la date je souhaite qu'il aille chercher une valeur dans une cellule d'une autre feuille du classuer... pourriez vous m'aider:
    voici mon code et en jaune ce que je voudrais changer

    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
    Private Sub Workbook_Open()
     
        'Déclaration de la variable
        Dim Datejour As Date
        'Affectation de la variable
        Datejour = Now()
        'Ouverture du classeur sur la feuille MENU
        Sheets("MENU").Activate
        'Se positionner sur une cellule particulière
        Range("E11").Select
        'Message de bienvenue
        MsgBox "Messieurs, bienvenue sur le tableau de pilotage..." & vbCrLf & " La DTO du jour :" _
        & vbCrLf & vbTab & Format(Datejour, "dddd dd mmmm yyyy"), vbOKOnly + vbInformation, "BIENVENUE"
     
        End Sub
    à la place qu'il me donne la date : Format(Datejour, "dddd dd mmmm yyyy"), je veux qu'il me donne un pourcentage qui se trouve dans une cellule qui se trouve dans une autre feuille du classeur

    En vous remerciant par avance

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Lardennais, bonjour le forum,

    Comme tu n'as pas précisé, tu adapteras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MsgBox "Messieurs, bienvenue sur le tableau de pilotage..." & vbCrLf & " La DTO du jour :" _
    & vbCrLf & vbTab & Worksheets("Ton_Onglet").Range("Ta_Cellule").Value & vbOKOnly + vbInformation, "BIENVENUE"

  3. #3
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut Message d'erreur
    Bonjour Thautème,

    Merci pour ton aide.

    Cependant, lorsque je lance l’exécution voici quel message d'erreur apparait:

    Erreur exécution '9':
    L'indice n'appartient pas à la sélection.

    @+

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Heu... Tu as bien adapté ?!... Il faut remplacer Ton_Onglet par le nom de l'onglet en question et Ta_Cellule par l'adresse de la cellule que tu souhaites. Donc si tu veux qu'il aille chercher par exemple la cellule A1 de l'onglet Feuil2 il faudra écrire :

    MsgBox "Messieurs, bienvenue sur le tableau de pilotage..." & vbCrLf & " La DTO du jour :" & vbCrLf & vbTab & Worksheets("Feuil2").Range("A1").Value & vbOKOnly + vbInformation, "BIENVENUE"

  5. #5
    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 : 68
    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,

    Thautheme,

    Il faudrait remplacer le "&" par une virgule.

    Pour éviter ce gere d'erreur, personnellement, je préconise la précision des paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Sub essai_msgbox()
     
    MsgBox _
            Prompt:="Messieurs, bienvenue sur le tableau de pilotage..." & vbCrLf & " La DTO du jour :" & vbCrLf & vbTab & Worksheets("Feuil2").Range("A1").Value, _
            Buttons:=vbOKOnly + vbInformation, _
            Title:="Bienvenue"
     
    End Sub

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Oui c'est exact. Bien vu Marcel... J'avoue que je navet même pas testé... Honte à moi.

  7. #7
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut Message d'erreur
    Bonjour à vous 2.

    je vous remercie beaucoup, le code fonctionne parfaitement.

    Cependant, encore désolé, je dois être un boulet...

    le nombre que je veux inscrire est en pourcentage. la cellule est une cellule fussionnée en pourcentag mais dans mon message, c'est en virgule... 0.8256489688 pour 83%.

    Comment dois-je faire?

    Merci de votre aide.

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Utilises Format() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim x As Double
    Dim y As String
       x = Worksheets("Feuil1").Range("A1").Value
       y = Format(x, "0%")
       MsgBox y
    End Sub

  9. #9
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut
    Désolé, mais du coup dans mon code je mets ça comment car pour le moment j'ai ca...

    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
    Private Sub Workbook_Open()
     
        'Déclaration de la variable
        Dim Datejour As Date
        'Affectation de la variable
        Datejour = Now()
        'Ouverture du classeur sur la feuille MENU
        Sheets("MENU").Activate
        'Se positionner sur une cellule particulière
        Range("E11").Select
        'Message de bienvenue
        MsgBox _
            Prompt:="Messieurs, bienvenue sur le tableau de pilotage..." & vbCrLf & " La DTO du jour :" & vbCrLf & vbTab & Worksheets("SUIVI DTO XX°XXXX").Range("H25").Value, _
            Buttons:=vbOKOnly + vbInformation, _
            Title:="Bienvenue"
    Merci encore

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut autre présentation
    Bonjour …

    En passant par un formulaire (Userform) dont certaines propriétés sont définies dans la liste de celles-ci (F4) avec un contrôle Label nommé Msg, on peut jouer sur les couleurs, les tailles, le clignotement, le texte défilant …
    Exemple simple, tout le code est dans ThisWorkbook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
        Application.Goto Feuil1.[E11]
        Ov.Caption = "Bonjour Messieurs ..."
        Ov.Msg = "Bienvenue sur le tableau de pilotage." & vbLf & _
                vbLf & "    La DTO du jour est de ... " & Format(Feuil2.[H25], "0%") & " !"
        Ov.Show
    End Sub
    Nom : VBA.jpg
Affichages : 1529
Taille : 176,8 Ko
    Nota : s’il y a d’autres informations à prendre en compte, les programmer juste avant le End Sub.
    Fichiers attachés Fichiers attachés

  11. #11
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut Pfff... Je galère
    Bonjour,

    Comment fais-tu pour créér un controleur LABEL?

    Pour faire simple voici ce que je vois:

    Nom : Capture1.PNG
Affichages : 1479
Taille : 29,8 KoNom : Capture2.PNG
Affichages : 1445
Taille : 37,5 Ko

    Par contre MSG LABEL, je n'arrive pas à le créer et le USERFORM1: Impossible à supprimer...

    Je suis perdu

    Merci de ton aide

  12. #12
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 54
    Par défaut
    Citation Envoyé par Lardennais08 Voir le message
    Bonjour,

    Comment fais-tu pour créér un controleur LABEL?

    Merci de ton aide
    Dans ta barre d’icône, tu as un bouton "Boîte à Outils" et tu as un contrôles qui s'appelle "Intitulé"

  13. #13
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut
    Citation Envoyé par Mammy Potter Voir le message
    Dans ta barre d’icône, tu as un bouton "Boîte à Outils" et tu as un contrôles qui s'appelle "Intitulé"
    Boite à outils OK...

    Par contre quand je séléctionne le cadre avec "Intutilé", il m'apparait "Opértion non terminée en raison de l'erreur 800a0011?

  14. #14
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Janvier 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2020
    Messages : 20
    Par défaut J'ai réussi
    Citation Envoyé par Lardennais08 Voir le message
    Boite à outils OK...

    Par contre quand je séléctionne le cadre avec "Intutilé", il m'apparait "Opértion non terminée en raison de l'erreur 800a0011?

    Merci à tous, j'ai réussi

  15. #15
    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 : 68
    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,

    Ordonc (ravi de te retrouver)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Goto Feuil1.[E11]
    Personnellement, je préfère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.Goto Reference:=Feuil1.Range("E11"), Scroll:= True
    'Ou Scroll:=False
    Ceci en sachant que [E11] signifie, sauf erreur, "Evaluation de la cellule E11"

    Pour ma part, je pratique cette syntaxe dans le seul cas d'utilisation de la valeur de la cellule, non son adresse.

    Cela dit sans flagornerie aucune (j'adoptais ce principe bien avant), cette écriture entre crochets est commentée sur le blog de Pierre, qui la déconseille.

    Lardennais,

    Sans doute pourrais-tu retourner ton code afin que l'on puisse y apporter une suggestion et/ou un commentaire.

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

Discussions similaires

  1. [XL-2010] La macro s'arrête sans message après ouverture d'un classeur avec "On Error Resume Next"
    Par Dédé6621 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 08/12/2016, 11h57
  2. Message d'alerte à l'ouverture d'acces
    Par Andalor dans le forum Access
    Réponses: 5
    Dernier message: 22/06/2006, 15h05
  3. Message de sécurité à l'ouverture
    Par le lynx dans le forum Sécurité
    Réponses: 2
    Dernier message: 15/06/2006, 13h00
  4. [VBA-E] ouverture d'un classeur
    Par sophie447 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2006, 21h18
  5. [VBA-E]message lors de l'ouverture d'un autre classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 15h30

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