XL 2013 Marco vba

abdounet1

XLDnaute Nouveau
Bonjour,
Dans un tableau, dans la premiere colonne on trouve des valeurs (salaires) et dans la ligne entête des tranches de salaires ( valeurs 2000, 2500 ...).
Je souhaite avoir une macro que pour chaque valeur de la colonne trouve la valeur la plus proche de la ligne entête et mettre un signe dans la cellule intersection.

Mecri d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Abdounet,
Un essai en PJ avec :
VB:
Sub Calcule()
    Dim L%, C%, Colonne%, Diff
    Application.ScreenUpdating = False
    DL = Range("A65500").End(xlUp).Row
    DC = Cells(1, Columns.Count).End(xlToLeft).Column
    Range("B2:Z1000").ClearContents
    For L = 2 To DL
        Diff = 9 ^ 9
        For C = 2 To DC
            If Abs(Cells(L, 1) - Cells(1, C)) <= Diff Then
                Diff = Abs(Cells(L, 1) - Cells(1, C))
                Colonne = C
            End If
        Next C
        Cells(L, Colonne) = "X"
    Next L
End Sub
Il est mieux de fournir un fichier test. Cela nous évite de le créer, et la solution proposée est plus proche de la réalité.
 

Pièces jointes

  • Classeur1.xlsm
    17.8 KB · Affichages: 6

Discussions similaires

Réponses
9
Affichages
484

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG