Rechercher les chiffres manquants dans plusieurs séries linéaires

13GIBE59

XLDnaute Accro
Bonjour le forum. :)

Dans le fichier joint, j'ai une double série linéaire de chiffres de A1 à A23. Il y manque les chiffres figurant en colonnes D et E.
Comment les faire apparaître dans une msgbox ? :confused:

Mes tentatives ont échoué...:mad:

Merci d'avance. :D
 

Pièces jointes

  • Suite.xls
    31 KB · Affichages: 106
  • Suite.xls
    31 KB · Affichages: 113
  • Suite.xls
    31 KB · Affichages: 113

JNP

XLDnaute Barbatruc
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Bonjour Jean-Bernard :),
Mes tentatives ont échoué...:mad:
Ça m'étonne de toi, en principe, tu donnes plutôt des solutions ;)...
Peux-tu préciser quelques petites choses essentielles :
1) Les couleurs sont pour mettre en exergue le problème, ou existent-elles dans ton fichier ?
2) Les données sont-elles triées, peuvent-elles être triées ?
3) En début de macro, peut-on demander à l'utilisateur la première valeur de chaque série ? Ou tout au moins les 2 chiffres de gauche définissant les 2 séries ?
A + :cool:
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Bonjour,

Code:
Sub Mcomplément365()
  Set mondico = CreateObject("Scripting.Dictionary")
  Set champ = Range("A2:A30")
  serie = "365"
  For Each c In champ
   If Left(c, 3) = serie Then mondico(c) = c
  Next c
  For i = Application.Min(mondico.items) To Application.Max(mondico.items)
    If IsError(Application.Match(i, mondico.items, 0)) Then MsgBox i
  Next i
End Sub

JB
 

Pièces jointes

  • FonctionComplement2.xls
    29 KB · Affichages: 100
  • FonctionComplement2.xls
    29 KB · Affichages: 105
  • FonctionComplement2.xls
    29 KB · Affichages: 103

13GIBE59

XLDnaute Accro
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Bonjour JNP. :D

Ça m'étonne de toi, en principe, tu donnes plutôt des solutions
Tu es trop bon...

Les couleurs sont pour mettre en exergue le problème, ou existent-elles dans ton fichier ?
Les couleurs sont pour mettre en exergue mon problème.

Les données sont-elles triées, peuvent-elles être triées ?
Les données ne peuvent pas être triées !

En début de macro, peut-on demander à l'utilisateur la première valeur de chaque série ? Ou tout au moins les 2 chiffres de gauche définissant les 2 séries ?
Désolé, non aux deux questions...

Ca se complique vraiment, mais merci d'avance de t'être penché sur mon problème... :)

Oup ! Pas rafraîchi. Bonjour Boisgontier. Je regarde et je reviens.
 

youky(BJ)

XLDnaute Barbatruc
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Bonjour jean-Bernard
Voici une macro
Je recoipie que les valeurs car il y a des formules dans ton tableau et je trie
Ensuite je boucle..
Bruno
Code:
Sub Macro1()
    Range("A1:A" & [A65000].End(3).Row).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1:A" & [A65000].End(3).Row) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:A" & [A65000].End(3).Row)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    code = [A1]
For k = 2 To [A65000].End(3).Row
If code + 10 < Cells(k, 1) Then GoTo saute
If code + 1 < Cells(k, 1) Then
tx = tx & Chr(10) & code + 1
End If
saute:
code = Cells(k, 1)
Next
MsgBox tx
End Sub
 

13GIBE59

XLDnaute Accro
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Super classe, ton truc, Boisgontier, comme d'habitude !

Cela dit, peut-on améliorer ton code pour l'adapter à n'importe quelle série ?

Je m'explique : si j'attaque dans la colonne A une nouvelle série commençant par exemple par 754..., je devrai modifier le code.

Peut-on éviter cela ?

Sinon, c'est déjà bien, ton code...

Merci.

Edit : bonjour Youki.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

Le no de série est représenté par le libellé du bouton .

Code:
Sub Mcomplément()
  serie = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
  Set mondico = CreateObject("Scripting.Dictionary")
  Set champ = Range("A2:A1000")
  For Each c In champ
   If Left(c, 3) = serie Then mondico(c) = c
  Next c
  For i = Application.Min(mondico.items) To Application.Max(mondico.items)
    If IsError(Application.Match(i, mondico.items, 0)) Then MsgBox i
  Next i
End Sub
 

Pièces jointes

  • FonctionComplement2.xls
    30.5 KB · Affichages: 98
  • FonctionComplement2.xls
    30.5 KB · Affichages: 98
  • FonctionComplement2.xls
    30.5 KB · Affichages: 102
  • FonctionComplement3.xls
    33.5 KB · Affichages: 90
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

bonjour Jean-Bernard

En acceptant de mettre en H1 le debut de la serie orange et en supposant que l'autre serie ne depasse pas cette valeur

Oups! A la bourre moi !!
Et plutot a coté de la plaque
 

Pièces jointes

  • Suite.zip
    15.1 KB · Affichages: 39
  • Suite.zip
    15.1 KB · Affichages: 43
  • Suite.zip
    15.1 KB · Affichages: 39
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

re,
Désolé pour le bug l'enregistreur de macro 2007 pour trier ne va pas pour 2003
Par contre de 2003 a 2007 c'est bon alors j'ai repris la bonne vieille formule utilisée pour 2003.
Attention je suis obligé de trier, je le fait en col Z soit la 26, j'efface cette col en fin de macro.
Les codes peuvent être variés, je saute si écart >10.
Bruno
Code:
Sub Manquant()
'je copie et efface en col Z ou 26
lig = [A65000].End(3).Row
Range("Z1:Z" & lig).Value = Range("A1:A" & lig).Value
Range("Z1:Z" & lig).Sort Key1:=Range("Z1"), Order1:=xlAscending, Header:=xlNo
    code = [Z1]
For k = 2 To lig
If code + 10 < Cells(k, 26) Then GoTo saute
If code + 1 < Cells(k, 26) Then
tx = tx & Chr(10) & code + 1
End If
saute:
code = Cells(k, 26)
Next
MsgBox tx
Columns(26).Clear
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Rechercher les chiffres manquants dans plusieurs séries linéaires

re,
Ma précédente macro ne pouvait pas voir si il manquait plusieurs codes de suite.
J'ai rectifié le tir avec ce fichier (c'est juste pour le fun et par plaisir)
Bruno
 

Pièces jointes

  • Suite(1).xls
    39.5 KB · Affichages: 87

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 148
Membres
103 131
dernier inscrit
diaz.evelyne17