Correction macro copier/coller

Résolu/Fermé
Utilisateur anonyme - 28 sept. 2010 à 12:02
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 28 sept. 2010 à 17:41
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
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 sept. 2010 à 12:16
Bonjour

Pour désigner une feuille:

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

et non
feuil2.range(...
0
Utilisateur anonyme
28 sept. 2010 à 13:28
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 sept. 2010 à 13:32
Feuil2.range est une écriture correcte.

Si tu le dis...

Abandon du suivi
0
cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
28 sept. 2010 à 15:15
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
Utilisateur anonyme
28 sept. 2010 à 16:40
Bonjour,

Merci

en effet à présent ça marche!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 sept. 2010 à 17:41
Feuil2 soit le codename de sheets("Feuil2")

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