Voici une solution.
solution :
\newcommand{\macommande}[2][]{%
\if\relax\detokenize{#1}\relax pas de champ optionnel donc champ obligatoire = #2\else champ optionnel existe et = #1\fi et champ obligatoire = #2}
**ECM**
\documentclass{article}
\newcommand{\macommande}[2][]{%
\if\relax\detokenize{#1}\relax champ optionnel= #2\else champ optionnel= #1\fi et champ obligatoire = #2}
\begin{document}
\macommande[11]{12}
\macommande{12}
\end{document}
**Remarque** On peut aussi définir cette commande par
\newcommand{\macommande}[2][]{%
\ifx\relax#1\relax champ optionnel= #2\else champ optionnel= #1\fi et champ obligatoire = #2}