VBA EXCEL pour comparer et copier des données

Résolu
berchy Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
 Berchy -
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

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

Cordialement
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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   Statut Membre Dernière intervention  
 
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 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > berchy Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > berchy Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
Berchy
 
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