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 :

Insertion d'une condition dans un UserForm [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Points : 48
    Points
    48
    Par défaut Insertion d'une condition dans un UserForm
    Bonjour le forum,

    Travaillant sur un UserForm, je me demande s'il est possible d'insérer une condition.


    Voici une partie de mon code :
    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
    Private Sub Identité_Change()
    With Sheets("Base Agents")
    NumLigne = Me.Identité.ListIndex + 5
    Me.Coef.Value = .Cells(NumLigne, 19).Value
    Me.Serv.Value = .Cells(NumLigne, 51).Value
    Me.CP_Ville.Value = Right("00000" & .Cells(NumLigne, 12).Value, 5) & " " & .Cells(NumLigne, 13).Value
    Me.Cptc.Value = .Cells(NumLigne, 21).Value
    Me.Date_entrée.Value = .Cells(NumLigne, 27).Value
    Me.Emploi.Value = .Cells(NumLigne, 14).Value
    Me.Exp.Value = .Cells(NumLigne, 20).Value
    Me.Horaire.Value = .Cells(NumLigne, 22).Value
    Me.N°_agent.Value = .Cells(NumLigne, 1).Value
    Me.Domiciliation.Value = .Cells(NumLigne, 52).Value
    Me.NIR.Value = .Cells(NumLigne, 2).Value
    Me.Adresse.Value = .Cells(NumLigne, 6).Value & " " & Cells(NumLigne, 7).Value
    Me.Total.Value = .Cells(NumLigne, 19).Value + .Cells(NumLigne, 20).Value + .Cells(NumLigne, 21).Value
    Me.Niveau.Value = .Cells(NumLigne, 32).Value
    Me.Catégorie.Value = XXXXX
    
    En fait, selon le niveau du salarié dans la grille des emplois, il sera Employé ou Cadre ou Agent de direction. Je voudrais pouvoir dire que si la valeur de la colonne 32 est 01 ou 02 ou 03, alors la valeur de la cellule "Catégorie" est "Employé". Si c'est 04, 05, 06, c'est "Cadre". Si c'est 10, 11, 12, c'est "Agent de direction".

    Je suppose que c'est possible. Pour l'instant, j'ai mélangé des IF des OR ... et j'ai toujours des erreurs.

    Si quelqu'un passe par là et a la répone, pourrait-il me la donner ? Ca me permettrait de l'adapter à d'autres cas similaires que je risque d'avoir.

    Merci d'avance.

    Bien cordialement.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour.

    Citation Envoyé par benadry Voir le message
    j'ai mélangé des IF des OR ...
    Comme je ne vois aucun If dans le code (…), consulter l'aide de Select Case par exemple …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre du Club
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Points : 48
    Points
    48
    Par défaut
    Bonjour Marc-L,

    En fait, comme ça ne marchait, pas j'ai tout enlevé !

    Ca ressemblait à quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Catégorie.Value = IF (.Cells(NumLigne, 32).Value) = "01" OR (.Cells(NumLigne, 32).Value) = "02" OR (.Cells(NumLigne, 32).Value) = "03" Then
    "Employé"
    Je ne suis pas allé plus loin, car c'était déjà faux.

    Merci d'avance pour toute aide.

    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Tester avec .Text à la place de .Value sinon c'est plus simple via Select Case


    __________________________________________________________________________________________
    Il n'y a pas que les aigles qui atteignent les sommets, les escargots aussi mais ils en bavent !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour
    De la bonne utilisation du IF
    si (.Cells(NumLigne, 32).Value) = 01 ou 02 ou 03 alors...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(NumLigne, 32).Value = "01" Or .Cells(NumLigne, 32).Value = "02" Or .Cells(NumLigne, 32).Value = "03" Then Me.Catégorie.Value = "Employé"
    ou bien ceci
    si .Cells(NumLigne, 32).Value = "01" alors...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (.Cells(NumLigne, 32).Value = "01"  Then Me.Catégorie.Value = "Employé"
    If .Cells(NumLigne, 32).Value = "02"  Then Me.Catégorie.Value = "Cadre"
    If .Cells(NumLigne, 32).Value = "03"  Then Me.Catégorie.Value = "ambassadeur"
    la valeur de la colonne AF est t-elle bien egale a "01" ou est ce simplement 1 auquel cas la condition s"ecrit
    If .Cells(NumLigne, 32) = 1 Then Me.Catégorie.Value = "Employé"

    il n'y a pas besoin de end if car le then est sur la meme ligne.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Si c'est une valeur numérique, mieux vaut préciser quand même .Value (parfois VBA utilise .Text selon le contexte …)
    et dans ce cas il n'y a besoin que d'un seul test par catégorie tel que présenté : < 4, < 6 ou > 9 …

    Mais Select Case est plus adapté, surtout s'il y a d'autres catégories …


    __________________________________________________________________________________________
    La connaissance, c'est comme la confiture, moins on en a plus on l'étale !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre du Club
    Inscrit en
    Juin 2013
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 114
    Points : 48
    Points
    48
    Par défaut
    Bonjour Keygen08,

    Ca marche très bien.

    Merci beaucoup.

    Cordialement.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/04/2016, 16h43
  2. Insertion d'une image dans un UserForm
    Par babylone_59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/09/2008, 19h37
  3. Insertion d'une icone dans le SystemTray
    Par Vow dans le forum MFC
    Réponses: 23
    Dernier message: 25/01/2008, 14h50
  4. insertion d'une date dans visual foxpro
    Par yvescollet dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/05/2005, 15h39
  5. Introduire une condition dans une requete
    Par DeezerD dans le forum Langage SQL
    Réponses: 9
    Dernier message: 12/10/2004, 18h13

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