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 :

Problème argument MsgBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut Problème argument MsgBox
    Bonjour à tous,
    C'est la première fois que je me frotte à MsgBox et la réponse à ma question est probablement élémentaire mais jusqu'ici je bloque.

    Voici mon code: If Selection.Value = "Administrateur" And Code <> "Micka" Then MsgBox ("Mot de passe incorrect")

    Il me manque un argument derrière celui, sans quoi le message s'affiche bien, mais cliquer sur "Ok" ne le fait pas disparaître.

    Quelqu'un d'assez aimable pour me filer un coup de main ?

    Bonne journée,
    Micka

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    If Selection.Value = "Administrateur" And Code <> "Micka" Then MsgBox ("Mot de passe incorrect")
    c'est quoi ce selection.value??? une réponse d'un inputbox?? aussi c'est quoi ce code??
    plus de précision ??

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim Utilisateur As String
    Dim MotDePasse As String
    Utilisateur = Application.InputBox("Saisir nom utilisateur : ", "Merci de saisir le nom de l'utilisateur", , , , , , 3) 'le 1 impose du numérique. Voir l'aide pour trouver la bonne constante
    MotDePasse = Application.InputBox("saisir mot de passe: ", "Merci de saisir le mot de passe", , , , , , 3) 'le 1 impose du numérique. Voir l'aide pour trouver la bonne constante
    If Utilisateur <> "AAA" Then MsgBox ("Utilisateur incorrecte")
    If MotDePasse <> "BBB" Then MsgBox ("mot de passe incorrecte")
    End Sub

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut
    Oups, c'est vrai que je n'ai pas apporté beaucoup de précision, méa culpa.
    J'ai créé un formulaire:
    - "Selection" correspond à un ComboBox qui me permet de choisir un service "admin, achats, etc".
    - "Code" correspond à un TextBox simple.


    Dans mon code, je voulais faire un truc du style "Si la sélection de mon combobox=admin et Code correspond à mon mdp, alors tous les onglets s'affichent".

    En pratique, cela ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For I = 2 To Sheets.Count
        Sheets(I).Visible = False
        If Selection.Value = "Administrateur" And Code = "Micka" Then Sheets(I).Visible = True
    Next I
    D'où le MsgBox que j'ai essayé d'ajouter: Si le mot de passe n'est pas le bon, afficher un message "Mot de passe incorrect".

    Voilà, merci beaucoup !

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    essayez avec
    NB : Je ne maitrise pas le Do...Loop...et cette partie de code j'ai pris de ce super site et j'ai adapté peut être pour tes besoins...

    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
    Private Sub CommandButton1_Click()
    Trouve = False
    i = 2
    Sheets("Codes").Visible = True
    Sheets("Codes").Select
    Do
        If selection.Value = Range("A" & i).Value And code.Value = Range("B" & i).Value Then
            Trouve = True
            MsgBox ("Mot de passe correcte")
        Else
            i = i + 1
        End If
    Loop While i <= Range("A2").End(xlDown).Row And Trouve = False
    If Trouve = False Then
        Sheets("Codes").Visible = False
        MsgBox "Nom d'utilisateur ou mot de passe incorrect"
        selection = ""
        code = ""
    End If
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 2 To Sheets("Codes").Range("A65536").End(xlUp).Row
      selection = Sheets("Codes").Range("A" & i)
      If selection.ListIndex = -1 Then selection.AddItem Sheets("Codes").Range("A" & i)
    Next i
    selection.Value = ""
    End Sub
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    - "Selection" correspond à un ComboBox qui me permet de choisir un service "admin, achats, etc".
    Si tu as nommé ta combobox "Selection" c'est une mauvaise idée ce nom est déjà utilisé en vba et pourrait causé des confusions
    Si Selection correspond au résultat d'un combobox que tu aurais sélectionné auparavant autant utiliser directement son nomcombobox1.value
    Dans mon code, je voulais faire un truc du style "Si la sélection de mon combobox=admin et Code correspond à mon mdp, alors tous les onglets s'affichent".

    En pratique, cela ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For I = 2 To Sheets.Count
        Sheets(I).Visible = False
        If Selection.Value = "Administrateur" And Code = "Micka" Then Sheets(I).Visible = True
    Next I
    Si tu met ta condition et ton msgbox dans la boucle il va refaire le test et afficher le résultat a chaque itération, il vaut mieux sortir le test de la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    If Selection.Value = "Administrateur" And Code = "Micka" Then 'si la condition est vraie
      For I = 2 To Sheets.Count 'on boucle sur les feuilles
          Sheets(I).Visible = true 'on les rend visibles
      Next I
    else 'sinon
      For I = 2 To Sheets.Count 'on boucle sur les feuilles
          Sheets(I).Visible = false 'on les rend invisibles
      Next I
    Msxbox "mdp incorrect" 'et on affiche le message
    end if

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,


    Il y a une différence entre :

    MsgBox ("Message") et
    MsgBox "Message"

    cf tutos du site :

    https://fring.developpez.com/vba/excel/msgbox/

    https://mhubiche.developpez.com/vba/...bases/#LII-A-2

Discussions similaires

  1. Problème argument / constructeurs
    Par The SorroW dans le forum ActionScript 3
    Réponses: 15
    Dernier message: 17/02/2009, 15h28
  2. [Inno] Problème avec MsgBox
    Par Mistic100 dans le forum Outils
    Réponses: 3
    Dernier message: 30/07/2008, 17h05
  3. Probléme argument pour une fonction d'un SLOT
    Par guillaume40 dans le forum Qt
    Réponses: 3
    Dernier message: 03/03/2008, 13h55
  4. [VB] - Problème avec msgbox
    Par franck1001 dans le forum VB.NET
    Réponses: 11
    Dernier message: 24/09/2007, 12h02
  5. Problème avec MsgBox
    Par guenfood dans le forum Access
    Réponses: 24
    Dernier message: 26/06/2006, 09h04

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