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
 

Fichiers joints

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 ;)
 

roidurif

XLDnaute Occasionnel
Re : Macro : Comparer seuil numérique

Bonjour,

tu as raison... pour la poilitesse

J ai été trop rapide dans mon copier coller

J ai rectifié mon message

desolé
 

roidurif

XLDnaute Occasionnel
Re : Macro : Comparer seuil numérique

Bonjour à tous

Je n ai pas encore retrouvé comment réaliser cet macro. Je n ai pas eu de réponse, peut être que je n ai pas plus explicite...


Merci pour votre aide.
 

eriiiic

XLDnaute Barbatruc
Re : Macro : Comparer seuil numérique

Bonjour,

Je n ai pas eu de réponse, peut être que je n ai pas plus explicite...
Ou peut-être parce que tu ne reviens que si tu as toujours des problèmes.
Jamais pour dire merci bien, ça marche...

eric
 

roidurif

XLDnaute Occasionnel
Re : Macro : Comparer seuil numérique

Bonjour

Si je suis revenu, c'est effectivement que j'ai besoin d'aide.

merci
 

eriiiic

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+
 

Fichiers joints

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+
 

Fichiers joints

roidurif

XLDnaute Occasionnel
Re : Macro : Comparer seuil numérique

Bonjour Job75,

Merci pour ton aide précieuse.

Impossible d'exécuter ton code avec la Fonction

Est-ce normal ?

cdt
 

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+
 

Fichiers joints

roidurif

XLDnaute Occasionnel
Re : Macro : Comparer seuil numérique

Bonjour

Navré de ne pas comprendre des choses qui semble être évidente pour vous.

Merci pour votre aide précieuse
 

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+
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas