Correction macro copier/coller

Résolu
Utilisateur anonyme -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'utilise Excel 2003, la macro suivante devrait me permettre de copier/coller certaines lignes en fonctions de deux conditions, mais je ne sais pas pourquoi ça ne marche pas.

Auriez-vous une idée de la modification que je dois apporter.

Merci d'avance

Laure

Sub Macro7()

Dim L As Integer
Dim i As Integer
Dim j As Integer

For L = 1 To 100 Step 1

j = Feuil2.Range("I6").Value
i = 2 + j
If Feuil7.Range("A" & L).Value = Feuil2.Range("M2").Value _
And Feuil7.Range("E" & L) = Feuil2.Range("N2").Value Then

Feuil7.Cells(L, 1).EntireRow.Copy
Feuil11.Range("A" & i).PasteSpecial Paste:=xlPasteValues

End If

Next L

End Sub

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Pour désigner une feuille:

    Sheets("feuil2").range(.....

    et non
    feuil2.range(...
    0
  2. Utilisateur anonyme
     
    Bonjour,

    Feuil2.range est une écriture correcte.

    sinon j'ai modifié en Sheets("feuil2") pour tester, aucun changement.

    ça ne me colle qu'une seule ligne comme avant.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Feuil2.range est une écriture correcte.

      Si tu le dis...

      Abandon du suivi
      0
  3. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Bonsoir,

    Michel, "Feuil2.Range(......" peut tout à fait être une écriture correcte pour peu que Feuil2 soit le codename de sheets("Feuil2")

    Donc ne prend pas ombrage....

    @ Laure, tu détermines la première valeur de "i", mais tu oublies de l'incrémenter ensuite....
    Et surtout, détermines tes valeurs i et j en dehors de la boucle, sinon ils vont reprendre la même valeur à chaque boucle....

    j = Feuil2.Range("I6").Value
    i = 2 + j
    For L = 1 To 100 Step 1
         If Feuil7.Range("A" & L).Value = Feuil2.Range("M2").Value _
              And Feuil7.Range("E" & L) = Feuil2.Range("N2").Value Then
                    Feuil7.Cells(L, 1).EntireRow.Copy
                    Feuil11.Range("A" & i).PasteSpecial Paste:=xlPasteValues
                    i = i + 1
         End If
    Next L


    Bon courage
    0
    1. Utilisateur anonyme
       
      Bonjour,

      Merci

      en effet à présent ça marche!
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Feuil2 soit le codename de sheets("Feuil2")

      et c'était où dans le code? faute impardonnable: j'avais oublié ma boule de cristal !
      :- )
      0