Numéros manquants

Bonjour,

J'ai des numéros en colonne A exemple 0017/2023 - 0018/2023 - 0020/2023 les numéros peuvent être en double.

J'aimerai bien avec VBA trouver les numéros manquants dans la colonne A et les transférer dans la colonne I

Merci d'avance

bonjour xxmedxx,

c'est plus facile pour nous, quand vous ajoutez un exemple ...

Bonjour BsAlv,

Ci joint le fichier.

Merci pour votre réponse

16lots.xlsx (11.29 Ko)

Hello,

Franchement je ne pense pas que le VBA soit nécessaire.

Deux colonnes suffisent pour avoir la correspondance. Colonne F, t'as juste à tirer la formule pour étendre ta plage de recherche là où tu veux. Colonne G ca te dit lesquels sont manquants donc juste un filtre suffirait. Ou sinon dans la colonne I un TCD filtré sur les manquants.

Il n'y a pas de code à maintenir et ça va relativement vite à actualiser.

@+

15lots.xlsx (20.36 Ko)

bonjour xxmedxx, Baroute78, avec "agregat"

23lots.xlsx (26.89 Ko)

Merci pour vos réponses

J'ai réussi à le faire à travers des formules et un tableau dynamique et j'ai voulu changer vers le VBA

re,

Sub xxmedxx()
     Dim aA, ptr, i, aOut(1 To 9999, 1 To 1)  'vous cherchez les lots de 0001 à 9999
     aA = Sheets("feuil1").Range("A1").CurrentRegion.Resize(, 1).Value     'vos lots utilisés

     ptr = 0
     For i = 1 To UBound(aOut, 1)
          s = Format(i, "0000") & "/2023"     'un lot
          r = Application.Match(s, aA, 0)     'il existe déjà?
          If Not IsNumeric(r) Then ptr = ptr + 1: aOut(ptr, 1) = s     'sinin ajouter à la matrice
     Next

     With Range("C1")
          .EntireColumn.ClearContents     'RAZ colonne
          .Resize(ptr) = aOut     'coller matrice
     End With

End Sub

Hello BsAlv,

Je pense que tu maitrises bien trop la fonction AGREGAT pour un néophyte comme moi dessus

Je comprends la formule sans souci mais de là à avoir l'idée, ça c'est autre chose

Merci encore pour l'exemple bien concret :)

@+

Bonjour à tous !

Pour le fun et avec Excel 365, une formule unique et dynamique :

=LET(
t_;A1:A264;
m_u;UNIQUE(SIERREUR(CNUM(GAUCHE(t_;4));""));
m_s;SEQUENCE(MAX(m_u));
TEXTE(FILTRE(m_s;ESTNA(EQUIV(m_s;m_u;0)));"0000")&"/2023"
)

Merci BsAlv pour votre macro, ça fonctionne très bien sauf une petite soucis 9999 est une constante qu'on peut mettre dans une cellule exemple je peux mettre 92 dans une cellule et executer la macro ?

1 To 9999, 1 To 1

1 To range ("J1").value, 1 To 1 ?

Bonjour

Bonjour à tous

Ma modeste contribution...

11classeur1-v1.xlsm (23.64 Ko)

Bye !

re,

si vous mettez la valeur minimale et maximale dans les cellules D1 et D2

Sub xxmedxx()
     Dim aA, ptr, i As Integer, aOut, MyMin, MyMax, s, r 'vous cherchez les lots de 0001 à 9999
     aA = Sheets("feuil1").Range("A1").CurrentRegion.Resize(, 1).Value     'vos lots utilisés

     MyMin = Range("D1").Value     'numéro minimal
     MyMax = Range("D2").Value     'numéro maximal
ReDim aOut(1 To MyMax - MyMin + 1, 1 To 1) 'vous cherchez les lots de 0001 à 9999

     ptr = 0
     For i = MyMin To MyMax
          s = Format(i, "0000") & "/2023"     'un lot
          r = Application.Match(s, aA, 0)     'il existe déjà?
          If Not IsNumeric(r) Then ptr = ptr + 1: aOut(ptr, 1) = s     'sinin ajouter à la matrice
     Next

     With Range("C1")
          .EntireColumn.ClearContents     'RAZ colonne
          .Resize(ptr) = aOut     'coller matrice
     End With

End Sub
Rechercher des sujets similaires à "numeros manquants"