Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Comment numéroter automatiquement les lignes si la cellule adjacente n'est pas vide dans Excel ?

Author Xiaoyang Last modified
autonumber rows if adjacent cell not blank

Dans Excel, utiliser la poignée de remplissage pour créer manuellement une série de nombres est une méthode courante pour générer des numéros séquentiels ou des index pour des listes. Cependant, il arrive souvent que vous souhaitiez numéroter les lignes uniquement si une cellule adjacente spécifique contient des données. Par exemple, vous pourriez vouloir générer automatiquement des numéros de ligne dans une liste, mais ignorer les lignes où les cellules adjacentes sont vides. De plus, vous pourriez attendre que ces numéros se mettent à jour instantanément lorsque des données sont ajoutées ou supprimées — offrant ainsi une séquence toujours à jour sans intervention manuelle.

Numéroter les lignes si la cellule adjacente n'est pas vide automatiquement avec une formule

Numéroter les lignes si la cellule adjacente n'est pas vide automatiquement avec du code VBA


arrow blue right bubble Numéroter les lignes si la cellule adjacente n'est pas vide automatiquement avec une formule

Une méthode efficace pour obtenir une numérotation dynamique des lignes basée sur les valeurs des cellules adjacentes consiste à utiliser une formule Excel. Avec cette approche, les numéros de ligne ne seront affichés que lorsque la cellule adjacente contient une valeur. Lorsque vous ajoutez ou supprimez des données dans ces cellules, la numérotation se met à jour automatiquement pour correspondre. Voici une méthode pratique que vous pouvez utiliser :

1. Sélectionnez la cellule où vous souhaitez que la numérotation commence (par exemple, A2 si vos données commencent en B2). Entrez la formule suivante :

=IF(B2<>"",COUNTA($B$2:B2),"")
Astuce : Cette formule vérifie si la cellule B2 n'est pas vide. S'il y a des données dans B2, elle compte toutes les cellules non vides de B2 jusqu'à la ligne actuelle, créant ainsi une séquence continue pour les lignes qui contiennent des valeurs. Si B2 est vide, la formule renvoie un blanc, laissant la cellule de la séquence vide.

2. Ensuite, faites glisser la poignée de remplissage vers le bas le long de vos données pour appliquer cette formule aux autres lignes. La numérotation s'ajustera automatiquement, affichant des numéros uniquement pour les lignes où des données sont présentes dans la colonne B.

autonumber if not blank with formula

Remarque : Cette méthode est particulièrement utile pour les listes où de nouvelles données peuvent être insérées, supprimées ou modifiées à tout moment, car la séquence restera toujours précise sans qu'il soit nécessaire de renuméroter ou recalculer manuellement. Cependant, soyez conscient que si des cellules vides font partie de vos données (par exemple, des écarts intentionnels), ces lignes resteront non numérotées.

Si vous rencontrez des problèmes où les chiffres ne se mettent pas à jour comme prévu, vérifiez que la formule a été copiée dans toutes les lignes pertinentes, et qu'il n'y a ni cellules fusionnées ni validations de données interférant avec votre plage. Souvenez-vous que les formules dépendent d'une référence précise et peuvent être perturbées par des changements structurels dans la feuille de calcul.


arrow blue right bubble Numéroter les lignes si la cellule adjacente n'est pas vide automatiquement avec du code VBA

Pour les utilisateurs avancés, ou dans les cas où vous préférez ne pas appliquer des formules partout dans votre feuille de calcul — ou encore avoir besoin que la numérotation se mette à jour même lors du collage de données, de la suppression de blocs ou lors de modifications fréquentes — un macro VBA offre une alternative intéressante. En utilisant VBA, vous pouvez mettre à jour automatiquement les numéros de ligne dans une colonne chaque fois que la cellule adjacente est modifiée, sans avoir besoin de formules. Cela est idéal pour les formulaires de saisie de données, les journaux d'importation ou les listes de tâches avec des changements de mise en page fréquents.

1. Appuyez sur Alt + F11 pour ouvrir la fenêtre de l'éditeur Visual Basic for Applications. Dans l'Explorateur de projets, localisez votre classeur, puis double-cliquez sur la feuille de calcul pertinente (par exemple, « Feuil1 ») sous « Objets Microsoft Excel ».

2. Dans la fenêtre de code qui apparaît, collez le code suivant. Cet exemple suppose que vous souhaitez numéroter les lignes dans la colonne A en fonction du fait que la colonne B n'est pas vide ; vous pouvez ajuster les références pour votre plage spécifique si nécessaire :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chk As Range
    Set chk = Intersect(Target, Me.Columns("B"))
    If chk Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Call RenumberNonBlank(Me, "B", "A", 2)
    Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
                    keyCol As String, _
                    numCol As String, _
                    firstDataRow As Long)
    Dim lastRow As Long
    Dim r As Long
    Dim seq As Long
    lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
    seq = 1
    For r = firstDataRow To lastRow
        With ws
            If Trim(.Cells(r, keyCol).Value) <> "" Then
                .Cells(r, numCol).Value = seq
                seq = seq + 1
            Else
                .Cells(r, numCol).ClearContents
            End If
        End With
    Next r
End Sub

3. Enregistrez et fermez l’éditeur VBA. Maintenant, chaque fois que vous ajoutez, modifiez ou effacez du contenu dans la colonne B, la colonne A sera immédiatement renumérotée, reflétant la présence (ou l'absence) de données. La séquence montera ou descendra à mesure que vous ajoutez ou supprimez des entrées dans la colonne B.

Remarques et Précautions : Cette macro doit être placée spécifiquement dans la fenêtre de code de la feuille de calcul souhaitée (pas dans un module ou ThisWorkbook) pour répondre aux modifications des cellules. Assurez-vous également que les macros sont activées dans les paramètres de votre Excel pour que le code fonctionne. Si votre « plage de données » se déplace vers des colonnes autres que A et B, mettez à jour les références Set chk = Intersect(Target, Me.Columns("B")) et Call RenumberNonBlank(Me, "B", "A", 2) en conséquence.

Dépannage : Si la numérotation ne se met pas à jour, vérifiez que vous éditez la bonne feuille de calcul et que le code est placé dans la fenêtre de code appropriée de la feuille de calcul. Assurez-vous également d'avoir enregistré le classeur en tant que fichier prenant en charge les macros (.xlsm). En cas d'erreurs inattendues, revérifiez que vous n'avez pas altéré la structure de votre feuille de calcul, comme des cellules fusionnées ou des données dans les lignes d'en-tête.


Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : Exécution intelligente | Générer du code | Créer des formules personnalisées | Analyser des données et générer des graphiques | Appeler les Fonctions améliorées de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
Super RECHERCHEV : Recherche multi-critères | Recherche multi-valeurs | Recherche multi-feuilles | Correspondance floue...
Liste déroulante avancée : Créer rapidement une liste déroulante | Liste déroulante dépendante | Liste déroulante à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | Chiffrer/Déchiffrer les cellules | Envoyer un e-mail par liste | Super Filtre | Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...)...
Top15 des ensembles d’outils :12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...) |50+ Types de graphiques (Diagramme de Gantt, ...) |40+ Formules pratiques (Calculer l’âge en fonction de la date de naissance, ...) |19 outils d’insertion (Insérer un code QR, Insérer une image depuis le chemin, ...) |12 outils de conversion (Convertir en mots, Conversion de devises, ...) |7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...) | ... et bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement votre travail.

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 % et réduit des centaines de clics de souris chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels