VBA - Renumérotation automatique (1 à 33) des cellules A2:A34

Bonjour,

Je recherche au code VBA pour renuméroter automatiquement (1 à 33) les cellules A2:A34 à chaque fois que je rajouter ou supprime une ligne entre deux.

Pouvez-vous m'aider ?

Mes meilleures salutations,

Thierry

Bonjour,

Vous pouvez essayez ce code dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
  Const plage As String = "A2:A34"

  Application.EnableEvents = False

  ' optionnel: nettoyage anciennes valeurs
  With Range(plage)
    Range(.Item(1), .Item(1).End(xlDown).End(xlDown).End(xlDown)).ClearContents
  End With

  ' maj liste
  Range(plage) = Evaluate("ROW(" & plage & ")")
  Application.EnableEvents = True
End Sub

je vous ais mis en optionnel [= le bloc With] (non demandé) le nettoyage de la plage précédente (car sinon on retrouve l'ancienne numérotation en dessous).

Hello,

vous utilisez toujours Excel 2010 ?

Si vous avez plus récent (à partir de 2024 il semblerait), vous avez la fonction SEQUENCE

A mettre en A2 : =SEQUENCE(33;;1)

Bonjour à vous deux,

Merci pour vos propositions.

Je retiens votre proposition de formule SEQUENCE que je ne connaissais pas et qui fonctionne à merveille.

Meilleures salutations et bon week-end.

Thierry

ah bah mettez à jour votre profil avec votre nouvelle version d'Excel !!

Entre 2010 et aujourd'hui vous n'imaginez pas toutes les nouvelles fonctions disponibles permettant de se passer de VBA.

Bonne journée


PS : SEQUENCE dispo à partir de 2021.

Bonjour,

@Thierry

Une solution plus simple sans VBA est de mettre cette formule dans une colonne. Exemple si votre numérotation commence en A2, mettez en A2 --> =Ligne()-1
Ensuite recopiez vers le bas

Attention que cette solution est à éviter si vous devez conserver la référence unique pour chaque ligne. Ce que je ne crois pas si j'ai compris votre demande.

@Saboh

Plutôt que de créer une constante en VBA pour la plage, je l'aurais plutôt mise dans le gestionnaire de noms en créant un nom Plage et définir la plage de cellules concernées

Cordialement

@saboh12617 merci pour l'info

@Thierry36, mettez à jour votre profil, les réponses seront en rapport avec celui ci

@Dan, l'inconvénient de =LIGNE()-1 c'est que si on ajoute une ligne il faut remettre la fonction. SEQUENCE s'ajuste automatiquement

@Nain Porte quoi

@Thierry36, mettez à jour votre profil, les réponses seront en rapport avec celui ci

??? Déjà écrit dans le message de Saboh ....--> https://forum.excel-pratique.com/s/goto/1265034

@Dan, l'inconvénient de =LIGNE()-1 c'est que si on ajoute une ligne il faut remettre la fonction. SEQUENCE s'ajuste automatiquement

Exact sauf dans le cas où le tableau est de type Structuré (je ne l'ai pas spécifié)

@Dan

??? Déjà écrit dans le message de Saboh ....--> https://forum.excel-pratique.com/s/goto/1265034

Ben oui, j'ai tendance à yoyoter de la touffe , mais au moins Thierry n'aura aucune excuse s'il ne met pas son profil à jour

Rechercher des sujets similaires à "vba renumerotation automatique a34"