VBA EXCEL pour comparer et copier des données

Résolu/Fermé
berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015 - 21 avril 2015 à 15:24
 Berchy - 23 avril 2015 à 10:07
Bonjour,
Débutant en VBA j'aimerais bien trouver une aide dans le forum.
J'ai dans ma première feuille(2013) une liste de nom (col C) qui possède également un numéro unique (col B). Dans la colonne F un oui ou un non pour un test réussi.
Dans ma deuxième feuille (2014) j'ai la même liste, qui correspond à l'année suivante et j'aimerais trouver un code qui recherche en comparant les numéros de la col B, si le test a déjà été passé l'année précédente. Si c'est le cas, qu'il copie le oui dans la colonne F de la feuille 2014.
J'espère que je n'ai pas été trop confus mais je ne sais absolument pas comment résoudre ce problème.

Merci d'avance de votre aide
A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
21 avril 2015 à 15:50
Bonjour,

Pourquoi utiliser VBA lorsqu'une simple formule RECHERCHEV ou INDEX(EQUIV()) suffit ?
0
berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015
21 avril 2015 à 15:53
Parce qu'il y a 600 noms et j'aimerais le faire pour l'ensemble de la liste.

Cordialement
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
21 avril 2015 à 15:54
Bonjour berchy

Pourquoi vouloir passer par une macro en VBA, une simple formule suffit:
En supposant les codes dans la Feuil2 aussi en colonne B et les retour oui ou rien à faire en colonne F , mettre en F1 la formule suivante :
=SI(INDEX(Feuil1!F:F;EQUIV(Feuil2!B1;Feuil1!B:B;0))="oui";"oui";"")

Cdlmnt
Via
0
berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015
21 avril 2015 à 16:00
J'y avais pensé mais les noms ne sont pas forcement sur la même ligne, il faut donc rechercher en premier si l'enregistrement existe dans la première feuille et si oui, vérifier si le test a été passé et recopier le oui. D'où mon idée de passer par du VBA.
C'est des listes d'élèves qui changent d'année en année.

CDT
Claude
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015
21 avril 2015 à 16:47
Re,

Comme dis Patrice, que je salue au passage, ma formule fonctionne justement où que soit le numéro unique dans la 1ere feuille puisque les fonctionsINDEX EQUIV (c'est le principe de ces fonctions) font la recherche sur l'ensemble de la colonne B (Feuil1!B:B)

Fais l'essai et dis-nous
Si néanmoins tu persistes à vouloir réaliser une macro en VBA, postes un exemple de ton fichier (anonymé, tu remplaces les noms par des noms bidons) sur cjoint.com et tu reviens ici indiquer le lien fourni

Cdlmnt
Via
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
21 avril 2015 à 16:40
Je ne vois pas où est le problème avec les formules proposées par via55 (bonjour à toi) !!!
As-tu au moins essayé ???
0
berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015
22 avril 2015 à 07:55
Au temps pour moi !!!! Je ne connaissais pas la fonction INDEX EQUIV !
Un petit détail : Si un nom est présent sur la deuxième liste et pas sur la première il s'affiche #N/A. Est-il possible de ne rien afficher ???
Encore merci à tout ceux qui m'ont aidé et surtout via55 pour la solution.
Cordialement
Claude
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > berchy Messages postés 4 Date d'inscription mardi 21 avril 2015 Statut Membre Dernière intervention 22 avril 2015
Modifié par via55 le 22/04/2015 à 13:44
Bonjour Berchy,

Pour gérer l'erreur transforme la formule ainsi :
=SIERREUR(SI(INDEX(Feuil1!F:F;EQUIV(Feuil2!B1;Feuil1!B:B;0))="oui";"oui";"");"")

Cdlmnt
Via
0
Génial, ça fonctionne comme je le voulais. Je vais potasser un bon livre sur Excel pour apprendre les formules.
Merci Via55

Bonne journée
Claude
0