Bonjour,
Vous trouverez ci-dessous une macro avec des commentaires.
N'hésitez pas a me poser des questions
Sub Precious()
Dim k, n, i, t, f, so, rej, hmiss, j, m, c, p, q As Long
'Cette partie est pour recupérer des les dernières cellules vides qui m'interressent
k = Sheets("Suivi").Range("A65536").End(xlUp).Row + 1
n = Sheets("Suivi").Range("NbValeurT").Value
t = k - n
f = Sheets("Code").Range("FAVORABLE").Offset(20, 0).End(xlUp).Row - 2
so = Sheets("Code").Range("SANSOBSERVATION").Offset(20, 0).End(xlUp).Row - 2
rej = Sheets("Code").Range("REJETER").Offset(20, 0).End(xlUp).Row - 2
hmiss = Sheets("Code").Range("HORSMISSION").Offset(20, 0).End(xlUp).Row - 2
m = Application.max(f, so, rej, hmiss)
c = Sheets("RtR").Cells(1, Columns.Count).End(xlToLeft).Column
' Cette partie nous récupère tous les avis des documents par entreprise
Dim Documents()
ReDim Docuements(n, 3)
For i = 0 To n - 1
Docuements(i, 0) = Sheets("Suivi").Range("AvWARD").Offset(i + 1, 0).Value 'Avis donnés par J.WARD
Docuements(i, 1) = Sheets("Suivi").Range("AvCOB").Offset(i + 1, 0).Value 'Avis donnés par COB
Docuements(i, 2) = Sheets("Suivi").Range("AvSOCOTEC").Offset(i + 1, 0).Value 'Avis donnés par AvSOCOTEC
Docuements(i, 3) = Sheets("Suivi").Range("AvMG4").Offset(i + 1, 0).Value 'Avis donnés par Mission G4
Next i
' Toutes les codifications pour les avis Favorable
Dim Fav()
ReDim Fav(f)
For i = 0 To f - 1
Fav(i) = Sheets("Code").Range("FAVORABLE").Offset(i + 1, 0)
Next i
' Toutes les codifications pour les avis Sans observation
Dim sob()
ReDim sob(so)
For i = 0 To so - 1
sob(i) = Sheets("Code").Range("SANSOBSERVATION").Offset(i + 1, 0)
Next i
' Toutes les codifications pour les avis rejeter
Dim rejet()
ReDim rejet(rej)
For i = 0 To rej - 1
rejet(i) = Sheets("Code").Range("REJETER").Offset(i + 1, 0)
Next i
' Toutes les codifications pour les avis hors mission
Dim hm()
ReDim hm(hmiss)
For i = 0 To hmiss - 1
hm(i) = Sheets("Code").Range("HORSMISSION").Offset(i + 1, 0)
Next i
' Valeur des avis Favorables
Dim Avf()
ReDim Avf(n, 3)
'La partie qui beug et qui n'est pas finie
'Cette partie nous permet de en mettant une X dans un tableau les entreprises avec avis (Favorable ...) qu'on veut afficher(dans une autre feuille)
If Not IsEmpty(Sheets("Rqt").Range("B3:B6").Value) Then ' si une des cases de la colone JWARD et selectionné
' on nomme la colonne J.WARD
' Sheets("RtR").Cells(3, 1).Copy
' Sheets("Rqt").Cells(1, c + 1).PasteSpecial Paste:=xlPasteFormats
' Sheets("Rqt").Cells(1, c + 1).PasteSpecial Paste:=xlPasteValues
For i = 3 To 6
If Sheets("Rqt").Range("B" & i) = "X" Then ' si dans une colone de JWARD est selectionée alors
For j = 0 To n - 1
For p = 0 To f - 1
q = i - 3
If Documents(j, q) = Fav(p) Then ' pour les Avis de COB/SOCOTEC/MG4 = Favorable alors
Avf(j, q) = Documents(j, q)
Sheets("RtR").Cells(j + 2, c + 1) = Avf(j, q)
c = Sheets("RtR").Cells(1, Columns.Count).End(xlToLeft).Column
End If
Next p
Next j
End If
Next i
End If
MsgBox "Fini !"
End Sub
En vous remerciant,
Yoboys