XL 2016 Recherche dans une base de donnée

  • Initiateur de la discussion Initiateur de la discussion KoMiK's
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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:
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
2
Affichages
117
Retour