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. 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
    1. Bonjour

      Voila ta macro

      http://cjoint.com/?3Jpu5tBtRsJ

      A tester bien sur
      A+

      Maurice
      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. comment le joindre à la réponse ? :O
          0
          1. Bonjour

            donne ton fichier excel pour voir
            ca serat plus simple

            A+

            Maurice
            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. Merci :) Je vais tester ça demain au boulot et je reviens vers vous

                Bonne soirée !
                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. 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