Macro

Bonsoir à tous,

Voila j'ai fais quelques recherches sur internet pour trouver une solution mais je n'y arrive vraiment pas (je débute en macro donc c'est la galère)

Voila mon problème, je souhaite faire une macro qui vérifie une condition et qui copie colle une ligne sur une autre page excel.

En gros, sur une page excel, j'ai
colone A : Reférence
colone b : description produit
colone c : pays etc etc
et colone i : j'ai ma condition (soit "check" ou "PB")

En gros je souhaite que ma macro vérifie la colonne "i" et que si la cellule affiche "PB", que la ligne qui correspond à toutes les données soit automatique collée sur une autre page excel, et ainsi de suite jusqu'à la fin (environ 1500 lignes à traiter).

Un grand merci d'avance !

Cordialement.
wallHqck

10 réponses

  1. Bonsoir

    Dans un cas comme cela tu peux utiliser l'enregistreur de macro pour obtenir ce que tu souhaites :

    1 tu mets en route l'enregistreur de macro
    2 tu selectionnes toute ta plage à trier de la 1ere feuille
    3 tu fais appliquer un filtre sur la colonne i avec critere PB
    4 tu selectionnes toute la plage ainsi filtrée et tu fais copier
    5 tu crées une nouvelle feuille et tu colles ta copie avec collage spécial en cochant valeurs uniquement
    6 tu arrêtes l'enregistrement

    Ta macro est crée

    Cdlmnt
    0
    1. Bonjour

      Sans model dur

      Voila la macro a toi de la mette en forme

      Sub TestCopy()
      Lig = 2
      For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
      If Range("I" & L).Value = "PB" Then
      Rows(L).Copy
      F06.Range("A" & Lig).PasteSpecial xlPasteValues
      Lig = Lig + 1
      End If
      Next
      End Sub

      A+

      Maurice
      0
      1. Merci :) Je vais tester ça demain au boulot et je reviens vers vous

        Bonne soirée !
        0
        1. Apres quelques esaies je n'y arrive toujours pas; en gros j'ai
          Référence description blabla blabla blabla blabla blabla Prix contrôle Prix
          Ref 1 description 1 blabla blabla blabla blabla blabla 2.00 € ok 2.00 €
          Ref 2 description 2 blabla blabla blabla blabla blabla 3.00 € ok 3.00 €
          Ref 3 description 3 blabla blabla blabla blabla blabla 4.00 € PB 6.00 €
          Ref 4 description 4 blabla blabla blabla blabla blabla 5.00 € PB 4.00 €
          Ref 5 description 5 blabla blabla blabla blabla blabla 6.00 € ok 6.00 €
          Ref 6 description 6 blabla blabla blabla blabla blabla 7.00 € ok 7.00 €
          Ref 7 description 7 blabla blabla blabla blabla blabla 8.00 € PB 9.00 €
          Ref 8 description 8 blabla blabla blabla blabla blabla 9.00 € ok 9.00 €
          Ref 9 description 9 blabla blabla blabla blabla blabla 10.00 € PB 11.00 €
          Ref 10 description 10 blabla blabla blabla blabla blabla 11.00 € PB 10.00 €

          Donc disons que ceci se trouve une la feuille "Pays"

          Je souhaite que la macro repère les "PB" dans la colone "I" et qu'elle me colle toutes les lignes avec un "PB" dans une nouvelle feuille "SYNTHESE".
          Je veux avoir un bouton sur ma feuille "SYNTHESE" pour que quand je clique dessus, toutes les erreurs s'affichent sur cette feuille

          Référence : A6:A15
          Identification PB : I6:I15

          Désolé je suis vraiment pas doué.

          Cordialement
          0
          1. Bonjour

            donne ton fichier excel pour voir
            ca serat plus simple

            A+

            Maurice
            0
            1. comment le joindre à la réponse ? :O
              0
              1. Re

                Pour communiquer ton classeur tu le télécharges sur www.cjoint.com et tu mets ici le lien obtenu.

                A+

                Maurice
                0
                1. Bonjour

                  Voila ta macro

                  http://cjoint.com/?3Jpu5tBtRsJ

                  A tester bien sur
                  A+

                  Maurice
                  0
                  1. Un grand merci, elle marche parfaitement je vais pouvoir l'adapter à mes fichiers.

                    Pour m'aider et pour ma culture générale en macro peux-tu m'expliquer les étapes avec le code ?

                    Lig = 7
                    'Faire le copier/coller des ligne à partir de la ligne 7 ?

                    Rows(Lig & ":" & Rows.Count).Delete
                    '?

                    For L = 6 To Feuil1.Range("A" & Rows.Count).End(xlUp).Row
                    '?

                    If Feuil1.Range("I" & L).Value = "PB" Then
                    ' Si la colone I de la feuille 1 affiche PB

                    Feuil1.Rows(L).Copy
                    'Sélectionne la ligne et la copie ?

                    Range("A" & Lig).PasteSpecial xlPasteValues
                    'Selectionne à partir de A et jusqu'a la fin de la ligne ?

                    Lig = Lig + 1
                    'Copie sur la ligne d'en dessous ?

                    End If
                    Next

                    Application.CutCopyMode = False
                    '?

                    Application.ScreenUpdating = False
                    '?

                    Range("A1").Select
                    'Pourquoi sélectionner A1 ensuite ?

                    End sub

                    Je te remercie

                    Cordialement
                    0