Répéter automatiquement une série de nombres 1‑10 dans Excel : formules SEQUENCE, MOD, VBA et Power Query

Besoin de générer rapidement un motif 1, 2, 3, …, 10 qui se répète sur des centaines ou des milliers de lignes ? Excel dispose, selon la version utilisée, de plusieurs techniques fiables qui évitent les copier‑coller laborieux et garantissent la cohérence des données.

Sommaire

Problématique : répéter automatiquement une suite de nombres

Que l’on bâtisse un calendrier, un plan de production, un jeu d’essai ou un tableau de contrôle qualité, il arrive souvent d’avoir à faire défiler la même série finie (ici 1 à 10) en continu jusqu’à une certaine ligne ou jusqu’à ce que la liste atteigne une longueur précise. Les besoins les plus courants sont :

  • Nombre de répétitions connu : on veut, par exemple, reproduire la série 1‑10 cinquante fois (soit 500 lignes).
  • Arrêt sur la dernière ligne occupée : on souhaite que la liste se propage automatiquement jusqu’à A100 ou jusqu’à la dernière ligne d’un tableau structuré.
  • Flexibilité : changer le motif (1 à 12 pour les mois, 1 à 5 pour les jours ouvrés, etc.) sans devoir revoir l’ensemble de la feuille.

Pourquoi préférer une solution automatisée ?

Les copier‑glisser manuels multiplient le risque d’erreur : décalage, coupure inopinée, oubli lors d’une mise à jour… Utiliser une formule, une requête Power Query ou un mini‑macro VBA, c’est :

  1. Garantir l’exactitude du motif à chaque extension de la base.
  2. Accélérer la construction ou la maintenance de modèles volumineux.
  3. Réduire la taille des classeurs (pas de duplications inutiles).

Méthodes modernes (Microsoft 365 / Office 2021+)

Formule Spill basée sur SEQUENCE et MOD

Depuis l’arrivée des plages débordantes (Dynamic Arrays), une seule formule suffit pour remplir toute la colonne :

=MOD(SEQUENCE(100)-1,10)+1
  • SEQUENCE(100) génère la liste 1 à 100.
  • On retire 1 puis on applique MOD(...;10) : la 10e, la 20e, la 30e… valeur redeviennent 0.
  • En ajoutant 1, on récupère la série 1‑10 répétée.

Pour ajuster la hauteur, changez simplement l’argument : SEQUENCE(500) renvoie 50 répétitions complètes.

Arrêt dynamique sur une dernière ligne inconnue

Admettons qu’un tableau structuré nommé Ventes s’allonge dans la colonne B et que vous vouliez faire correspondre chaque ligne à un numéro de lot 1‑10 :

=MOD(SEQUENCE(ROWS(Ventes))-1,10)+1

Orientation horizontale

Besoin d’étaler la série sur une ligne ? Utilisez les paramètres rows et columns de SEQUENCE :

=MOD(SEQUENCE(1;50)-1;10)+1

La suite 1‑10 s’affichera alors 5 fois de gauche à droite.

LET + INDEX pour plus de lisibilité

Lorsque l’on souhaite garder sous la main la « brique » 1‑10 et la réutiliser, la fonction LET clarifie la formule :

=LET(
  bloc, SEQUENCE(10),
  INDEX(bloc, MOD(SEQUENCE(100;1;0);10)+1)
)

On définit une variable bloc égale à 1‑10, puis INDEX renvoie l’élément correspondant au rang calculé.

Méthodes sans fonctions dynamiques (Excel 2019 et antérieurs)

Formule à recopier avec MOD

  1. Tapez 1 en A1.
  2. En A2, saisissez :
    =MOD(A1;10)+1
  3. Double‑cliquez sur la poignée de recopie ou faites‑la glisser jusqu’à la dernière ligne voulue.

Chaque ligne ajoute 1 au reste de la division décimale (modulo) du nombre du dessus, recréant la boucle 1‑10.

Remplissage rapide via la poignée (méthode sans formule)

  1. Saisissez 1 et 2 dans A1:A2.
  2. Sélectionnez A1:A10, activez la poignée et laissez Excel détecter la progression 1 → 10.
  3. Sélectionnez ensuite tout le bloc, puis faites glisser : Excel recopiera la séquence complète bloc par bloc.

Cette astuce est efficace si l’on pense à sélectionner la série entière avant de tirer, faute de quoi Excel extrapolerait 11, 12, 13… au lieu de repartir à 1.

Approches avancées

