Formule excel

Résolu/Fermé
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020 - Modifié par abn279 le 4/03/2016 à 02:22
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020 - 7 mars 2016 à 12:49
Bonjour à tous!
En colonne A j'ai des nombres compris entre 001 et 999 .Exemple
584
10
592
401
etc.
Pour savoir les nombres qui manquent je dois trier et compter. Par exemple si 1 est suivi de 4 je saurai que c'est 2 et 3 qui manquent; mais cette démarche ne me semble pas pratique et ça me prend beaucoup de temps. Ainsi est ce que je pourrais avoir en colonne B une formule qui me permet d'afficher les nombres manquant en colonne A?
Cordialement.

3 réponses

Raymond PENTIER Messages postés 58731 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 novembre 2024 17 247
4 mars 2016 à 04:28
Non ; ce n'est pas évident !
Si tu expliquais le contexte, afin qu'on sache de quoi il s'agit, on pourrait te suggérer d'autres approches ...
0
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020
7 mars 2016 à 08:20
Bonjour raymond peut-être avec ce fichier joint vous comprendrez le contexte.
https://www.cjoint.com/c/FCewVVoJIlM
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 7/03/2016 à 08:34
Bonjour

Les numéros de ta colonne A sont ils toujours regroupés et triés dans l'ordre croissant (ou décroissant) ?
Pourquoi commencer par zéro alors que tu demandes entre 1 et 999 ?
 Michel
0
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020
Modifié par abn279 le 7/03/2016 à 10:13
bonjour,
Ils sont triés dans l'ordre croissant ; C'est que je les ai extraites sur une base de donnée. Mais ce sont les no compris entre 001 à 999 qui m’intéresse. Excuse je devais les enlever.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020
Modifié par michel_m le 7/03/2016 à 10:41
avec une macro (durée instantanée): sur 30000 lignes ,bonjour par formules, qui + est apparemment matricielles !

Option Explicit
'-----------------------------------
Sub numéros_manquants()
Dim Derlig As Long, T_colA, T_colB, Cpta As Long, Cptb As Integer, Diff As Integer, Inc As Integer

Application.ScreenUpdating = False
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_colA = Application.Transpose(Range("A2:A" & Derlig))
Range("B2:B1000000").Clear
ReDim T_colB(1 To UBound(T_colA))

For Cpta = 2 To UBound(T_colA)
If T_colA(Cpta) - T_colA(Cpta - 1) > 1 Then
Diff = T_colA(Cpta) - T_colA(Cpta - 1)
For Inc = 1 To Diff - 1
Cptb = Cptb + 1
T_colB(Cptb) = T_colA(Cpta - 1) + Inc
Next
End If
Next
Range("B2").Resize(UBound(T_colB), 1) = Application.Transpose(T_colB)
End Sub


ton classeur en retour
http://www.cjoint.com/c/FChjNxLK2oN
0
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
7 mars 2016 à 12:49
merci michel-m ça marche même si je ne sais comment car je ne connais pas grand chose en vba.
encore merci !!
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
4 mars 2016 à 05:31
Bonsoir à tous,

de ce que j'ai compris :

si tes données sont en $A$3:$A$1500 (je suppose qu'il y a des répétitions donc).
si en $C$2 tu calcules le nombre de valeurs non trouvées avec la formule
=999-SOMMEPROD(1/NB.SI($A$3:$A$1500;$A$3:$A$1500))


alors, en $B$3 tu saisis :
=SI(LIGNE()-2<=C$2;PETITE.VALEUR(SI(ESTERREUR(EQUIV(LIGNE($1:$999);$A$3:$A$1500;0));LIGNE($1:$999);9^9);LIGNE()-2);"")
que tu valides par CTRL+MAJ+ENTER.
tu recopies ensuite cette formule jusqu'en $B$1001 (pour le cas où tu aurais 999 valeurs manquantes)

j'ai mis une cellule intermédiaire en $C$2 pour accélérer le calcul.

cordialement
-1
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020
4 mars 2016 à 23:49
Bonsoir à tous!
je pense que je me suis mal exprimé; je vais envoyé fichier Cjoint comme exemple: https://www.cjoint.com/c/FCewVVoJIlM
Voilà !!
0