Ajout de +1 dans une colonne si sa ligne = minimum

Bonjour,

J'aimerais faire une macro qui fait des "+1" dans une colonne quand la valeur 2 colonnes plus loin est la plus basse de son groupe. (La valeur de la 3e colonne change avec les ajout de +1, la valeur minimale va donc varier au fil de la macro.)

Pour le moment, ma macro mets des +1 dans la première ligne seulement, j'ai surement mal paramétré ma boucle... (Ça fait trop longtemps j'ai pas fait de VBA...)

Merci de votre aide.

4test.xlsm (14.68 Ko)

bonjour,

une proposition de correction.

Sub Macro_creation_camion()

    Dim cellule As Range

    Do
        For Each cellule In Range("G7:G13")
        If cellule = "" Then cellule = 0 'remplace une cellule vide par 0
            If cellule.Value = Application.Min(Range("G7:G13")) Then cellule.Value = cellule.Value + 1
            If Range("G15") >= 45 Then Exit Do
        Next cellule
    Loop

End Sub

Bonjour,

La correction améliore la boucle (vérifie plus souvent si le seuil est atteint) mais la vérification avec la valeur de la colonne i ne semble pas se faire; les +1 s'ajoute 1 par ligne jusqu'au seuil au lieu de s'appliquer seulement lorsque que la valeur dans colonne i est au minimum.

Est-ce qu' "Application.Min" qui est la mauvaise instruction pour la vérification de la valeur vs le minimum ?

Merci

re-,

Application.Min(Range("G7:G13"))

cette instruction retourne le minimum trouvé dans les cellules G7 à G13. Pour la colonne "i" il faut remplacer le G par i et adapter éventuellement les numéros de ligne.

Sub Macro_creation_camion()

    Dim cellule As Range

    Do
        For Each cellule In Range("I7:I13")
            If cellule.Value = Application.Min(Range("I7:I13")) Then cellule.Offset(0, -2).Value = cellule.Offset(0, -2).Value + 1
            If Range("G15") >= 45 Then Exit Do
        Next cellule
    Loop

End Sub

Merci beaucoup de votre aide, ça semble fonctionner comme souhaité.

J'étais proche mais loin à la fois... Encore merci :-)

Rechercher des sujets similaires à "ajout colonne ligne minimum"