Partager via

L'incrémentation de valeur lorsqu'on étire une cellule ne fonctionne pas

Anonyme
2025-06-05T15:23:44+00:00

Bonjour,

Je dois souvent noter des N° de séries dans un tableau Excel, et jusqu'à aujourd'hui je n'avais aucun problème pour incrémenter une série,
par exemple avec des N° comme AP1000000M4110490287, ça incrémentait ...288, ...289, ...290

Mais maintenant, avec un n° presque similaire: AP1000000M5110590153 ça ne fonctionne plus. Toute la suite a le même N° qui termine par ...153

La seule différence, c'est qu'avant il y avait marqué M4 et maintenant on a des modèles M5.
Dans la même feuille de calcul, dans la même colonne, ça fonctionne avec les anciens N° mais pas avec les nouveaux.
J'ai erssayé en maintenant Ctrl, ou avec le Clic Droit sur le petit point en bas à droite de la sélection, mais ça ne change rien:
Avec les anciens, dans le menu que j'obtiens il y a la ligne "Incrémenter une série". Mais avec les nouveaux N° de série, cette option est grisée !
Par contre, si dans le nouveau N° je remplace le 5 par un 4, ça refonctionne ! Donc c'est juste ce caractère qui pose problème.

Pourquoi Excel fait-il une distinction et interprète mal les nouveaux N° de série ?

Comme lui faire réaparaitre l'option "Incrémenter une série" ou la dégriser ?

Merci

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
{count} votes
Réponse acceptée par l’auteur de la question
  1. Hecatonchire 53,380 Points de réputation Modérateur bénévole
    2025-06-06T08:36:08+00:00

    Je ne comprend pas "Elle est faite pour les lignes alors que je rempli ces nombres en colonne"

    =>La macro est faite pour une recopie verticale (vers le bas) comme le montre toutes tes captures d'écran !

    L'illustration montre qu'elle peut fonctionner pas seulement sur une colonne mais sur plusieurs en 1 exécution.

    Tu as A25M4294967296 en cellule C311

    Tu sélectionnes la plage de C311 à C320 ( 10 cellules pas exemple) et tu exécutes la macro => les cellules C312 à C320 auront la valeur de C311 incrémentée.

    La macro peut être exécuté via une icone de la barre d'accès rapide ou via un raccourcis clavier pour être plus pratique.

    "je n'arrive pas à la faire fonctionner" => ne fournit pas beaucoup de détails sur ce qui bloque !

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
  1. Hecatonchire 53,380 Points de réputation Modérateur bénévole
    2025-06-05T17:19:40+00:00

    Une macro pour incrémenter

    Sub IncrementeColonnes2()

    Dim rgnPlage    As Range, rgnCol        As Range
    
    Dim i           As Long, lgNbLignes     As Long
    
    Dim strBaseValue As String, strPrefix   As String
    
    Dim baseNumber  As Variant ' Pour gérer les très grands nombres (Var>Dec)
    
    Dim objRegEx    As Object, objMatches   As Object
    
    Dim rngCellule  As Range
    
    If TypeName(Selection) <> "Range" Then ' Vérifie qu'une plage est sélectionnée
    
        MsgBox "Veuillez sélectionner une plage avant d'exécuter la macro.", vbExclamation
    
        Exit Sub
    
    End If
    
    Set rgnPlage = Selection
    
    Set objRegEx = CreateObject("VBScript.RegExp")
    
    objRegEx.Pattern = "^(.\*?)(\d+)$"
    
    objRegEx.IgnoreCase = True
    
    objRegEx.Global = False
    
    For Each rgnCol In rgnPlage.Columns     ' Parcourt des colonnes de la sélection
    
        Set rngCellule = rgnCol.Cells(1, 1) ' Première cellule de la colonne (base de l'incrémentation)
    
        If Not IsEmpty(rngCellule.Value) Then
    
            If objRegEx.test(rngCellule.Value) Then
    
                Set objMatches = objRegEx.Execute(rngCellule.Value)
    
                strPrefix = objMatches(0).SubMatches(0)
    
                baseNumber = objMatches(0).SubMatches(1)
    
                lgNbLignes = rgnCol.Cells.Count
    
                For i = 2 To lgNbLignes ' Remplit les lignes suivantes avec l'incrémentation
    
                    rgnCol.Cells(i, 1).Value = strPrefix & (CDec(baseNumber) + (i - 1))
    
                    ' CDec pour dépasser limite long
    
                Next i
    
            End If
    
        End If
    
    Next rgnCol
    

    End Sub

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

5 réponses supplémentaires

  1. Anonyme
    2025-06-06T07:01:49+00:00

    Merci de m'avoir fourni une macro, mais je n'arrive pas à la faire fonctionner:

    Elle est faite pour les lignes alors que je rempli ces nombres en colonnes, et je ne sais pas quoi remplacer pour que ça marche,
    et il y a des champs à vérifier (écrit en vert) mais je ne sais pas s'il faut des cases Excel, un N° de série ou juste un nombre.

    Mes N° de série sont dans la colonne C, et ils doivent s'incrémenter en allant vers le bas (ligne 311, 312, 313, etc...)

    Merci par avance de m'aider à utiliser cette macro, ça pourrait bien être la seule solution à ce problème

    EDIT: oui, c'est bien lié à la limite de 2 puissance^32^ Excel n'incrémente pas au delà...

    J'espère qu'on arrivera à faire fonctionner cette Macro, parce que le fabricant ne va pas changer ses N° de séries de si tôt :D

    0 commentaires Aucun commentaire
  2. Hecatonchire 53,380 Points de réputation Modérateur bénévole
    2025-06-05T16:28:03+00:00

    Bonjour,

    Je n'avais jamais vu ce cas, c'est amusant (peut être pas pour toi)

    Il semble que c'est une limite d'Excel 2^32 soit la valeur 4 294 967 295

    Il repart à 0 après cette valeur.

    Si on commence au delà, il n'y a pas d'incrémentation.

    J'ai testé su une version Excel 97, c'était pareil.

    0 commentaires Aucun commentaire
  3. Anonyme
    2025-06-05T15:24:28+00:00

    Exemple visuel de mon problème

    0 commentaires Aucun commentaire