\documentclass[a4paper,french]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames,table]{xcolor}
\usepackage[francais,bloc]{automultiplechoice}
\geometry{hmargin=2cm}
\usepackage{listofitems,xstring ,xfp}
\usepackage{cleveref}
\usepackage{makecell,tabularx}
\setcellgapes{7pt}

%******* Nouveau nom des couleurs en fonction de la compétence
\definecolor{Analyser}{named}{Orange}
\definecolor{Approprier}{named}{lightgray}
\definecolor{Communiquer}{named}{SkyBlue} 
\definecolor{Realiser}{named}{red} 
\definecolor{Valider}{named}{GreenYellow} 
%****************************************************



\newcommand{\Competences}[2]{%
	%mise à zéro du compteur
	
	%mettre ici sinon bug avec listofitem
	\def\AMCbeginQuestion##1##2{}
	%\stepcounter{CompteurCompetences}%+1 au compteur
	\setsepchar{,}%séparateur ,
	%\def\ListeTemporaire{}
	\readlist\ListeTemporaire{#1}%lecture de la liste des compétences
	%itération sur chaque compétence
	\foreachitem\CompetenceEtudiee\in\ListeTemporaire{%début du foreachitem
		%vérification de la compétence puis ajout dans la liste
\IfStrEqCase{\CompetenceEtudiee}{%***
	{Analyser}{\xdef\ListeAnalyser{\ListeAnalyser,\AMCstudentlabel{#2}}}%
	{Approprier}{\xdef\ListeApproprier{\ListeApproprier,\AMCstudentlabel{#2}}}%
	{Communiquer}{\xdef\ListeCommuniquer{\ListeCommuniquer,\AMCstudentlabel{#2}}}
	{Realiser}{\xdef\ListeRealiser{\ListeRealiser,\AMCstudentlabel{#2}}}%
	{Valider}{\xdef\ListeValider{\ListeValider,\AMCstudentlabel{#2}}}%	
}%***
\fcolorbox{black}{\CompetenceEtudiee}{%debut fcolorbox
	\AMCquestionNumberfalse\AMCnobloc
\begin{question}{\CompetenceEtudiee:#2}%
	\AMCnoCompleteMulti\AMCdontAnnotate%
	\def\AMCbeginAnswer{}\def\AMCendAnswer{}%
	\IfStrEq{\CompetenceEtudiee}{Realiser}{\small{Réaliser}~}{\small{\CompetenceEtudiee}~}%
	%Si la compétence est Realiser -> affiche Réaliser car les accents sont interdits dans les labels des questions 
	\begin{reponsesperso}[o]%
		\mauvaise{NA}\bareme{-1}\mauvaise{ECA~}\bareme{0}\bonne{A}\bareme{1}%
	\end{reponsesperso}%
\end{question}
}%%%fin fcolorbox
}%%fin du foreachitem
}%newcommand

\begin{document}

\setdefaultgroupmode{withreplacement}

%%**********groupe
\element{EXO}{
\begin{question}{liquefaction}\AMClabel{liquefaction}
Comment appelle-t-on le passage de l'état  gazeux à liquide ?\vspace*{-1ex}
\begin{reponseshoriz}
\mauvaise{fusion}\mauvaise{solidification}\bonne{liquéfaction}\mauvaise{vaporisation}
\end{reponseshoriz}
\end{question}

\Competences{Valider,Realiser}{liquefaction}\medskip

}

\element{EXO}{
\begin{question}{vaporisation}\AMClabel{vaporisation}
Comment appelle-t-on le passage de l'état liquide à gazeux ?\vspace*{-1ex}
\begin{reponseshoriz}
\mauvaise{fusion}\mauvaise{solidification}\mauvaise{liquéfaction}\bonne{vaporisation}
\end{reponseshoriz}
\end{question}

\Competences{Valider,Realiser,Approprier,Analyser}{vaporisation}\medskip

}

\element{EXO}{
\begin{questionmult}{cours}\AMClabel{Cours}
Coche \textbf{toutes} les bonnes réponses.\smallskip
%\begin{multicols}{2}
\begin{reponses}
\bonne{Lors d'un changement d'état, la masse ne varie pas.}
\mauvaise{Lors d'un changement d'état, la masse varie.}
\bonne{Lors d'un changement d'état, le volume varie.}
\mauvaise{Lors d'un changement d'état, le volume ne varie pas.}
\bonne{La température d'ébullition dépend de la pression atmosphérique.}
\mauvaise{La température d'ébullition ne dépend pas de la pression atmosphérique.}
\bonne{La pression diminue quand l'altitude augmente.}
\mauvaise{La pression augmente quand l'altitude augmente.}
\end{reponses}
%\end{multicols}
\end{questionmult}

\Competences{Approprier,Analyser}{Cours}\medskip

}

\element{EXO}{%
\begin{question}{CalculPoids}\AMClabel{Poids}
Calcule le poids d'un livre de masse m=10 g. On prendra $g_{Terre}=10\ newton /kg$. Indique l'ensemble de ton raisonnement/de tes calculs.
\AMCOpen{lines=2}{\mauvaise{0,25}\bareme{0.25}\mauvaise{0,5}\bareme{0.5}\mauvaise{0,75}\bareme{0.75}\bonne{1}\bareme{1}}
\end{question}

\Competences{Analyser}{Poids}\medskip

}
%%************************

\onecopy{10}{

%%Création des listes vide de chaque compétences , du score
\def\ListeAnalyser{}
\def\ListeApproprier{}
\def\ListeCommuniquer{}
\def\ListeRealiser{}
\def\ListeValider{}


\fbox{    
  \begin{minipage}{.9\linewidth}
           \Large \bf     Nom :       \vspace*{1mm}
        \end{minipage}
      }\vspace*{1ex}

\restituegroupe{EXO}






\crefname{question}{Q.}{Q.}
%%Vérification de la présence d'une virgule-> la liste n'est pas vide
%%Suppression de la première virgule
\begin{tabular}{|p{2.5cm}|p{4cm}|p{2.5cm}|p{0.5cm}|p{0.5cm}|p{0.5cm}|>{\centering\arraybackslash}p{1cm}|>{\centering\arraybackslash}p{1cm}|} 
\hline

\multicolumn{1}{|c|}{\centering  Compétences} &\centering Capacités & Questions & \multicolumn{3}{>{\centering\arraybackslash}p{1.5cm}|}{Appréciation du niveau d'acquisition } &  \multicolumn{2}{>{\centering\arraybackslash}p{2cm}|}{Traduction chiffrée du niveau d'acquisition}  \\

\cline{4-8}
\multicolumn{1}{|c|}{}&  &   & \begin{center} 0\end{center} & \begin{center} 1\end{center}  & \begin{center} 2\end{center} &  \begin{center}Sans TICE\end{center}  & \begin{center}Avec TICE\end{center}\\[-3ex]
\hline
\rule[0ex]{0pt}{3.5ex}  \textbf{S'approprier } & Rechercher, extraire et organiser l'information &\StrChar{\ListeApproprier}{1}[\Virgule]\IfEq{\Virgule}{,}{\StrGobbleLeft{\ListeApproprier}{1}[\ListeApproprier]\cref{\ListeApproprier}\par \cpageref{\ListeApproprier}}{} &  & &  &  & \cellcolor{lightgray}   \\ [3.5ex]

\hline
\rule[0ex]{0pt}{3.5ex}\textbf{Analyser, Raisonner} &  Émettre une conjecture, une hypothèse. Proposer une méthode de résolution, un protocole expérimental.& \StrChar{\ListeAnalyser}{1}[\Virgule]\IfEq{\Virgule}{,}{\StrGobbleLeft{\ListeAnalyser}{1}[\ListeAnalyser]\cref{\ListeAnalyser}\par \cpageref{\ListeAnalyser}}{}   &  &  &  &  &  \\[3.5ex]

\hline
\rule[0ex]{0pt}{3.5ex}\textbf{Réaliser} & Choisir une méthode de résolution, un protocole expérimental. Exécuter une méthode de résolution, expérimenter,simuler. &\StrChar{\ListeRealiser}{1}[\Virgule]\IfEq{\Virgule}{,}{\StrGobbleLeft{\ListeRealiser}{1}[\ListeRealiser]\cref{\ListeRealiser}\par \cpageref{\ListeRealiser}}{}&  &  &  &  &  \\ [3.5ex]

\hline  
\rule[0ex]{0pt}{3.5ex}\textbf{Valider}& Contrôler la vraisemblance d'une conjecture, d'une hypothèse. Critiquer un résultat, argumenter. &\StrChar{\ListeValider}{1}[\Virgule]\IfEq{\Virgule}{,}{\StrGobbleLeft{\ListeValider}{1}[\ListeValider]\cref{\ListeValider}\par \cpageref{\ListeValider}}{}&  &  &  &  &  \\ [3.5ex]

\hline 
\rule[0ex]{0pt}{3.5ex}\textbf{Communiquer}  & Rendre compte d'une démarche, d'un résultat, à l'oral ou à l'écrit. &  \IfEq{\ListeCommuniquer}{}{\relax}{\StrGobbleLeft{\ListeCommuniquer}{1}[\ListeCommuniquer] \cref{\ListeCommuniquer}\par \cpageref{\ListeCommuniquer}  }{} &  &  &  &  & \cellcolor{lightgray} \\ [3.5ex]

\hline
\end{tabular}\bigskip

%\newpage

\makegapedcells
\renewcommand\theadfont{\bfseries\normalsize}%changer police en-tête
\noindent%
\begin{tabularx}{\linewidth}{c X p{2cm} c} \hline

\thead{Compétences}&\thead{Capacités}&\thead{Questions}& \thead{\% de réussite}

	
%%Ne pas afficher la ligne si elle est vide, d'après DENIS Sébastien	
\IfEq{\ListeApproprier}{}%comparaison de la liste si elle est vide
{\relax}% ne rien faire  si vrai
{% accolade ouvrante du faux du test
\\	\hline % saut de ligne ou ligne horizontale (find e la ligne précédent)
\makecell{S'approprier} &Rechercher, extraire et organiser l'information&%
\StrGobbleLeft{\ListeApproprier}{1}[\ListeApproprier]%Suprpesion de la virgule
\cref{\ListeApproprier},  \cpageref{\ListeApproprier} &%
}% accolade fermante du fauxdu test


	
	\IfEq{\ListeApproprier}{}{\relax}{\\	\hline%
\makecell{Analyser\\ Raisonner} &%
Émettre une conjecture, une hypothèse.\endgraf Proposer une méthode de résolution, un protocole expérimental.& 
\StrGobbleLeft{\ListeAnalyser}{1}[\ListeAnalyser] \cref{\ListeAnalyser},  \cpageref{\ListeAnalyser}   &   }
	
	
	\IfEq{\ListeRealiser}{}{\relax}{\\	\hline%
\makecell{Réaliser} &Choisir une méthode de résolution, un protocole expérimental.\endgraf Exécuter une méthode de résolution, expérimenter, simuler. &
		\StrGobbleLeft{\ListeRealiser}{1}[\ListeRealiser]\cref{\ListeRealiser}, \cpageref{\ListeRealiser}&   }
	
	\IfEq{\ListeValider}{}{\relax}{\\	\hline%
\makecell{Valider}&Contrôler la vraisemblance d'une conjecture, d'une hypothèse. Critiquer un résultat, argumenter. &\StrGobbleLeft{\ListeValider}{1}[\ListeValider]\cref{\ListeValider}, \cpageref{\ListeValider}&  }
	
	
		\IfEq{\ListeCommuniquer}{}{\\\hline}{\\	\hline%
\makecell{Communiquer}  & Rendre compte d'une démarche, d'un résultat, à l'oral ou à l'écrit. &  \StrGobbleLeft{\ListeCommuniquer}{1}[\ListeCommuniquer] \cref{\ListeCommuniquer}, \cpageref{\ListeCommuniquer}   &  }	
\end{tabularx}
\nomakegapedcells

}

\end{document}


