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 :

Valeur maximum dans plage de cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Data Processor
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Data Processor
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Par défaut Valeur maximum dans plage de cellules
    Bonjour,

    J'aimerais calculer la somme d'une plage de cellules et modifier la valeur qui se trouve dans la cellule qui contient la valeur maximum si le total ne fait pas 100.

    Mes données se trouvent sur une plage de cellules qui va de la colonne D à la colonne O. Le total est fait par ligne.

    A noter que la valeur maximum peut se trouver dans 2 cellules et que je dois alors modifier la première.

    Je peux calculer une valeur somme, mais je n'arrive pas à trouver la valeur maximum dans une plage de cellule (pe: de D4:O4).

    Pouvez-vous m'aider pour trouver le maximum dans une plage de cellules dont la ligne est variable. J'essaierai ensuite de me débrouiller pour le reste.

    Merci d'avance

    Anthony

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Lig = 3
    MsgBox Application.Max(Range("D" & Lig & ":O" & Lig))

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Bonjour ab1to,

    Voici un petit bout de 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
    Dim i as Byte
    Dim Max as Double, Somme as Double
    Dim Colonne as Byte
     
    Max = Range("D4")
    Somme = Max
    Colonne = Range("D4").Column
    For i = 1 to 11
        With Range("D4").Offset(0, i)
            If .Value > Max Then
                Max = .Value
                Colonne = .Column
            End If
            Somme = Somme + .Value
        End With
    Next i
    If Somme < 100 Then
        Cells(4, Colonne) = Cells(4, Colonne) + 100 - Somme
    End If
    Ca donne ce que tu veux ?

  4. #4
    Membre averti
    Homme Profil pro
    Data Processor
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Data Processor
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Par défaut
    Super !!!

    Ca fonctionne parfaitement.
    J'ai juste adapter le code car la différence peut être supérieure ou inférieure à 100, et j'ai fait une boucle pour chaque ligne de ma feuille et une condition sur ma colonne P qui doit être vide (car si elle n'est pas vide, cela veut dire que j'ai du texte dans les cellules ce qui pose des problèmes pour la somme).

    Merci beaucoup.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    Sub Fol_Sheet3()
     
    Sheets("Sheet3").Select
     
    Dim LastRow As Integer
    Dim RowRes As Integer
    Dim i As Byte
    Dim Max As Double, Somme As Double
    Dim Colonne As Byte
     
    LastRow = Range("D" & 2).End(xlDown).Row 
     
    For RowRes = 2 To LastRow
     
    If Range("P" & RowRes).Value = "" Then
     
    Max = Range("D" & RowRes)
    Somme = Max
    Colonne = Range("D" & RowRes).Column
    For i = 1 To 11
        With Range("D" & RowRes).Offset(0, i)
            If .Value > Max Then
                Max = .Value
                Colonne = .Column
            End If
            Somme = Somme + .Value
        End With
    Next i
    If Somme <> 100 Then
        Cells(RowRes, Colonne) = Cells(RowRes, Colonne) + 100 - Somme
    End If
     
    End If
     
    Next RowRes
     
    End Sub
    Anthony

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

Discussions similaires

  1. Macro pour recherche valeur dans plage de cellules sur 2 colonnes.
    Par bipol51430 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2014, 11h43
  2. recherche de la valeur maximum dans une série de cellules
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2008, 09h33
  3. Réponses: 1
    Dernier message: 07/08/2007, 10h06
  4. Recherche dans plage de cellules
    Par BATiViR dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2007, 14h31
  5. [VBA-E] Effacer les valeurs d'une plage de cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2006, 12h07

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