VBA - une vlookup qui affiche les #N/A

Bonjour à tous,

Je vous présente mon code ci-dessous en fin de post.

Dans mes tables, j'ai :

Les résultats d'une concaténation d'un fichier du mois M sous le libellé : Clmconcat0 en "Feuil1"

Les résultats d'une concaténation d'un fichier du mois M-1 sous le libellé : Clmconcat en "Feuil2"

Mon code :

Il effectue une rechercheV pour savoir si mes données du mois M sont présentes dans la table de données de M-1.

Ci dessous :

une maquette sous Excel très simplifié des résultats de mon code et de ce que je souhaite en réalité

vba

Explications :

Mon code fonctionne, mais comme vous le voyez, j'ai des informations supplémentaires (des lignes en plus) en M par rapport à M-1. J'attends donc à ce que VBA m'affiche dans le "feuil3" un #N/A lorsque je dispose d'une nouvelle information en M. Or ce n'est pas le cas, dans mon "Feuil3" je n'ai que les cellules qui matchent entre M et M-1.

Comment faire pour que VBA me mette des #N/A lorsque la valeur recherchée n'existe pas en M-1 ?

Cdt

 '************Comparaison des données du mois M et M-1

Wbcible.Activate
Clmconcat = Worksheets("Feuil1").Range("A2:A2000")          'Résultat de la concatenation de M-1
Clmconcat0 = Worksheets("Feuil2").Range("A2:A2000")           'Résultat de la concatenation de M
concat_row = Worksheets("Feuil2").Range("A2").Row           
concat_clm = Worksheets("Feuil2").Range("A2").Column  

For Each Compare In Clmconcat0
Worksheets("Feuil3").Cells(concat_row, concat_clm) = WorksheetFunction.Application.VLookup(Compare, Clmconcat0, 1, False)
concat_row = concat_row + 1
Next

Bonjour,

Une piste à adapter :

Sub Test()

    Dim PlageM As Range
    Dim PlageM_1 As Range
    Dim Cel As Range

    Set PlageM = Range("B4:B6")
    Set PlageM_1 = Range("B9:B10")

    For Each Cel In PlageM

        Cells(Cel.Row + 4, 6).Value = Application.VLookup(Cel, PlageM_1, 1, False)

    Next Cel

End Sub

Bonjour,

C'est quoi l'intérêt de :

concat_row = Worksheets("Feuil2").Range("A2").Row

?

Tu ne peux pas écrire

 concat_row = 2

comme tout le monde ?

idem pour la colonne.

Sinon écrit ta formule dans ta plage en une ligne et copier-coller valeur, tout ça en vba, tu gagneras le temps de la boucle et le calcul sur feuille est plus rapide.

eric

Bonjour Eric,

Effectivement, y'a des choses surement pas logiques mais je ne sais pas codé sur VBA, j'ai appris d'autres langagues, c'est ma première "mission" dessus, donc forcément je fais avec les moyens du bord...

Sinon la deuxième partie de la réponse, j'ai pas bien saisi ce que tu voulais dire.

Un exemple.

eric

29classeur2.xlsm (18.52 Ko)

Bonjour Theze,

J'ai pas compris ton "cell" placé après ton next. Je l'ai retiré, ça marchait.

Eriiic

Ok je connais pas du tout qu'on pouvait faire une rechercheV avec ce genre de synthaxe. Je suis très surpris mais très bien, ça fonctionne bien il semblerait.

Merci à vous deux.

Rechercher des sujets similaires à "vba vlookup qui affiche"