Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

INCREMENTATION automatique d'une suite

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cephalotus

XLDnaute Occasionnel
INCREMENTATION en fonction d'une suite de chiffre aléatoire

Bonjour le forum,

J'ai une colonne B avec des n° (ex: 1122, 1140, 1149...).

ces numéros peuvent se répéter. Il peut y avoir des rupture de numéros sur cette suite (ex : on passe du 1122 au 1124 et il n'existe pas de 1123). je voudrai renvoyer sur une colonne A un numéro incrémenté.

Mon incrémentation doit être identique pour chaque numéro (ex: tous les 1122 doivent porter le n° 1...).

L'incrémentation doit être continue sans rupture de séquence ex: le n° 1122 renvoi 1 le 1123 n'existe pas donc le 1124 renvoi 2 etc...).



Merci pour toutes vos réponses
 
Dernière édition:
Re : INCREMENTATION automatique d'une suite

Bonjour à tous,

une formule matricielle pompée et adaptée du fichier jb-fonctionsmatricielles.xls sur excelabo :

numdeb est le n° de départ de la numérotation
mazone est la zone où se trouvent les n°s à réindexer.
mazone peut être dans n'importe quel ordre, avec trous et avec répétition.

cordialement
 
Re : INCREMENTATION automatique d'une suite

Bonjour ODVJ, le forum,


Merci pour ta réponse. Je te joint mon fichier avec comme exemple le début de ma colonne incrémentée à la main.

En effte, je ne sais pas si ta formule fonctionne, car je ne suis pas arrivé à l'adapter.


Merci pour ta, vos réponses.
 

Pièces jointes

Re : INCREMENTATION automatique d'une suite

Bonjour le fil,

Comme je suis une grosse quiche en formule, je te propose une petite macro qui a l'air de fonctionner sur ton exemple (petite précision, les donénes doivent etre triées comme c'est le cas dans ton exemple) :
Code:
Sub test()
Dim i&, cpt&
cpt = 1
For i = 2 To Range("B65536").End(xlUp).Row
    If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
        Cells(i, 1).Value = cpt
    Else
        Cells(i, 1).Value = cpt
        cpt = cpt + 1
    End If
Next i
End Sub

@+
 
Re : INCREMENTATION automatique d'une suite

Salut
Une macro sur la feuille de code liée (Clic-droit sur onglet>>Visualiser le code)
Un peu lente 3 boucles
boucle 1, chargement des valeurs dans un tableau => ne tient compte que des valeurs numériques en B

boucle 2 le tri du plus petit au plus grand

Boucle 3 inscription du numéro de série

La macro ne tient pas compte del'organisation de la feuille.
Si les données sont triées en B croissant, une formule simple ira plus vite
A2 : 1
A3 : = si(B3=B2;A2;A2+1) avec recopie incrémentielle et un copier/collage spécial valeur de A sur A pour figer le résultat
ou une macro qui fait la même chose :
Code:
Sub Macro1()
Dim X As Long
  Columns(2).Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
Range("A2") = 1
For X = 3 To Range("B65536").End(xlUp).Row
    Range("A" & X) = IIf(Range("B" & X) = Range("B" & X - 1), Range("A" & X - 1), _
                                                    Range("A" & X - 1) + 1)
Next X
End Sub
nettement plus rapide

A+
 

Pièces jointes

Dernière édition:
Re : INCREMENTATION automatique d'une suite

Bonjour le forum,


la macro de Porcinet82 fonctionne très bien. Je voudrais maintenant la modifier pour faire la même chose, mais à partir du numéro 330 sur une autre feuille de mon fichier.

Pourriez-vous m'expliquer comment faire.

Merci pour vos réponses




Sub test()
Dim i&, cpt&
cpt = 1
For i = 2 To Range("B65536").End(xlUp).Row
If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
Cells(i, 1).Value = cpt
Else
Cells(i, 1).Value = cpt
cpt = cpt + 1
End If
Next i
End Sub
 
Re : INCREMENTATION automatique d'une suite

Voici la réponse à ma question qui m'a était donnée par Allegros50, merci à lui.

Donc, pour changer le numéro de l'incrémentation, moi je veux commencer à 330, il faut mettre:

cpt = 330 au lieu de 1

Et voilà !! C’est super simple, quand on le sait !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Y
Réponses
0
Affichages
1 K
yapson2008
Y
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…