XL 2016 Recherche dans une base de donnée

KoMiK's

XLDnaute Nouveau
Bonjour à tous,
merci de prendre quelque temps pour m'aider...

Voici mon problème :
Dans un onglet, j'ai une liste de TYPE
Dans une autre feuille (base de donnée) j'ai aussi une liste de TYPE (avec un grand nombre de ligne)
Dans une troisième feuille, je voudrais recopier les valeurs nouvelles de la liste de la feuille 1 qui est comparée à la base de donnée

Pour simplifier, je compare la liste de la feuille 1 à la base de donnée, et si nouvelle je la recopie dans l'onglet 3

En espérant que ce soit clair !

Je joins un fichier pour que ce soit plus simple

Merci d'avance
 

Pièces jointes

  • Test.xlsx
    9.6 KB · Affichages: 28

KoMiK's

XLDnaute Nouveau
Merci de ta réponse.
Mais je pense que je me suis mal exprimé...

Je voudrais faire :
je lis les valeurs de la première feuille
je les compare à ma deuxième feuille (base de donnée)
si elle existe je ne fais rien, si elle n'existe pas, alors je la recopie en feuille 3

Si c'est uniquement en VBA cela ne me dérange pas
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Sauf erreur de ma part, tu dois pouvoir faire avec
Code:
SIERREUR(INDEX('Feuille à comparer'!A$1:A$9;PETITE.VALEUR(SI(ESTNA(EQUIV('Feuille à comparer'!A$2:A$9;'Base de donnée'!C$2:C$20;0));LIGNE($2:$9));LIGNE(1:1)));"")
, formule matricielle à valider avec Ctrl+maj+entrer.

@ plus
 
Dernière édition:

KoMiK's

XLDnaute Nouveau
C'est bon merci, j'ai trouvé ce que je voulais
voici le code en exemple
merci encore de m'avoir aider


Sub test()

Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet
Dim I As Long


Set w1 = Sheets("Feuille à comparer")
Set w2 = Sheets("Base de donnée")
Set w3 = Sheets("A remplir")


w3.Cells.ClearContents

For I = 2 To w1.Range("A65536").End(xlUp).Row
If Application.WorksheetFunction.CountIf(w2.Range("A:A"), w1.Range("A" & I)) = 0 Then
w1.Range("a" & I & ":A" & I).Copy Destination:=w3.Range("a65536").End(xlUp).Offset(1, 0)
End If
Next

MsgBox "TERMINE"

End Sub
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pour les interressés n'utilisant pas le code VBA, Formule modifiée en "A2" pour éviter les validations matricielles.
Code:
=SI(LIGNE(1:1)>$C$2;"";INDEX(Compare;EQUIV(LIGNE(1:1);formule;0)))

JHA
 

Pièces jointes

  • Test (2).xlsx
    11.4 KB · Affichages: 36

Statistiques des forums

Discussions
312 448
Messages
2 088 507
Membres
103 873
dernier inscrit
Sabin