Comparer deux listes et créer la liste des manquants

Bonjour Forum,

Je cherche à générer une liste objets manquants suite à la comparaison de deux listes.

https://www.excel-pratique.com/~files/doc2/Les_manquantes.xls

Merci

Adrien

Bonjour à tous,

En colonne D (provisoire), j'ai concatené les colonnes A;B;C

résultat en Feuil3

https://www.excel-pratique.com/~files/doc2/Les_manquantes2.xls

macro "Nondoublon"

Amicalement

Claude.

Bonjour Claude,

Est-il possible de générer seulement les manquantes dans la base par rapport à la liste des frappées. Excuses mais je n'ai pas été assez précis dans ma question.

J'ai la solution de mettre un filtre après mais ce qui m'intéresse le plus c'est de savoir les manques par rapport aux frappées.

Merci

Adrien

re,

Si tu peux patienter 2 ou 3 jours, là j'ai un projet sur le feu !

Amicalement

Claude.

RE,

Claude, c'est sans aucun problème. Cela fait bien 15 ans qu'elles attendent.

HS : pour les billets, hier je me suis fait peur. Dans la feuille saisie, je n'avais plus de liste déroulante "Pays". pour quelle raison, mystère. J'ai réparé ça avec ma sauvegarde de secours. Autrement ça fonctionne.

A+

Adrien

Adrien,

Je fais une pause sur mon projet "Pétanque", voici le code pour les pièces manquantes.

Sub PieceManquantes()
Dim Lg As Integer, i As Byte
''Macros par Claude Dubois pour "AdrienHeiser" Excel-Pratique le 19 Oct 09
        Application.ScreenUpdating = False
        Lg = Range("Frappées!b65536").End(xlUp).Row
    Sheets("Manquantes").Range("a2:e" & [a65000].End(xlUp).Row).ClearContents

            With Sheets("Base")
                .Range("A:A").Insert
                .Range("a2").FormulaR1C1 = "=RC[1]&RC[2]&RC[3]" 'concatène
                .Range("a2").AutoFill Destination:=.Range("a2:a" & Lg)
            End With
        With Sheets("Frappées")
            .Range("A:A").Insert
            .Range("a2").FormulaR1C1 = "=RC[1]&RC[2]&RC[3]" 'concatène
            .Range("a2").AutoFill Destination:=.Range("a2:a" & Lg)
            .Range("o1") = "=MATCH(p1,Base!a:a,0)"

                For i = 2 To Lg
                        .Range("p1") = .Range("a" & i)
                    If IsError(.Range("o1")) Then
                        Range(.Range("b" & i), .Range("e" & i)). _
                        Copy Destination:=Range("Manquantes!a65000").End(xlUp)(2)
                        Application.CutCopyMode = False
                    End If
                Next i
            .Range("o1:p1").ClearContents
            .Range("A:A").Delete
        End With

    Sheets("Base").Range("a:a").Delete
    Sheets("Manquantes").Columns("a:d").AutoFit
End Sub

Fichier:

https://www.excel-pratique.com/~files/doc2/Les_manquantes3.xls

Pour les billets,

Dans feuille Saisie, la liste "Pays" est issue du fichier "DRAPEAUX.xls",

il faut donc qu'il soit ouvert.

Bonne soirée

Claude.

Bonsoir Claude, Bonsoir Forum

Impec.

Maintenant, dans mon fichier, il faut que je créé mes feuilles "Frappées et Manqantes" Je colle le code dans un module de la feuille manquante OK ?.

Pour le pavé jaune Manques dans base il faut faire un lieu ?

Merci et réponds quand tu as le temps. Chacun son tour. Pas de stress.

A+

Adrien

re,

Je colle le code dans un module de la feuille manquante OK ?.

Non, dans un module ordinaire de ton fichier (Module1 par exemple), tu peux mettre le

bouton n'importe où.

respecte bien les noms de feuille: "Base"; "Frappées" et "Manquantes".

