Valeur de renvoi

Bonjour,

j'ai classeur composé de 3 feuilles (Prog, Archivage, ADV) le but étant de statuer un état je m'explique.

La feuille ADV est récapitualtif de état avancement et elle va cherché son id dans la feuille Prog ou dans la feuille Archivage.

1er cas: le code ID mentionnée sur la feuille ADV se retouve dans la colonne ID de la feuille Prog alors l'état dans feuille ADV apparait "En prog".

2eme cas de figure : ID de la feuille ADV ne se trouve que sur la feuille archivage alors le statut "Archivé" apparait.

3eme cas : ID ne se trouve ni sur la feuille Prog ni Archivage alors le statut "Non traité" apparait sur la feuille ADV.

4 eme cas : Id présent sur la feuille Prog et archivage alors le statut "En prog" apparait sur la feuille ADV.

Merci d'avance pour vos réponse

7classeur1.xlsm (9.99 Ko)

bonjour,

une proposition

Sub aargh()
    Set wsp = Sheets("prog")
    dl = wsp.Cells(Rows.Count, 1).End(xlUp).Row
    Set plp = wsp.Range("A1:A" & dl)
    Set wsa = Sheets("Archivage")
    dl = wsa.Cells(Rows.Count, 1).End(xlUp).Row
    Set pla = wsa.Range("A1:A" & dl)
    With Sheets("ADV")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        etat = Array("Non traité", "En prog", "Archivé", "En prog")
        For i = 2 To dl
            st = 0
            Set re = plp.Find(.Cells(i, 1), lookat:=xlWhole)
            If re Is Nothing Then .Cells(i, 2) = 0 Else st = st + 1: .Cells(i, 2) = 1
            Set re = pla.Find(.Cells(i, 1), lookat:=xlWhole)
            If re Is Nothing Then .Cells(i, 3) = 0 Else st = st + 2: .Cells(i, 3) = 1
            .Cells(i, 4) = etat(st)
        Next i
    End With
End Sub

Merci pour cette solution qui marche très bien.

Rechercher des sujets similaires à "valeur renvoi"