\documentclass[a4paper,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,xlop,ifthen,calc,xcolor}%obligatoire
\usepackage[francais,bloc,completemulti]{automultiplechoice}



\opset{decimalsepsymbol={,}}  % option du package xlop, pour additionner les compteurs
\newlength{\fulllinewidth}
\AtBeginDocument{\setlength{\fulllinewidth}{\linewidth }}
\newlength{\brouillon}
\newif\ifBaremeDetail
\BaremeDetailfalse

\newcommand*\FranPt[1]{%
   \ifBaremeDetail
 \opprint{#1}  pt%
     \ifdim#1pt<2pt % singulier lorsque < 2 et pas pluriel lorsque > 1
          \else
       s%
     \fi
   \fi
}

\makeatletter

% À modifier suivants ces avis
\def\AMCbeginQuestion#1#2{\par\noindent{\bf \the\c@exo.%
\ifthenelse{\value{section}= 0}{\relax}{\the\c@section.}% si on utilisesection*  évite d'afficher un 0
#1} #2\hspace*{1em}}


\newlength{\decalage}%décalage lié à la présentation du numéro de la question
%À tester quels chiffres sont les plus larges.
%À modifier à chaque changement de présentation
%%À voir si utiliser La commande espace marge.
\settowidth{\decalage}{\widthof{{\bf 7.1} \multiSymbole{ \hspace*{1em}}}}


%%%%
%%Code de  Jean-Côme Charpentier issu de


\newcommand*{\taille@Exo}{}
\newcommand*{\tailleEXO}[1]{\renewcommand*{\taille@Exo}{#1}} %% ???
\newcommand{\BaremeEspace@Marge}{5pt}
\newcommand{\BaremeEspaceMarge}[1]{\renewcommand{\BaremeEspace@Marge}{#1}} %% ???


\newcommand*{\brm}[1]{%
   % (\BaremeEspace@Marge == 0pt) => au ras de la marge gauche
   % (\BaremeEspace@Marge >0pt) => plus à l'intérieur de la marge gauche
   \immediate\write\@auxout{%
     \string\opadd*{#1}% additionne la valeur du barème #1 à la variable totalPoints\the\c@section-\AMCStudentNumber
                   {totalPoints\the\c@section-\AMCStudentNumber}% qui vaut 0 au départ (voir ligne 80)
                   																	% \string\opcopy{0}{totalPoints\the\c@section-\AMCStudentNumber})
                   {totalPoints\the\c@section-\AMCStudentNumber}% et affecte le résultat sans l'afficher à totalPoints\the\c@section-\AMCStudentNumber 
                   %La variable contient le numéro de la copie
   }%
   \setlength{\brouillon}{\BaremeEspace@Marge-\linewidth+\fulllinewidth+\decalage}%
   \makebox[0pt][r]{\color{gray}\FranPt{#1}\hspace*{\brouillon}}%
   \ignorespaces%
}


%Remet automatiquement à 1 le compteur des question lors d'un nouvel appel à \section
\newcounter{exo}[section]

%Remet automatiquement à 1 le compteur des question lors d'un nouvel appel à exo
%à utiliser avec le paquet amsmath
\numberwithin{AMCquestionaff}{exo}

% Décommenter pour une numérotation type section.exo
%\renewcommand\theexo{\thesection.\arabic{exo}} % à vérifier l'utilité et la continuité des compteurs
\newcommand\EXO{%
   \refstepcounter{exo}%
   \immediate\write\@auxout{% on écrit dans le fichier auxiliaire
     \string\opcopy{0}{totalPoints\the\c@section-\AMCStudentNumber}%
     %affecte 0 à la variable totalPoints\the\c@section-\AMCStudentNumber
     																					%\the\c@section = compteur section (interne à latex)
   																						 % \the\c@exo = compteur exo (créé)
   																						 %\AMCStudentNumber : AMC
   }%
   \@ifstar\exercice@\exercice@@
}

\newcommand\exercice@@[1][]{%
   \csname \taille@Exo section\endcsname*{#1 %Exercice \theexo #1% modifié pour être adapté au compteur des questions d'AMC
   \hfill \totalPoints{\the\c@section-\AMCStudentNumber}}
}

\newcommand\exercice@[1][]{%
   \csname \taille@Exo section\endcsname*{#1% Exercice \theexo #1% modifié pour être adapté au compteur des questions d'AMC
   }
}

\newcommand\totalPoints[1]{% \total renommé en \totalPoints car la commande \total est déjà définie par le paquet totcount
   \@ifundefined{Op@totalPoints#1}{recompilez}%
   {%
     \opunzero{totalPoints#1}% on ne sait jamais,  permet de supprimer les zéros non significatifs du  nombre passé en argument.
     \opprint{totalPoints#1}~%
     \opcmp{totalPoints#1}{2}%on compare le score à 2 pour mettre ou pas un «s».
     \ifopge points\else point\fi
   }%
   }

\makeatother

\usepackage{babel}
\begin{document}
%\baremeDefautS{b=1}
\BaremeDetailtrue%affiche le barème dans la marge
\BaremeEspaceMarge{1pt}%ajoute un écart entre la marge et les points
%\tailleEXO{sub}%pour modifier la taille du titre de la sous-partie
\setlength{\parindent}{0pt}

%%% préparation des groupes

\setdefaultgroupmode{withoutreplacement}

\element{geographie}{
  \begin{question}{Paris} 
\brm{0.25}    Dans quel continent se situe Paris~?
    \begin{reponses}
      \bonne{L'Europe}
      \mauvaise{L'Afrique}
      \mauvaise{L'Asie}
      \mauvaise{La planète Mars}
    \end{reponses}
  \end{question}
}

\element{geographie}{
  \begin{question}{Cameroun}
\brm{1}    Quelle est la capitale du Cameroun~?
    \begin{reponses}
      \bonne{Yaoundé}
      \mauvaise{Douala}
      \mauvaise{Abou-Dabi}
    \end{reponses}
  \end{question}
}

\element{histoire}{
  \begin{question}{Marignan}\brm{1}
    En quelle année a eu lieu la bataille de Marignan~?
    \begin{reponseshoriz}
      \bonne{1515}
      \mauvaise{1915}
      \mauvaise{1519}
    \end{reponseshoriz}
  \end{question}
  
%\EffacementNumeroQuestion
   \begin{question}{Marignan-pays}\brm{3}
Ou se trouve Marignan~?
\AMCOpen{}{\bonne{1}\bareme{1}}
   \end{question}
}

\element{histoire}{
  \begin{questionmult}{Nantes}\brm{1.5}
    Que peut-on dire de l'Édit de Nantes~?
    \begin{reponses}
      \bonne{Il a été signé en 1598}
      \bonne{Il a été définitivement révoqué par Louis XIV}
      \mauvaise{Il a été signé par Henri II}
    \end{reponses}
  \end{questionmult}
}

%%% fabrication des copies

\exemplaire{3}{
\setcounter{exo}{0}%remise à zéro du compteur exo
%%% debut de l'en-tête des copies :

\noindent{\bf QCM  \hfill TEST}

\vspace*{.5cm}
\begin{minipage}{.4\linewidth}
  \centering\large\bf Histoire et géographie\\ Examen du 01/01/2008
\end{minipage}
\champnom{\fbox{\begin{minipage}{.5\linewidth}
Nom et prénom :

\vspace*{.5cm}\dotfill
\vspace*{1mm}
\end{minipage}}}

%%% fin de l'en-tête

\AMCsection*{Géographie}
\EXO[Géographie]

\restituegroupe{geographie}


\AMCsection{Histoire}
\EXO[truc]

\restituegroupe{histoire}
}
\widthof{\textbf{1.1}}
\end{document}
