Bonjour,
Je cherche à faire une recherche conditionnelle imbriquée
Je dois rapatrier, dans le fichier Donnees, un prix qui est présent dans le fichier F 1mail21.
La clef de recherche dans Donnees est présente dans la colonne G
La clef de recherche dans F 1mail21 est présente dans la colonne A
Le prix a rapatrié est présent soit dans la colonne M soit dans la colonne O du fichier F 1mail21
Si le prix dans la colonne M est supérieur à celui présent dans la colonne O alors prendre le prix de la colonne M sinon c'est celui de la colonne O à prendre.
Voir l'essai de la formule VBA ci-dessous.
Merci de votre aide
Sub essaif()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Ligne1 As Long, Ligne2 As Long, Ligne3 As Long, ligne4 As Long
Ligne2 = Sheets("Donnees").Range("G50").End(xlUp).Row
Ligne1 = Sheets("F 1mail21").Range("A50").End(xlUp).Row
Ligne3 = Sheets("F 1mail21").Range("M50").End(xlUp).Row
ligne4 = Sheets("F 1mail21").Range("O50").End(xlUp).Row
For n = 1 To Ligne2
For m = 1 To Ligne1
For p = 1 To Ligne3
For q = 1 To ligne4
If Sheets("Donnees").Range("G" & n) = Sheets("F 1mail21").Range("A" & m) Then
If p > 0 Then
Sheets("Donnees").Range("I" & n) = Sheets("F 1mail21").Range("M" & m)
Else
If Sheets("F 1mail21").Range("O50").End(xlUp).Row > Sheets("F 1mail21").Range("M50").End(xlUp).Row Then
Sheets("Donnees").Range("I" & n) = Sheets("F 1mail21").Range("O" & m)
End If
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
Next
Next
Next
Next
End Sub
Je cherche à faire une recherche conditionnelle imbriquée
Je dois rapatrier, dans le fichier Donnees, un prix qui est présent dans le fichier F 1mail21.
La clef de recherche dans Donnees est présente dans la colonne G
La clef de recherche dans F 1mail21 est présente dans la colonne A
Le prix a rapatrié est présent soit dans la colonne M soit dans la colonne O du fichier F 1mail21
Si le prix dans la colonne M est supérieur à celui présent dans la colonne O alors prendre le prix de la colonne M sinon c'est celui de la colonne O à prendre.
Voir l'essai de la formule VBA ci-dessous.
Merci de votre aide
Sub essaif()
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim Ligne1 As Long, Ligne2 As Long, Ligne3 As Long, ligne4 As Long
Ligne2 = Sheets("Donnees").Range("G50").End(xlUp).Row
Ligne1 = Sheets("F 1mail21").Range("A50").End(xlUp).Row
Ligne3 = Sheets("F 1mail21").Range("M50").End(xlUp).Row
ligne4 = Sheets("F 1mail21").Range("O50").End(xlUp).Row
For n = 1 To Ligne2
For m = 1 To Ligne1
For p = 1 To Ligne3
For q = 1 To ligne4
If Sheets("Donnees").Range("G" & n) = Sheets("F 1mail21").Range("A" & m) Then
If p > 0 Then
Sheets("Donnees").Range("I" & n) = Sheets("F 1mail21").Range("M" & m)
Else
If Sheets("F 1mail21").Range("O50").End(xlUp).Row > Sheets("F 1mail21").Range("M50").End(xlUp).Row Then
Sheets("Donnees").Range("I" & n) = Sheets("F 1mail21").Range("O" & m)
End If
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
Next
Next
Next
Next
End Sub