XL 2016 Recherche de code VBA pour macro complexe entre fichier

Justine B

XLDnaute Nouveau
Bonjour à tous et à toutes,

Je suis nouveau dans le monde du langage VBA sur Excel et j’aimerai effectuer une opération depuis un macro. Je suis en train d’apprendre les bases du VBA, mais j’ai encore beaucoup de chemin à faire avant d’être en mesure d’écrire la ligne de code nécessaire à l’opération que je souhaite effectuer. Je ne sais vraiment pas par où commencer ni même quel genre de formule serait nécessaire. Voici les détails :
* J’ai joint un fichier Excel avec des explications visuel. *

Il y a deux fichiers concernés :
  • Le fichier « FICHIER_ABC » contenant les feuilles « feuille__avec_macro » et « origine_abc » localisé à l’emplacement « F:\dossier1 »
  • Le fichier « FICHIER_XYZ » contenant la feuille « fin_xyz » localisé à l’emplacement « F:\dossier2 »
À noter que la feuille « feuille_avec_macro » ne fait que contenir la macro, rien de plus. L’opération que je souhaite réaliser concerne seulement deux feuilles de deux fichiers Excel différents.

Voici les détails de l’opération que je tente de construire :
Sur activation d’un bouton macro présent dans la feuille « feuille_avec_macro » du Fichier « FICHIER_ABC » :
  • 1.) Ouverture du fichier « FICHIER_XYZ » contenant la feuille « fin_xyz »

  • 2.) Rechercher dans la colonne A de la feuille « fin_xyz » le même numéro unique correspondant à celui inscrit dans la cellule A2 de la feuille « origine_abc ».

  • 2.a.) Si une correspondance est trouvée dans la feuille « fin_xyz » et que la cellule R2 de la feuille « origine_abc » possède la valeur numérique 1, il faut que le contenu des cellules A2 à R2 de la feuille « origine_abc » soit supprimé ainsi que le contenue des cellules présente dans les colonnes A à R sur la même ligne où a été trouvé la correspondance dans la feuille « fin_xyz ».

  • 2.b.) Si une correspondance est trouvée dans la feuille « fin_xyz », mais que la cellule R2 de la feuille « origine_abc » ne possède PAS la valeur numérique 1, ne rien faire.

  • 2.c.) Répéter l’étape 2 au complet trois fois de plus, chaque fois en changeant les cellules concernées ([A3, R3, B3 à R3], [A4, R4, B4 à R4] et finalement [A5, R5, B5 à R5]).

  • 3.) Sur la cellule A1 de la feuille « fin_xyz », appliquer un tri croissant. (Il y aura déjà un filtre exempt de critère de filtrage présent sur les cellules A1 jusqu’à R1)

  • 4.) Rechercher dans la colonne A de la feuille « fin_xyz » du fichier « FICHIER_XYZ » le même numéro unique correspondant à celui inscrit dans la cellule A2 de la feuille « origine_abc » du fichier « FICHIER_ABC ».

  • 4.a.) Si une correspondance est trouvée, il faut que les cellules B2 à R2 de la feuille « origine_abc » viennent remplacer les cellules présente dans les colonnes B à R sur la même ligne où a été trouvé la correspondance dans la feuille « fin_xyz ». Ce remplacement de cellule doit également considérer les cellules vides, car il faut que les cellules vides présentent de B2 à R2 dans la feuille « origine_abc » puisse venir remplacer des cellules pleines de la feuille « fin_xyz ».

  • 4.b.) Si aucune correspondance n’est trouvée et que la cellule B2 de la feuille « origine_abc » n’est pas vide, il faut inscrire sur la première cellule vide disponible dans la colonne A de la feuille « fin_xyz » le numéro unique séquentiel de la cellule A précédente (donc la dernière cellule A non vide) auquel on addition +1 à la valeur (par exemple, 802+1= 803, non pas 8021). Ensuite, il faut que les cellules B2 à R2 de la feuille « origine_abc » viennent remplacer les cellules présente sur cette nouvelle ligne dans les colonnes B à R de la feuille « fin_xyz ».

  • 4.c.) Si aucune correspondance n’est trouvée et que la cellule B2 de la feuille « origine_abc » est vide, ne rien faire.

  • 4.d.) Répéter l’étape 4 au complet trois fois de plus, chaque fois en changeant les cellules concernées ([A3, B3, B3 à R3], [A4, B4, B4 à R4] et finalement [A5, B5, B5 à R5]).

  • 5.) Enregistrer puis fermer le fichier « FICHIER_XYZ » contenant la feuille « fin_xyz ».

Merci d’avance pour votre aide sur le sujet. N’hésitez pas à me contacter si vous avez besoin de précision.
 

Pièces jointes

  • FICHIER_EXPLICATIF.xlsx
    24.7 KB · Affichages: 6
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour et bienvenue,
Je suis en train d’apprendre les bases du VBA

Alors commencez pour résoudre votre problème par chercher comment ouvrir un autre classeur. Faites des recherches sur le forum, je suis sûr que vous trouverez quelque chose... et lors de vos tests d'ouverture d'un classeur si vous avez des problèmes, revenez avec vos essais et difficultés précises à ce sujet, sur un nouveau fil de discussion précis.

Une fois que cette étape sera ok,vous passerez à la suivante de la même façon

Bonne recherches et apprentissage
 

Justine B

XLDnaute Nouveau
Bonjour,

J'utilise actuellement l'enregistreur macro pour comprendre le codage de certaines opérations effectuables manuellement, mais c'est une autre histoire pour des recherches de valeur entre fichier et du remplacement de donnée sur condition. Si quelqu'un pourrait me donner des pistes sur le type de formule à utiliser sa serait vraiment génial.

Au plaisir.
 

Discussions similaires

Réponses
33
Affichages
1 K
Réponses
14
Affichages
357

Statistiques des forums

Discussions
315 090
Messages
2 116 106
Membres
112 661
dernier inscrit
ceucri