Copier des données via une macro

Résolu/Fermé
Val67 - 7 févr. 2022 à 19:22
 Val67 - 15 févr. 2022 à 19:13
Bonjour,

Je souhaiterai via une macro, alimenter un onglet à partir d'un autre en fonction de plusieurs critères .

Je cherche, en effet, à copier :
- à partir de l'onglet extraction (actualisé chaque mois) les résultats de la colonne M dépendants de la colonne G et du mois saisi en cellule D1,
- vers l'onglet crédit cumulé en fonction de ces mêmes critères.

Cela est-il possible ? en pj le fichier

https://www.transfernow.net/dl/20220207TWeRs5AB

Vous remerciant par avance pour votre aide
A voir également:

2 réponses

via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 2 741
7 févr. 2022 à 22:37
Bonjour

Oui c'est possible

Macro à copier et à mettre dans un module de l'éditeur VBA (Alt+F11 pour ouvrir l'éditeur - Insertion - Module - coller la macro dans la page blanche et fermer l'éditeur
Lancer la macro depuis une des feuilles du classeur par le ruban (Développeur -Macros) ou par un raccourci clavier (Options dans Macros ) ou par un bouton créé pour cela
Sub transfert()

    Sheets("EXTRACTION").Select
     m = Range("D1")
    Range("M3").Select
    Range(Selection, Selection.End(xlDown)).Select ' selectionne jusqu' à la dernière ligne remplie de la colonne M
    Selection.Copy
    Sheets("CREDIT CUMULE").Select
    Cells(7, 5 + m).Select ' Se positionne en cellule ligne 7 colonne 5 + m
    ActiveSheet.Paste
    
End Sub


Cdlmnt
Via
0
Merci pour la macro , mais elle ne correspond pas tout à fait à ce que je souhaite faire (ma demande n'étant peut-être pas assez explicite)

Les données que je cherche à extraire de l'onglet EXTRACTION (colonne M) :
doivent être en lien avec les matricules présents (et ceux qui viendront se rajouter au cours de l'année) dans l'onglet CREDIT CUMULE ;
être copiées dans l'onglet CREDIT CUMULE, sur les lignes afférentes aux matricules et dans la colonne "mois" (qui aura été définie en EXTRACTION!D1 : "Janvier" équivalent à 1, "Février" = 2, "Mars" = 3, etc...)

Exemple :
A partir de la cellule CREDIT CUMULE!A7 (matricule 232), la macro devra rechercher dans l'onglet EXTRACTION ce même matricule en colonne G pour trouver le résultat en colonne M (soit 32) et le copier en :
- CREDIT CUMULE!F7 si EXTRACTION!D1 =1;
- CREDIT CUMULE!G7 si EXTRACTION!D1 =2
Si le matricule est inexistant dans l'onglet EXTRACTION (colonne G), alors rien.

Ma nouvelle sollicitation est-elle réalisable ? Vous remerciant. Cdlt
0
via55 Messages postés 14512 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 janvier 2025 2 741
10 févr. 2022 à 20:30
Bonsoir

Oui comme les matricules étaient identiques dans les 2 feuilles je pensais qu'il suffisait d'un copier-coller

Là il faut boucler sur toutes les lignes te trouver la correspondance
Macro à mettre dans un Module :
Sub transfert()

   On Error Resume Next ' Si pas trouvé on passe au suivant
     m = Sheets("EXTRACTION").Range("D1") ' mois où relever
     der = Sheets("EXTRACTION").Columns(7).Find("*", , , , xlByColumns, xlPrevious).Row ' dernière ligne avec un matricule
     
   For n = 3 To der ' boucle sur les lignes depuis la 3 jusqu'à la dernière
   mat = Sheets("EXTRACTION").Range("G" & n) ' matricule à chercher
    x = Sheets("EXTRACTION").Range("M" & n) '  valeur à reporter
   ligne = Sheets("CREDIT CUMULE").Columns(1).Find(mat, , , xlWhole, xlByColumns, xlNext).Row ' ligne où se trouve ce matricule dans CUMULE
     Sheets("CREDIT CUMULE").Cells(ligne, 5 + m) = x ' reporte la valeur dans colonne adéquate
     Next
    
End Sub

Cdlmnt
Via
0
Bonsoir,
Encore merci ;
c'est le résultat souhaité : super !

Cldt
0