medsoft313
XLDnaute Nouveau
Je n'arrive pas à adapter ce code pour vérifier la colonne D de la Feuille 3 si elle contient la valeur "Ag" alors afficher les valeurs
de la feuille 3 dans la feuille1. et si la valeur est "Ap" alors afficher les valeurs de la feuille 3 dans la feuille 2 et si la valeur n'est ni "Ag" ni "Ap", aucune action n'est entreprise ou un message d'erreur.
Sub Test()
ActiveSheet.Unprotect "123"
Sheets("Feuil1").Unprotect "123"
Sheets("Feuil2").Unprotect "123"
If Not IsEmpty(Range("G2").Value) Then
Dim ws As Worksheet
Set ws = Sheets("Feuil3")
Dim colD As Range
Set colD = ws.Range("D17 400")
Dim hasAg As Boolean
Dim hasAp As Boolean
For Each cell In colD
If cell.Value = "Ag" Then
hasAg = True
Sheets("Feuil1").Range("J12").Font.Color = vbBlack
Sheets("Feuil1").Range("J12").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,1,FALSE),"""")")
Sheets("Feuil1").Range("F14").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,5,FALSE),"""")")
Sheets("Feuil1").Range("E20").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,2,FALSE),"""")")
Sheets("Feuil1").Shapes("Groupe 16").Visible = False
Sheets("Feuil1").Select
Exit For ' Sortir de la boucle si le mot est trouvé
ElseIf cell.Value = "Ap" Then
hasAppro = True
Sheets("Feuil2").Range("J12").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,1,FALSE),"""")")
Sheets("Feuil2").Range("F14").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,5,FALSE),"""")")
Sheets("Feuil2").Range("J17").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,10,FALSE),"""")")
Sheets("Feuil2").Select
Exit For ' Sortir de la boucle si le mot est trouvé
End If
Next cell
If Not hasAg And Not hasAp Then
MsgBox "La colonne D de la plage de cellules spécifiée ne contient ni le mot Ag, ni le mot Ap.", vbCritical, "Erreur"
End If
End If
ActiveSheet.Protect "123", True, True, True
Sheets("Feuil1").Protect "123", True, True, True
Sheets("Feuil2").Protect "123", True, True, True
End Sub
de la feuille 3 dans la feuille1. et si la valeur est "Ap" alors afficher les valeurs de la feuille 3 dans la feuille 2 et si la valeur n'est ni "Ag" ni "Ap", aucune action n'est entreprise ou un message d'erreur.
Sub Test()
ActiveSheet.Unprotect "123"
Sheets("Feuil1").Unprotect "123"
Sheets("Feuil2").Unprotect "123"
If Not IsEmpty(Range("G2").Value) Then
Dim ws As Worksheet
Set ws = Sheets("Feuil3")
Dim colD As Range
Set colD = ws.Range("D17
Dim hasAg As Boolean
Dim hasAp As Boolean
For Each cell In colD
If cell.Value = "Ag" Then
hasAg = True
Sheets("Feuil1").Range("J12").Font.Color = vbBlack
Sheets("Feuil1").Range("J12").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,1,FALSE),"""")")
Sheets("Feuil1").Range("F14").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,5,FALSE),"""")")
Sheets("Feuil1").Range("E20").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,2,FALSE),"""")")
Sheets("Feuil1").Shapes("Groupe 16").Visible = False
Sheets("Feuil1").Select
Exit For ' Sortir de la boucle si le mot est trouvé
ElseIf cell.Value = "Ap" Then
hasAppro = True
Sheets("Feuil2").Range("J12").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,1,FALSE),"""")")
Sheets("Feuil2").Range("F14").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,5,FALSE),"""")")
Sheets("Feuil2").Range("J17").Value = Application.Evaluate("IFERROR(VLOOKUP('" & ws.Name & "'!G2,'" & ws.Name & "'!A17:S400,10,FALSE),"""")")
Sheets("Feuil2").Select
Exit For ' Sortir de la boucle si le mot est trouvé
End If
Next cell
If Not hasAg And Not hasAp Then
MsgBox "La colonne D de la plage de cellules spécifiée ne contient ni le mot Ag, ni le mot Ap.", vbCritical, "Erreur"
End If
End If
ActiveSheet.Protect "123", True, True, True
Sheets("Feuil1").Protect "123", True, True, True
Sheets("Feuil2").Protect "123", True, True, True
End Sub