Sub Worksheet_Activate()
Dim Bleu, Jaune, Couleur, NbPropal%, NbIdt%, MatIdt, Ligne%, Npropal%, i%, DL%, EAN$, Formule$
'Formule = =INDEX(PROPAL!$A$1:$ZZ$1000;EQUIV(A2;PROPAL!$A$1:$A$1000;0);EQUIV(C2;PROPAL!$A$2:$ZZ$2;0)) En français
Formule = "=INDEX(PROPAL!R1C1:R1000C702,MATCH(RC[-3],PROPAL!R1C1:R1000C1,0),MATCH(RC[-1],PROPAL!R2C1:R2C702,0))"
Bleu = RGB(200, 255, 255): Jaune = RGB(255, 255, 200): Couleur = Jaune ' Def des couleurs
Sheets("automatisation").[A2:D10000].ClearContents ' Effacement précedent
Sheets("automatisation").[A2:D10000].Interior.Color = vbWhite ' Effacement couleurs
NbPropal = Sheets("Propal").Cells(Cells.Rows.Count, "A").End(xlUp).Row - 2 ' Nombre de propal
NbIdt = Sheets("MAGS").Cells(Cells.Rows.Count, "A").End(xlUp).Row ' Nombre d'IDT
MatIdt = Sheets("MAGS").Range("B3:D" & NbIdt) ' Tranfert données ds array
Ligne = 2
For Npropal = 1 To NbPropal ' Pour toute propal
EAN = Sheets("Propal").Cells(Npropal + 2, "A") ' Extraction EAN
For i = 1 To UBound(MatIdt) ' Pour toute l'array
MatIdt(i, 1) = "'" & CStr(EAN) ' On rajoute l'EAN (chaine)
Next i
' On écrit le tableau EAN, et on le met en couleur (alternée bleu/jaune)
Sheets("automatisation").Cells(Ligne, "A").Resize(UBound(MatIdt, 1), UBound(MatIdt, 2)) = MatIdt
If Couleur = Jaune Then Couleur = Bleu Else Couleur = Jaune
Range("A" & Ligne & ":D" & Ligne + UBound(MatIdt) - 1).Interior.Color = Couleur
Ligne = Ligne + UBound(MatIdt)
Next Npropal
DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row ' Dernière ligne de la feuille
Range("D2:D" & DL).Formula = Formule ' On met la formule de calcul Implantation
Range("D2:D" & DL) = Range("D2:D" & DL).Value ' Copie colle des valeurs
End Sub