Recherche V et gestion des #N/A

AnnieC

XLDnaute Nouveau
Bonjour à tous,

Ayant été très très aidée lors de mon dernier besoin, je me permet de revenir vous concernant un petit besoin.

En effet, je souhaiterais comparer deux colonnes dans deux onglets différents (pour les lesquels je ne connais pas les noms mais pour lesquels je comptais utiliser une variable).

J'aimerais en fait que la macro regarde la valeur de la colonne D de l'onglet 2 et aille voir en colonne D de l'onglet 1 si elle est présente..
Si elle est présente (valeur en onglet 1 et onglet 2), elle vient alors mettre "OK" en colonne A,
Sinon (valeur en onglet 2 et NON en onglet1), alors mettre "A traiter" en colonne A.

Sachant que je ne connais pas l'emplacement de la dernière ligne.

Merci à tous pour votre aide précieuse.

Annie
 

Modeste

XLDnaute Barbatruc
Re : Recherche V et gestion des #N/A

Bonjour Annie,

Les vestiges de mon éducation m'ont empêché de commenter ton histoire de "petit besoin" ... Je voudrais que la chose soit actée dans les annales du forum (Petit Jésus, faites que Robert ne passe jamais par ici: je n'ose imaginer ce que ça donnerait!)

Pour le reste, ton titre évoque les RECHERCHEV, puis tu nous parles de macro :confused: ... si une solution est envisageable par formule, tu n'en veux pas?
Un petit bout de fichier nous confirmerait si nous avons bien compris la demande, nous donnerait la possibilité de tester une solution et nous permettrait de vérifier la présence (ou non) de cas particuliers!

Que penses-tu donc de ma question et de ma suggestion?
 

natorp

XLDnaute Accro
Re : Recherche V et gestion des #N/A

Bjr Annie et modeste

Un petit essai un pièce jointe de ce que j'ai compris

Cordialement, Gérard
 

Pièces jointes

  • Classeur1.xls
    78 KB · Affichages: 22
  • Classeur1.xls
    78 KB · Affichages: 31
  • Classeur1.xls
    78 KB · Affichages: 31

AnnieC

XLDnaute Nouveau
Re : Recherche V et gestion des #N/A

Bonjour à vous deux,

Merci pour l'information; j'éviterais ce genre d'ambiguïté à l'avenir.. Sauf si ce fameux Robert passe par ici & amplifie la chose!!

C'est exactement le résultat que j'attends.. Le hic est que, je peux avoir plusieurs milliers de lignes à traiter et une première partie du traitement de ces données et d'ores et déjà sous macro.

c'est la raison pour laquelle je souhaitais intégrer ce "petit besoin" à ce que j'ai déjà. Ensuite, peu importe si la valeur en A est une formule ou du texte brute car le format final est en CSV.

Mais l'idée est là oui, dans le fichier.

Pouvez-vous m'aider pour la'voir sous forme de code ?

Merci !
 

AnnieC

XLDnaute Nouveau
Re : Recherche V et gestion des #N/A

Merci de ton retour Gérard,

La macro existante à aucun lien avec ce que je recherche (compilation de données dans l'onglet 2).

Je peux envoyer un exemple.. Mais tu l'as parfaitement décrit que le classeur que tu m'as envoyé. Tu as cerné mon problème..

J'aurais juste aimé l'avoir en VBA plutot que de devoir tirer la formule jusqu'en bas.

Merci
 

klin89

XLDnaute Accro
Re : Recherche V et gestion des #N/A

Bonsoir à tous, :)

Tu pourrais faire l'effort de fournir un fichier Annie.
Avec le fichier de natorp.
Résultat en Feuil1, colonne F.
VB:
Sub test()
Dim a, i As Long, b(), y
    Application.ScreenUpdating = False
    a = Sheets(2).Range("d1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 1 To UBound(a, 1)
            .Item(a(i, 1)) = Empty
        Next
        'y = .keys
        a = Sheets(1).Range("d1").CurrentRegion.Value
        ReDim b(1 To UBound(a, 1))
        For i = 1 To UBound(a, 1)
            If .Exists(a(i, 1)) Then
                b(i) = "ok"
            Else
                b(i) = "à traiter"
            End If
        Next
    End With
    Sheets(1).Range("f1").Resize(UBound(b, 1)).Value = Application.Transpose(b)
    Application.ScreenUpdating = True
End Sub
Pour éviter Application.Transpose, on utilisera ce code :
VB:
Sub test1()
Dim a, i As Long, b(), y
    Application.ScreenUpdating = False
    a = Sheets(2).Range("d1").CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        For i = 1 To UBound(a, 1)
            .Item(a(i, 1)) = Empty
        Next
        'y = .keys
        a = Sheets(1).Range("d1").CurrentRegion.Value
        ReDim b(1 To UBound(a, 1), 1 To 1)
        For i = 1 To UBound(a, 1)
            If .Exists(a(i, 1)) Then
                b(i, 1) = "ok"
            Else
                b(i, 1) = "à traiter"
            End If
        Next
    End With
    Sheets(1).Range("g1").Resize(UBound(b, 1)).Value = b
    Application.ScreenUpdating = True
End Sub
As-tu remarqué qu'en inversant la position des 2 premières feuilles, on inversait la comparaison ?
klin89
 
Dernière édition:

AnnieC

XLDnaute Nouveau
Re : Recherche V et gestion des #N/A

Bonjour à tous,

Merci !!! Ca fonctionne.

Concernant le fichier, je l'aurais mis sans soucis s'il fallait !

Mais le fichier de Gérard résumait parfaitement mon besoin.. La preuve !

Merci encore.

Bonne journée et bon week-end à tous.

Annie
 

job75

XLDnaute Barbatruc
Re : Recherche V et gestion des #N/A

Bonjour à tous,

Pour les formules il est plus simple d'utiliser NB.SI.

Et REPT "pèse" moins lourd que la fonction SI :

Code:
=REPT(SI(NB.SI(Feuil2'!D:D;D1);"Ok";"A traiter");ESTTEXTE(D1))
A+
 

AnnieC

XLDnaute Nouveau
Re : Recherche V et gestion des #N/A

Aha Madame a été servi!! :)

J'ai eu toutes les réponses possibles, sous forme de macro et de formules !

Au final, le code fonctionne est je viens de gagner un sacré temps de traitement !

Bon weeknd à tous !
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 982
Membres
103 997
dernier inscrit
SET2A