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 :

PB de calcul à partir d'une colonne [XL-2007]


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
    Inscrit en
    Janvier 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 234
    Par défaut PB de calcul à partir d'une colonne
    Bonjour

    J'ai un tableau de suivi pour les résultats des matchs de foot à la MT. Les scores donnent un résultat aux 2 équipes traduit par soit un V, N ou D.
    Dans le tableau récap j'avais 2 colonnes et tout fonctionnait bien :
    Record saison : on vient compter le nb de matchs max sans Nul à la MT
    En cours : On compte le nb de matchs sans nul à la MT en cours

    J'ai voulu insérer une colonne en D, avec des données rentrées manuellement.

    Le pb vient du décompte des 2 colonnes qui commencent à compter à partir de la colonne D et j'aimerais que le décompte se fasse à partir de la colonne E.
    J'ai essayé de changer le code sans succès.

    J'aurais besoin d'un coup de pouce

    Code avant :
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    '
    Dim iRow%, iCol%, iColT%
    '
    On Error Resume Next
    Application.EnableEvents = False
    '
    If Not Intersect(Target, Range("D3:AO22")) Is Nothing Then
        iRow = Target.Row
        iColT = [D2].End(xlToRight).Column + 1
        iCol = Range("D" & iRow & ":AP" & iRow).Find(what:="N", lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Column + 1
        iCol = IIf(iCol = 0, 4, iCol)
        Range("C" & iRow).Value = WorksheetFunction.CountA(Range(fctCol(iCol) & iRow).Resize(1, iColT - iCol))
        Range("B" & iRow).Value = WorksheetFunction.Max(Range("B" & iRow).Value, Range("C" & iRow).Value)
        If Range("C" & iRow).Value = 0 Then Range("C" & iRow).Value = ""
    End If
    '
    Application.EnableEvents = True
    '
    End Sub
     
    Public Function fctCol(ByVal iCol%) As String
    '
    fctCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
    '
    End Function
    code après :
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    '
    Dim iRow%, iCol%, iColT%
    '
    On Error Resume Next
    Application.EnableEvents = False
    '
    If Not Intersect(Target, Range("E3:AP22")) Is Nothing Then
        iRow = Target.Row
        iColT = [E2].End(xlToRight).Column + 1
        iCol = Range("E" & iRow & ":AQ" & iRow).Find(what:="N", lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Column + 1
        iCol = IIf(iCol = 0, 4, iCol)
        Range("C" & iRow).Value = WorksheetFunction.CountA(Range(fctCol(iCol) & iRow).Resize(1, iColT - iCol))
        Range("B" & iRow).Value = WorksheetFunction.Max(Range("B" & iRow).Value, Range("C" & iRow).Value)
        If Range("C" & iRow).Value = 0 Then Range("C" & iRow).Value = ""
    End If
    '
    Application.EnableEvents = True
    '
    End Sub
     
    Public Function fctCol(ByVal iCol%) As String
    '
    fctCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
    '
    End Function
    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    lorsque tu fais de l'exécution pas à pas, à partir de quelle ligne les valeurs de tes variables diffèrent-ils ?

    A première vue, il reste un écart que tu n'aurais pas traité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iCol = IIf(iCol = 0, 4, iCol)
    à transformer selon moi en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iCol = IIf(iCol = 0, 5, iCol)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 234
    Par défaut
    Super Merci ça fonctionne !!!

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

Discussions similaires

  1. Combobox à partir d'une colonne
    Par GTbenj dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/06/2008, 16h29
  2. Addition de chiffre a partir d'une colonne
    Par DeFCrew dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 03/10/2007, 11h18
  3. [MySQL] Affichage d'un résultat calculé à partir d'une bd
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 31/01/2006, 16h40
  4. Calcul à partir d'une table
    Par Didi17 dans le forum Access
    Réponses: 1
    Dernier message: 28/10/2005, 08h37
  5. Réponses: 2
    Dernier message: 03/10/2005, 10h09

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