t'as pigé pour les billets ?

ou la mémoire n'a pas suivi le déménagement !

Claude.

RE

OK je teste tout ça. Mais dans un premier temps il faut que créé la feuille des pièces frappées. J'ai de la saisie en vue.

Pour les billets tout est rentré dans l'ordre. J'ai installé un outil de capture téléchargé sur le net qui fonctionne bien.

Quant au déménagement il est retardé (ça m'arrange).

Merci pour ton aide.

Adrien

Bonsoir Forum,

Claude aux secours. Je suis en train d'installer ton code dans mon fichier. J'ai créé le bouton, j'ai saisie une partie des pièces frappées et lorsque j'ai cliqué sur le bouton cela m'a créé dans la feuille manquantes la même liste que dans la feuille frappées.

Avant de changer quelque chose dans la macro je voudrais avoir ton feu vert.

En première ligne

Sub PieceManquantes () si j'ai compris les macros c'est le nom du fichier ?

or mon fichier s'appelle Projet collection de pieces c'est peut-être la raison du souci.

Ton avis je change le nom

Merci

A+

Adrien

Bonsoir à tous,

Pas de panique !

Le nom de la macro n'a rien à voir avec le nom fichier,

- Tu as bien rempli quelque chose dans la feuille "Base" ?

La structure (colonnes) dans "Frappées" et "Base" doit être la même,

ou alors envoie tes 2 feuilles que je vois.

Claude.

édit: si la structure n'est pas la même, on peut adapter, envoie

re,

Dans Base, déplace la colonne "Lettre" en colonne "D"

et essaye d'analyser ce que fait la macro, sinon tu ne progressera pas !

Claude.

RE

Eh oui ! Ca marche mieux comme ça. J'ai pas le réflexe et je pense que l'ordi devinera tout seul les changements.

Merci en tous les cas

A+

Adrien

RE

Un petit souci. Je suis en train de faire la saisie de la feuille "frappées" et le programme bug

Error : Dépassement capacité

Dans la macro la ligne "For i = 2 To Lg" est surlignée en jaune.

La feuille frappées je suis à la ligne 353 et à la ligne 120 de feuille manquantes.

Mystère pour moi

A+

Adrien

Salut le forum

Adrien, dans la déclaration des variables change

Dim Lg As Integer, i As Byte

par

Dim Lg As Integer, i As Integer

Car Byte ne permet pas de dépasser la valeur de 255.

Si tu penses utiliser plus de 32 767 lignes utilise

Dim Lg As Integer, i As Long

Référence VBA avec les mots clés : Résumé des types de données

Byte de 0 à 255
Integer de -32 768 à 32 767
Long de -2 147 483 648 à 2 147 483 647

Mytå

Adrien,

Je me répète, si tu analyse les codes qu'on te fourni, tu aurais du trouver l'erreur !

Ne pas copier bêtement sans comprendre.

Mytå, quel serait l'inconvénient à mettre As Long systématiquement ?

(qui peut le + peut le -)

çà alourdirai le système ?

Bonne journée

Claude.

Bonjour Forum, Bonjour Claude

Mon ordi est planté. Je l'ai amené, ce matin, en réparation. J'écris d'un ordi d'un parent.

Je suis sans conexion jusqu'à mercredi au moins.

A+

Adrien

Re le forum

Integer utilise 2 octets de mémoire

Long utlise 4 octets de mémoire

Variant utilise 16 octets de mémoire (Variable non-déclarée)

Avec Excel 2007 qui possède 1 048 576 lignes....

Cela dépend donc de ton utilisation, donc Long par défaut n'est pas exagéré.

Mytå

Bonsoir Forum

J'ai récupéré mon ordi. Le disque dur m'a laché. Par chance on a pu récupérer les données.

Donc, Claude, si je reprends le fil. Je fais les modifs d'USB512 ?

A+

Adrien

Rechercher des sujets similaires à "comparer deux listes creer liste manquants"