Power Query pour des listes très longues ou dynamiques

Power Query (Donnees > Obtenir et transformer) est idéal quand le motif doit s’insérer dans des flux de données mis à jour régulièrement.

  • Créez une requête vide, ouvrez l’Éditeur avancé.
  • Utilisez List.Generate() pour produire n lignes :
let
  max = 1000,
  Source = List.Generate(
            () => 0,
            each _ < max,
            each _ + 1,
            each if Number.Mod(_,10)=0 then 10 else Number.Mod(_,10))
in
  Source

Le résultat est transformé en table puis chargé dans la feuille. Toute modification de max régénère instantanément la série.

Macro VBA ultra‑compacte

Pour les aficionados de VBA, quelques lignes suffisent :

Sub RemplirSerie()
    Dim i As Long, n As Long: n = 100000   'adapter à la taille souhaitée
    For i = 1 To n
        Cells(i, 1).Value = ((i - 1) Mod 10) + 1
    Next i
End Sub

L’approche est la plus rapide quand la liste dépasse plusieurs centaines de milliers de lignes ; elle contourne les recalculs de formules.

Tableau comparatif des performances

MéthodeVersion requiseVolume (1 000 lignes)Volume (1 000 000 lignes)
SEQUENCE + MOD365/2021+Instantané< 1 s
Formule à recopier< 2021< 1 s5 – 10 s
Poignée de recopieToutes1 – 2 sImpossible (limite UI)
Power Query2010+2 – 3 s (chargement)8 – 12 s (chargement)
VBAToutes< 1 s2 – 4 s

Bonnes pratiques et pièges courants

  • Conversion en valeurs : si vous archivez le fichier ou si la liste ne doit plus évoluer, copiez‑collez la colonne en « Valeurs » pour alléger le classeur.
  • Référence circulaire involontaire : évitez d’utiliser une dépendance à la même colonne dans une table structurée sans verrouiller la plage (@) ou sans passer par une colonne auxiliaire.
  • Compatibilité Mac/Windows : les formules MOD et SEQUENCE se comportent de façon identique sur les deux systèmes ; seul le séparateur d’arguments peut changer (, vs ;).
  • Suppression accidentelle : quand vous filtrez ou supprimez des lignes, la colonne générée par formule se mettra à jour automatiquement, ce qui peut décaler la numérotation logique. Pensez à figer les valeurs avant d’effectuer des suppressions massives.

Cas d’usage fréquents

La boucle 1‑10 n’est qu’un exemple. Les mêmes techniques s’appliquent à : Numéros de semaine 1‑52 Gestion de planning annuel, consolidation de ventes hebdomadaires. Mois 1‑12 Budgets mensuels récurrents, simulations financières glissantes. Échantillons qualité 1‑5 Contrôles en laboratoire par lot. Rotation de postes 1‑7 Tableaux RH pour cycles de travail en 3×8.

FAQ

Q : Comment arrêter exactement à la ligne A100 si j’ajoute ou supprime des lignes entre‑temps ?
R : Placez une formule dans un nom défini ou dans une table structurée qui renvoie toujours le nombre actuel de lignes (ROWS()), puis alimentez l’argument SEQUENCE(). Ainsi, même si la fin se décale, la série reste calée sur la dernière ligne utilisée.

Q : Puis‑je démarrer la série à 0 ?
R : Oui, remplacez simplement le +1 final par +0 ou supprimez‑le ; la logique avec MOD reste valide.

Q : Et pour un motif non consécutif (ex. : 1,1,2,2,3,3) ?
R : Combinez la technique SEQUENCE+MOD avec un facteur multiplicateur, ou utilisez LET pour construire un bloc {1;1;2;2;3;3} puis INDEX.

Q : Power Query est‑il plus rapide que SEQUENCE ?
R : Pas pour une colonne simple. Il devient pertinent quand la série est jointe à d’autres requêtes ou actualisée automatiquement à partir de sources externes.

Conclusion

Que vous disposiez de la toute dernière version d’Excel ou d’une édition plus ancienne, il existe toujours un moyen simple et robuste de répéter un motif numérique : formules débordantes, recopie avec MOD, poignée intelligente, Power Query ou encore macro VBA. Choisissez la méthode la plus adaptée à votre version, à la taille de vos données et à la fréquence de mise à jour. En appliquant ces techniques, vous gagnerez du temps, éviterez les erreurs manuelles et assurerez la fiabilité de vos classeurs sur le long terme.

Sommaire