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 :

condition entre deux cellule et forcer decriture dans la troisieme cellule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club  
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 2
    Points : 3
    Points
    3
    Par défaut condition entre deux cellule et forcer decriture dans la troisieme cellule
    slt
    je doit remlpir un tableau qui contient de colonnes de notes , note1 et note 2 si la difference entre ces deux notes est superieur a 3 on ecrit dans la toisieme cellule une note differente sinon on calcul la moyenne entre les deux notes (note1 et note2)
    svp aider moi construire un code en vba
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Une façon de faire, à adapter si nécessaire:
    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
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim lo As ListObject, r As Range
        Dim kR As Long, kC As Long
        Dim kC1 As Long, kC2 As Long, kC3 As Long
        If Target.Count > 1 Then Exit Sub
        Set lo = ActiveSheet.ListObjects("Tableau1")
        Set r = lo.HeaderRowRange
        For kC = 1 To r.Columns.Count
            If r(kC) = "Note1" Then kC1 = r(kC).Column
            If r(kC) = "Note2" Then kC2 = r(kC).Column
            If r(kC) = "Note3" Then kC3 = r(kC).Column
        Next kC
        Set r = Intersect(Target, lo.DataBodyRange)
        If r Is Nothing Then
            '--- hors tableau, ne rien faire
        Else
            kR = Target.Row
            kC = Target.Column
            If kC = kC1 Or kC = kC2 Then
                If Cells(kR, kC1) <> "" And Cells(kR, kC2) <> "" Then
                    If Abs(Cells(kR, kC1) - Cells(kR, kC2)) <= 3 Then
                        Cells(kR, kC3) = (Cells(kR, kC1) + Cells(kR, kC2)) / 2
                    End If
                End If
            End If
        End If
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2013] Problème dans une condition entre deux dates
    Par PIERRE-DEVIN dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/09/2017, 16h34
  2. [XL-2013] TCD - faire un pourcentage entre deux cellules dans une même colonne
    Par Pauliakov dans le forum Excel
    Réponses: 10
    Dernier message: 25/08/2017, 14h38
  3. Réponses: 1
    Dernier message: 02/01/2017, 15h51
  4. Réponses: 2
    Dernier message: 10/10/2008, 20h35
  5. Probleme de comparaison entre deux cellules identiques
    Par GlamIS dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/07/2008, 14h50

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