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 :

Boucle à plusieurs conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut Boucle à plusieurs conditions
    Bonjour à tous,

    J'aimerai réaliser une macro permettant une boucle avec plusieurs conditions.
    Je m'explique, en fait j'aimerai que lorsqu'on rentre qqch dans une case, genre A, B ou C, alors la case d'à coté correspond la valeur correspondante.
    Par exemple, A = 1, B = 3, C = 4, D = 6 et E = 7, j'aimerai une condition du genre Si la case B2 = A ou B ou ... E, alors la case B3 vaut la valeur correspondante.

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    A mettre dans le module de la feuille et faire des tests en colonne A. Utilise la fonction "Asc" qui retourne un Integer selon la lettre entrée :
    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'en colonne A
        If Target.Column <> 1 Then Exit Sub
        If Target.Count > 1 Then Exit Sub
     
        'une seule lettre dans la cellule
        If Len(Target) > 1 Then Exit Sub
     
        'lettre en majuscule
        If Target <> UCase(Target) Then Exit Sub
     
        'A = 1, B = 2, C = 3, etc...
        Target.Offset(, 1) = Asc(Target) - 64
     
    End Sub
    Si les valeurs doivent être propres à chaque lettres, une possibilité est d'utiliser la fonction Switch :
    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        'en colonne A
        If Target.Column <> 1 Then Exit Sub
        If Target.Count > 1 Then Exit Sub
     
        'une seule lettre dans la cellule
        If Len(Target) > 1 Then Exit Sub
     
        'lettre en majuscule
        If Target <> UCase(Target) Then Exit Sub
     
        Target.Offset(, 1) = Switch(Target = "A", 1, Target = "B", 3, Target = "C", 6, Target = "D", 8)
     
    End Sub
    Hervé.

Discussions similaires

  1. [XL-2003] Boucle à plusieurs conditions
    Par midge dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/09/2014, 16h58
  2. [Débutant] Boucle if avec plusieurs conditions ?
    Par Imène_23 dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/09/2011, 14h06
  3. [XL-2003] Création de Boucles VBA avec plusieurs Conditions
    Par MatMout dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/07/2010, 10h31
  4. Réponses: 3
    Dernier message: 11/04/2008, 09h31
  5. syntaxe boucle if then (plusieurs conditions)
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2008, 14h42

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