OVH Cloud OVH Cloud

il faut que je compare plusieurs valuers

13 réponses
Avatar
joseph84
Bonjour tout le monde

voila j ai un petit probleme il faut que je compare je compare
plusieurs valeurs que se trouve dans differentes colonnes

exp:

A B C D . .AG. . AN ....
AP AS
1234
toto 0 X

4321 toto
0 X

8523 toto 0
0 X

6958
toto X

9856
0 0


voila la formule :

=SI(ET(OU(AN1="",AN1=0),OU(AP1="",AP1=0),AG1="toto"),"X","")


je m explique je voudrais mettre un "X" si dans la colonne AG en
retrouve le mot "toto" et que dans la colonne AN et AP en retouve ou
bien 0 ou du vide
et cela en tenant compte de la colonne A

merci bcp

3 réponses

1 2
Avatar
MichD
La macro s'exécute au moment de la saisie des valeurs dans les cellules

si tu veux une macro qui insère le x dans une plage déjà saisie, il faut le
dire, nous ne pouvons pas deviner !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Sub TEST()
Dim Rg As Range, DerLig As Range
Dim A As Long, R As Range

With Worksheets("Feuil1")
Set Rg = .Range("AG1:AG" & .Range("AG65536").End(xlUp).Row)
End With
For Each R In Rg.Rows
A = R.Row
If Evaluate("AND(OR(AN" & A & "="",AN" & A & _
"=0),OR(AP" & A & "="",AP" & A & _
"=0),AG" & A & "=""toto"")") = True Then
Range("AS" & A) = "X"
End If
Next
Application.EnableEvents = True
End Sub


MichD
--------------------------------------------
Avatar
MichD
Correction dans la formule appliquée :
'-----------------------------------------
Sub TEST()
Dim Rg As Range, DerLig As Range
Dim A As Long, R As Range

With Worksheets("Feuil1")
Set Rg = .Range("AG1:AG" & .Range("AG65536").End(xlUp).Row)
End With
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each R In Rg.Rows
A = R.Row
If Evaluate("AND(OR(AN" & A & "="""",AN" & A & _
"=0),OR(AP" & A & "="""",AP" & A & _
"=0),AG" & A & "=""toto"")") = True Then
Range("AS" & A) = "X"
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-----------------------------------------

OU

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("An:AN,AP:AP,AG:AG"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each R In Rg.Rows
A = R.Row
If Evaluate("AND(OR(AN" & A & "="""",AN" & A & _
"=0),OR(AP" & A & "="""",AP" & A & _
"=0),AG" & A & "=""toto"")") = True Then
Range("AS" & A) = "X"
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End If
End Sub



MichD
--------------------------------------------
"MichD" a écrit dans le message de groupe de discussion : ipeg0e$puh$

La macro s'exécute au moment de la saisie des valeurs dans les cellules

si tu veux une macro qui insère le x dans une plage déjà saisie, il faut le
dire, nous ne pouvons pas deviner !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Sub TEST()
Dim Rg As Range, DerLig As Range
Dim A As Long, R As Range

With Worksheets("Feuil1")
Set Rg = .Range("AG1:AG" & .Range("AG65536").End(xlUp).Row)
End With
For Each R In Rg.Rows
A = R.Row
If Evaluate("AND(OR(AN" & A & "="",AN" & A & _
"=0),OR(AP" & A & "="",AP" & A & _
"=0),AG" & A & "=""toto"")") = True Then
Range("AS" & A) = "X"
End If
Next
Application.EnableEvents = True
End Sub


MichD
--------------------------------------------
Avatar
joseph84
On Apr 29, 9:55 am, "MichD" wrote:
La macro s'exécute au moment de la saisie des valeurs dans les cellules

si tu veux une macro qui insère le x dans une plage déjà saisie, il faut le
dire, nous ne pouvons pas deviner !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Sub TEST()
Dim Rg As Range, DerLig As Range
Dim A As Long, R As Range

With Worksheets("Feuil1")
    Set Rg = .Range("AG1:AG" & .Range("AG65536").End(xlUp).Row)
End With
For Each R In Rg.Rows
    A = R.Row
    If Evaluate("AND(OR(AN" & A & "="",AN" & A & _
        "=0),OR(AP" & A & "="",AP" & A & _
        "=0),AG" & A & "=""toto"")") = True Then
        Range("AS" & A) = "X"
    End If
Next
Application.EnableEvents = True
End Sub

MichD
--------------------------------------------



Merci MichD c nikel crom
;)
1 2