Macro copier certaines lignes de plusieurs feuilles dans récap [Résolu/Fermé]

- - Dernière réponse : Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
- 19 mars 2016 à 08:58
Bonjour,
Nouveau sur votre blog et novice exel, je me permet de faire une demande après des recherches infructueuses.
situation:
Dans un même fichier, des feuilles mensuelles sont créés avec un même type de tableau.(elles sont créées en dupliquant une feuille "tableau vide")
Demande:
J'aimerai récupérer certaines lignes dans ses différents tableaux et les copier dans une feuille "récap".
Ces lignes doivent être sélectionnées par rapport à un "mot" présent ou pas dans une colonne"X".
Si je résume:
>la macro doit ouvrir tous mes onglets,
>sélectionner les lignes obéissants au "mot" présent dans la colonne "X"
>copier ses lignes dans la feuille "récap" en les incrémentant.

Si dans un premier temps vous comprenez ma demande je dis "bravo"
et si vous l’exaucez je dis "respect"
Afficher la suite 

2 réponses

Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
1534
0
Merci
Bonjour Christian et bienvenue sur CCM

Bien compris ton besoin, oui c'est faisable par macro mais il faut connaitre la structure exacte de ton fichier et de ses tableaux
Postes un exemple de ton fichier, anonymé au besoin) sur cjoint.com, fais créer un lien, copies-le et reviens le coller ici dans un prochain message en indiquant quel est le mot déclencheur et la colonne où il doit se trouver

Cdlmnt
Via
merci pour la rapidité
http://www.cjoint.com/c/FCplb5Z5EiG
mon choix de ligne est quand il y a "en cours" dans la colonne "etat"
Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
1534
0
Merci
Re

Voilà
http://www.cjoint.com/c/FCpmBkG4LSP

Le bouton MAJ sur la feuille Recap lance la macro

1) Bien laisser la feuille Recap et la feuille vierge en tête, la amcro boucle sur les feuilles à partir de la 3eme
2) Toutes les feuilles doivent avoir une structure identique (la feuille de décembre avait une colonne en plus apres RV que j'ai supprimé et dans la feuille vierge il manquait la colonne Reno

Cdlmnt
Via
via55
Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
1534 > Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
-
Bonsoir Positif5

1) Pour la ligne vide dans produits il suffit de changer dans la macro la ligne qui repère la dernière ligne vide actuellement en colonne A et de faire reperer en colonne D
' Boucle sur les feuilles de Relever
For f = 3 To Workbooks(W1).Sheets.Count
' dernière ligne remplie
Ligne = Workbooks(W1).Sheets(f).Range("A" & Rows.Count).End(xlUp).Row

remplaces cette dernière ligne par
Ligne = Workbooks(W1).Sheets(f).Range("D" & Rows.Count).End(xlUp).Row

2) En ce qui concerne le 3eme classeur si je comprends bien tu veux relever les infos qu'il contient dans chaque feuille de Rapport à partir de la ligne 100 ?
Si c'est cela il faut dans la macro dans Rapport rajouter ces lignes avant la ligne
Application.Screenupdating=true
W3 = "RETOUR.xlsx"
ligneR = 99
  ' Boucle sur les feuilles de Retour à partir de la 2eme
For f = 2 To Workbooks(W3).Sheets.Count 'A MODIFIER SI NECESSAIRE en remplaçant 2 par autre nombre
' dernière ligne remplie
Ligne = Workbooks(W3).Sheets(f).Range("D" & Rows.Count).End(xlUp).Row
' Boucle sur les lignes
For lg = 2 To Ligne
' nom du produit
prod = Workbooks(W3).Sheets(f).Range("D" & lg)
' Active classeur Retour et copie la ligne
Workbooks(W3).Activate
Workbooks(W3).Sheets(f).Select
Workbooks(W3).Sheets(f).Range("A" & lg & ":G" & lg).Select
 Selection.Copy
incremente d 'une ligne dans Rapport
 ligneR = ligneR + 1
' Active Rapport et colle la ligne copiée dans feuille Retour
 Workbooks(W2).Activate
 Workbooks(W2).Sheets(prod).Select
  Workbooks(W2).Sheets(prod).Range("A" & ligneR).Select
 ActiveSheet.Paste
 Next lg
 Next f
 
 Workbooks(W2).Activate
  'boucle sur feuilles de Rapport
 For f = 1 To Workbooks(W2).Sheets.Count
 nomf = Sheets(f).Name
Workbooks(W2).Sheets(nomf).Select
' tri par dates puis par magasins
   Workbooks(W2).Sheets(nomf).Range("A100:G200").Select
    Workbooks(W2).Sheets(nomf).Sort.SortFields.Clear
    Workbooks(W2).Sheets(nomf).Sort.SortFields.Add Key:=Range( _
        "a100:a200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
   Workbooks(W2).Sheets(nomf).Sort.SortFields.Add Key:=Range( _
        "C100:C200"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
     With Workbooks(W2).Sheets(nomf).Sort
        .SetRange Range("A100:G200")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Next f


Le 3eme classeur étant ouvert comme le 2eme avant l'ouverture du classeur Rapport dont l'ouverture lance la macro

Cdlmnt
Via
Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
> via55
Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
-
Bonsoir Via55,
ça a super bien marché.
Merci beaucoup.

Cordialement.
Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
-
Bonsoir Via55,

je voulais savoir comment inserer un bouton commande sur la fiche rapport afin de pouvoir y exécuter directement la macro.

Merci d'avance.
via55
Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
1534 > Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
-
Bonsoir Positif5

Tu vas dans l'onglet Developpeur Inserer Dans Controles Active X tu choisis le bouton que tu places sur ta feuille
Clic droit sur le bouton - Visualiser le code et dans la Private sub qui s'affiche ti mets le nom de la macro à lancer

Cdlmnt
Via
Positif5
Messages postés
17
Date d'inscription
vendredi 11 mars 2016
Statut
Membre
Dernière intervention
19 mars 2016
> via55
Messages postés
11431
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
30 novembre 2019
-
Bonjour Via55,

Merci beaucoup encore une fois.
ça a très bien marché.
Cordialement.