Une nouvelle version. Les formules s'insèrent automatiquement.Est -ce le code qui insère les formules ou doit -je mètre les formules au niveau de la première ligne en laissant la première colonne si c'est un nouveau fichier ?
Sub Worksheet_Activate()
'Sur un nouveau fichier changez les N° 2 et 3 des tableaux
F1 = "=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];""M"";Tableau2[Moyenne];"">=5"")"
F2 = "=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];""F"";Tableau2[Moyenne];"">=5"")"
F3 = "=Tableau3[[#Cette ligne];[Masculin]]+Tableau3[[#Cette...
Ecole :
=SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"")
( à valider par Maj+Ctrl+Entrée car matricielle )
Masculin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")
Feminin :
=NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
=SOMME(1/NB.SI(Tableau2[Ecole];Tableau2[Ecole]))
A valider par MAJ + CTRL + Entrée
=NB.SI.ENS(Tableau2[Sexe];"M";Tableau2[Moyenne];">=5")
=NB.SI.ENS(Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
C'est exactement ce que je voudrais. Grandement merciBonjour Appo,
Un essai en PJ avec :
VB:Ecole : =SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"") ( à valider par Maj+Ctrl+Entrée car matricielle ) Masculin : =NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5") Feminin : =NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
Ces formules sont aussi utiles pour moi. Grandement merci
J'ai une question.Bonjour Appo,
Un essai en PJ avec :
VB:Ecole : =SIERREUR(INDEX(Tableau2[Ecole];PETITE.VALEUR(SI(FREQUENCE(SI(Tableau2[Ecole]<>"";EQUIV(Tableau2[Ecole];Tableau2[Ecole];0)); LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNE(Tableau2[Ecole])-LIGNE(bdd!$D$4)+1);LIGNES(resultat!$C$8:C8)));"") ( à valider par Maj+Ctrl+Entrée car matricielle ) Masculin : =NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"M";Tableau2[Moyenne];">=5") Feminin : =NB.SI.ENS(Tableau2[Ecole];Tableau3[[#Cette ligne];[Ecole]];Tableau2[Sexe];"F";Tableau2[Moyenne];">=5")
Merci bien.J'ai observé. C'est très bien mais aucune idée de comment ça s'est construit.Re-,
J'aurais du transformer ta plage en Tableau Structuré, pour avoir la dimension automatique...
Je te conseille de le faire
Un essai en PJ avec :Comme il n'y pas de limite de nombre d'écoles n'y t'il pas un moyen pour remplir la première colonne automatique quand on actuellement le tableau bdd?
Sub Worksheet_Activate()
Application.ScreenUpdating = False
On Error Resume Next
[Tableau3].ListObject.DataBodyRange.Delete
T = [Tableau2]
Range("Tableau3[Ecole]").Resize(UBound(T, 1)) = Application.Index(T, , 4)
ActiveSheet.ListObjects("Tableau3").DataBodyRange.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Re-,Avec votre explication voila ce que j'ai pu faire.
Merci bienRe-,
Oui, c'est excellent ce qu'il fallait.
Si tu ajoutes des données, il suffit de cliquer dans le ruban "Données" sur "Actualiser tout", ou de faire un clic droit n'importe où dans le TCD, et "Actualiser"
Regarde la pièce jointe 1187847
Bonsoir . Merci bien .Re,
Un essai en PJ avec :
Les colonnes 2,3,4 conservent les formules.VB:Sub Worksheet_Activate() Application.ScreenUpdating = False On Error Resume Next [Tableau3].ListObject.DataBodyRange.Delete T = [Tableau2] Range("Tableau3[Ecole]").Resize(UBound(T, 1)) = Application.Index(T, , 4) ActiveSheet.ListObjects("Tableau3").DataBodyRange.RemoveDuplicates Columns:=1, Header:=xlYes End Sub
La mise à jour est automatique en sélectionnant la feuille "resultat".