Macro : Comparer seuil numérique

roidurif

XLDnaute Occasionnel
Bonjour à toute et à tous,

Je souhaiterais à partir d'une macro réaliser un contrôle sur des incohérences de seuil pour chaque personne disposant d'un seuil.

c.à.d. si le seuil du N+1 est inferieur au N-1, alors mettre une couleur jaune.

Exemple KO :
N => Marc seuil APPROB 1 000EUR
N+1 => jean seuil APPROB 500EUR

Exemple OK :
N => Marc seuil APPROB 500EUR
N+1 => jean seuil APPROB 1 500EUR

Chaque personne a un nombre de personne hiérarchique différent.

La macro devra lire uniquement les chaines alphanumérique commençante par ("ACHETEUR ", "APPROB ", "APPROB MAG ")

Le seuil "APPROVISIONNEUR" n'est pas considéré comme un seuil.

Code:
Sub test()
Dim dlng As String
Dim i As Variant
Dim A As String
Dim B As String
Dim z As Str
dlng = Sheets("DATA").Range("B11").End(xlUp).Row

For i = 2 To dlng
A = Sheets("DATA").Cells(i, 3).Value
B = Sheets("DATA").Cells(i, 5).Value

  Set obj = CreateObject("vbscript.regexp")
  obj.Global = True
  obj.Pattern = "[a-z,A-Z,\s,-]+"
  'chaine = "APPROB 10 000EUR"
  A = obj.Replace(A, "")
  z = A
  


If z > B Then Sheets("DATA").Cells(i, 1).Interior.ColorIndex = 6
Next i

End Sub

Merci de votre aide
 

Pièces jointes

  • Comparatif de seuil.xls
    25.5 KB · Affichages: 48
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Bonjour à tous

roidurif
Avant de souhaiter quoi que ce soit, roidurif, il est d'usage de commencer ses messages par un petit bonjour ;)
Pourtant tu devrais le savoir car...comme on ne dit le pas
la politesse est l'exactitude des rois ;)
 

eriiic

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Bonjour,

On se comprend bien.
Et bien descend de ton trône et remercie ceux qui t'ont apporté des réponses précédemment (tu as du boulot...).
Peut-être que ça motivera qcq'un à regarder ton problème.

eric
 

job75

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Bonsoir à tous,

Curieux que vous mariniez depuis 12 jours sur un truc simple :confused:

Fonction VBA utilisée dans la formule de la MFC :

Code:
Function TestSeuil(r As Range) As Boolean
If r(1, 3) Like "ACHETEUR*" Then
  TestSeuil = Val(Mid(r(1), 9)) > Val(Mid(r(1, 3), 9))
ElseIf r(1, 3) Like "APPROB MAG*" Then
  TestSeuil = Val(Mid(r(1), 11)) > Val(Mid(r(1, 3), 11))
ElseIf r(1, 3) Like "APPROB*" Then
  TestSeuil = Val(Mid(r(1), 7)) > Val(Mid(r(1, 3), 7))
End If
End Function
Fichier joint.

A+
 

Pièces jointes

  • Comparatif de seuil(1).xls
    37.5 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Re,

Ceci est probablement mieux :

Code:
Function TestSeuil(r As Range) As Boolean
If r(1, 3) Like "ACHETEUR*" Then
  If r(1) Like "ACHETEUR*" Then _
    TestSeuil = Val(Mid(r(1), 9)) > Val(Mid(r(1, 3), 9))
ElseIf r(1, 3) Like "APPROB MAG*" Then
  If r(1) Like "APPROB MAG*" Then _
    TestSeuil = Val(Mid(r(1), 11)) > Val(Mid(r(1, 3), 11))
ElseIf r(1, 3) Like "APPROB*" Then
  If r(1) Like "APPROB*" Then _
    TestSeuil = Val(Mid(r(1), 7)) > Val(Mid(r(1, 3), 7))
End If
End Function
Fichier (2).

A+
 

Pièces jointes

  • Comparatif de seuil(2).xls
    42 KB · Affichages: 36

job75

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Re,

Ecoutez roidurif si en plus vous n'êtes pas fichu de comprendre les solutions évidentes qu'on vous donne, y a plus qu'à tirer l'échelle.

Pour en finir, voici une solution plus "ramassée" :

Code:
Function TestSeuil(r As Range) As Boolean
Dim t
For Each t In Array("ACHETEUR*", "APPROB MAG*", "APPROB*")
  If r(1, 3) Like t Then
    If r(1) Like t Then TestSeuil _
      = Val(Mid(r(1), Len(t))) > Val(Mid(r(1, 3), Len(t)))
    Exit Function
  End If
Next
End Function
Fichier (3).

A+
 

Pièces jointes

  • Comparatif de seuil(3).xls
    43.5 KB · Affichages: 39

job75

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Bonjour roidurif, le fil,

Vous préférerez sans doute cette solution sans VBA.

Il faut juste un peu de patience pour créer les 12 noms définis.

A+
 

Pièces jointes

  • Comparatif de seuil sans VBA(1).xls
    26 KB · Affichages: 28

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T