Code VBA pour Compter les cellules identiques

Bonjour,

Je viens vers vous pour un problème sur excel.

En effet j'essaye de trouver un code Vba qui me permettrait de compter le nombre de cellules à valeurs identique entre deux colonnes qui se trouvent dans deux fichiers différent. On peut appeler fichier (a) première base de données et fichier (b) seconde base de données. Et fichier (c) le fichier où se trouvera la macro.

Dans le fichier a se trouve plusieurs onglets qui représente les mois de l'année et dans le fichier b les données se trouvent sur une seule feuille. le but étant d'avoir chaque mois le nombre de valeurs identique entre le fichier a et le fichier b.

En espérant avoir des réponses qui puisse m'aider, j'ai réussi sans macro avec la formule sommeprod(nb.si) mais les fichiers étant lourd cela prend trop de temps à charger.

Merci

45a.xlsx (9.32 Ko)
26b.xlsx (7.77 Ko)
37c.xlsm (15.95 Ko)

Bonsoir et bienvenu(e)

Des questions

Les fichiers postés ressemblent aux fichiers réels ?

Dans le fichier a : Une seule feuille de renseignée avec 1 seul nombre, exact ?

Dans le fichier b : 1 seul nombre, exact ?

Non les fichiers réel font de 2000 à 3000 ligne par onglet sur le fichier a et jusqu a 7000 ligne sur le fichier b.

Bonsoir

Tu ne réponds pas aux autres questions

Moi je veux savoir si dans le fichier b il n'y aura qu'un seul nombre à chercher dans le fichier a

et si dans le fichier a il n'y aura qu'un seul mois de rempli avec un seul nombre

Merci d'indiquer si c'est le cas (c'est à dire identique aux fichiers que tu as fourni)

Sinon fournis des fichiers plus conformes à la réalité

En faite dans le fichier a il y aura dans chaque onglet de mois 2000 à 3000 lignes de valeurs différentes. Dans le fichier b il peut y avoir jusqu'à 7000 lignes avec pour chaque ligne une valeur différentes. Le but étant pour moi de compter pour chaque mois dans le fichier a le nombre de valeurs identique se retrouvant dans le fichier b.

J espere avoir été un peu plus claire.

Bonjour

Pour 7 000 lignes cela risque d'être long

A tester

Merci pour la réponse

Pour le moment cela ne fonctionne pas mais on doit se rapprocher.

le fichier a se nomme "p 2015" et le fichier b se nomme "SFV"

concernant les onglets dans le fichier A, ils vont se nommer JANVIER2015, FEVRIER2015 ect...

j'aurais du être plus précis avant

Bonjour

Si cela fonctionne

Dans b tu as 500 000 et dans a tu as 50 000 (ou le contraire)

Tung a écrit :

j'aurais du être plus précis avant

Ça c'est sur

A la question

Banzai64 a écrit :

Les fichiers postés ressemblent aux fichiers réels ?

Tu as répondu qu'à part le nombre de lignes ils étaient semblables

Maintenant les onglets différents

Quelle va être la prochaine mauvaise nouvelle ?

Dans le fichier principal ( le c) la liste des onglets réels est elle reprise ?

Je mets les fichiers comme ils sont actuellement.

Sachant que le fichier essai peut être modifier dans la tramme.

Aux niveau du fichier P 2015 j'ai laissé quelques onglets mais y'a bien les douze mois.

Désolé pour le contretemps


oubli du 3eme fichiers pardon

26essai.xlsm (19.77 Ko)
28p-2015.xlsx (242.49 Ko)
25sfv.xlsx (22.66 Ko)

Bonjour

Tung a écrit :

Sachant que le fichier essai peut être modifier dans la tramme.

Précise

On cherche le nombre dans quelle(s) colonne(s) ?

Le nom des mois dans le fichier essai sont bien écrit comme tu l'as fait ?

Et maintenant dans le fichier SFV quel est le nombre à chercher ?

Cela devient plus compliqué

Colonne B en face des mois de l'année

Bonjour

Je crois que tu t'en fous de ce programme et je ne vais pas m'emmerder dessus

Je te pose des questions et tu ne réponds pas ou alors avec une réponse merdique

je pense que ta réponse

Tung a écrit :

Colonne B en face des mois de l'année

est la réponse à ma 1ère question
Banzai64 a écrit :

On cherche le nombre dans quelle(s) colonne(s) ?

Je ne suis pas avancé avec ça

Ce programme c'est pour toi, moi d'un côté je m'en balance complétement

Je te souhaite bonne continuation

Non je ne m'en fous pas loin de la.

J'ai juste mal compris la question désolé.

je cherche à compter le nombre de valeur identique entre la colonne E de chaque onglet du fichier A avec les valeurs de la colonne F du fichier B.

Avec la formule sommeprod cela donne ça =SOMMEPROD((NB.SI('SFV.xlsx]Feuil1'!$F$:$F$;'[P 2015.xlsx]JANVIER2015'!$E$:$E$)) pour le mois de Janvier.

Bonjour

Je veux bien faire un autre essai

A vérifier

Super merci ça fonctionne.

Je sais pas si je peux encore t'embêter. Mais pour information si un jour j'ai besoin, est ce que je peux ajouter un critère de sélection supplémentaire comme dans une sommeprod?

En gros faire comme ça =SOMMEPROD(NON(ESTERREUR((CHERCHE("Statut";[P 2015.xlsx]JANVIER2015'!$G$:$G$))*((NB.SI('SFV.xlsx]Feuil1'!$F$:$F$;'[P 2015.xlsx]JANVIER2015'!$E$:$E$))

Mais te prend pas trop la tête si t'as pas envie, déjà grand merci pour la macro.

Bonjour

Une macro n'est pas aussi souple qu'une formule

Donc il faut repenser la macro pour inclure ce nouveau paramètre

Le moment venu ouvre un autre post avec ce nouveau problème (tu pourras faire référence à ce post si tu en as envie)

Salutations

J'ai testé avec les fichiers réels, malheureusement il me retrouve jamais plus d'une occurrence entre les deux fichiers par mois. (par rapport aux fichiers je sais qu'il y en a plus).

Est ce que je dois te fournir des fichiers avec plus de données?

Bonjour

Tung a écrit :

Est ce que je dois te fournir des fichiers avec plus de données?

Bien sur, mais surtout avec les fichiers en cause

voila les fichiers avec plus de données.

J'ai laissé le mois de janvier, juin et décembre tel qu'ils sont dans le vrai fichier.

En janvier on devrait trouver 27

En juin 20

En décembre 9

En espérant que ce soit suffisant

28p-2015.xlsx (215.81 Ko)
32sfv.xlsx (40.10 Ko)

Bonjour

Dans le fichier SFV les nombres (au format texte) ont une espace en plein milieu

Modifie la ligne correspondante

        Nb = Nb + Application.CountIf(WbA.Sheets(NomFeuille).Columns("E"), Replace(WbB.Sheets(1).Range("F" & J), " ", "")) ' On comtabilise le nombre de fois dans la feuille de b

Je ne trouve pas les mêmes résultats que toi

Janvier 27

Juin 19

Décembre 9

Donc à bien vérifier

Rechercher des sujets similaires à "code vba compter identiques"