%!TEX pdflatex

\documentclass{article}
\usepackage[left=1.5cm, right=1cm, top=1.5cm, bottom=1.5cm]{geometry}
\usepackage{tabularx}
\usepackage{xinttools}
\usepackage{tabularray}
\usepackage{listofitems}
\usepackage{simplekv}

%=========================tableau compétences version alternative
\defKV[tblcomp]{%
	listecomp=\def\COMPETlistecomp{#1},%
	listecrit=\def\COMPETlistecrit{#1},%
	largeurs=\def\COMPETlargeurs{#1},%
	lignesep=\def\COMPETsep{#1}
}

\setKVdefault[tblcomp]{%
	listecomp={Compétence A § Compétence B § Compétence C § Compétence D § Compétence E},%
	listecrit={Critère A § Critère B Critère C § Critère D § Critère E},%
	largeurs={2.5cm § 8.5cm § 0.5cm § 1.5cm},%comp + critères + niveaux + note
	lignesep=2pt,%
	centre=false
}

%pour créer le body du tableau (j'ai encore un peu de mal avec ça...)
\long\def\CPaddto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}

\newcommand\tblrcompter[1][]{%
	\useKVdefault[tblcomp]%
	\setKV[tblcomp]{#1}% on paramètres les nouvelles clés et on les simplifie
	\setsepchar{§}%
	\readlist*\ListeCompetences\COMPETlistecomp%
	\readlist*\ListeLargeurs\COMPETlargeurs%
	\readlist*\ListeCriteres\COMPETlistecrit%
	%création du "body" grâce au compteur de lignes \rownum et boucle xintfor
	\def\CPtabledatacomp{}%les lignes à créer
	\xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
		\CPaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & \ListeCriteres[\the\numexpr\therownum-1\relax] & & & & & \\}%
	}
	%le tableau
	\ifboolKV[tblcomp]{centre}{\begin{center}}{}
		\begin{tblr}[expand=\CPtabledatacomp]%
			{%
				hlines,vlines,colspec={%
					Q[l,m,\ListeLargeurs[1]]%
					Q[l,m,\ListeLargeurs[2]]%
					*{4}{Q[c,m,\ListeLargeurs[3]]}%
					Q[c,m,\ListeLargeurs[4]]%
					},%
				rowsep=\COMPETsep,%
				row{1}={font=\bfseries},%
				cell{2}{7} = {r=\ListeCompetenceslen}{c}
			}
			Compétences & Critères & V+ & V & O & R & Note\\
			\CPtabledatacomp
		\end{tblr}
		\ifboolKV[tblcomp]{centre}{\end{center}}{}
}

\begin{document}

\tblrcompter[%
	listecomp={Calculer § Communiquer § Chercher},%
	listecrit={Respecter les priorités de calcul § Rédiger correctement la réponse à un problème § Extraire les informations d'un document},%
	centre
	]

\begin{center}
	\begin{tabular}{|m{2.5cm}|m{8.5cm}|m{0.5cm}|m{0.5cm}|m{0.5cm}|m{0.5cm}|m{2cm}|}
		\hline
		\textbf{Compétences} & \textbf{Critères d'évaluation} & V+ & V & O & R & Note\\
		\hline
		Calculer & Respecter les priorités de calcul & & & & & \\
		\cline{1-6}
		Communiquer & Rédiger correctement la réponse à un problème & & & & & \\
		\cline{1-6}
		Chercher & Extraire les informations d'un document & & & & & \\
		\hline
	\end{tabular}
\end{center}

\end{document}