Bonjour à tous,
Je fais de nouveau appel à votre aide car j'ai un petit souci sur ma macro. Je cherche, à partir d'un onglet Data, à coller dans un nouvel onglet les lignes répondant à certains critères. Cependant, je ne souhaite pas coller la ligne en entier mais certaines colonnes spécifiques. J'ai donc créé une variable rRange = Worksheets("Data").Range(Columns(4), Columns(34), Columns(36)) pour sélectionner uniquement les colonnes qui m'intéressent.
Mais, quand je lance la macro, un message d'erreur apparaît.
Voici mon code
Vous trouverez en PJ mon document exemple. N'hésitez pas à corriger mon code qui est sûrement imparfait, je débute!
Un grand merci
Je fais de nouveau appel à votre aide car j'ai un petit souci sur ma macro. Je cherche, à partir d'un onglet Data, à coller dans un nouvel onglet les lignes répondant à certains critères. Cependant, je ne souhaite pas coller la ligne en entier mais certaines colonnes spécifiques. J'ai donc créé une variable rRange = Worksheets("Data").Range(Columns(4), Columns(34), Columns(36)) pour sélectionner uniquement les colonnes qui m'intéressent.
Mais, quand je lance la macro, un message d'erreur apparaît.
Voici mon code
Code:
Sub IMP_M2()
'Création d'une nouvelle feuille
Dim IMPM2 As Worksheet
Set IMPM2 = Sheets.Add(After:=Sheets(Sheets.Count))
IMPM2.Name = "IMP_M2"
Worksheets("IMP_M2").Cells(1, 1).Value = "A"
Worksheets("IMP_M2").Cells(1, 2).Value = "B"
Worksheets("IMP_M2").Cells(1, 3).Value = "C"
Worksheets("IMP_M2").Cells(1, 4).Value = "D"
Worksheets("IMP_M2").Cells(1, 5).Value = "E"
Worksheets("IMP_M2").Cells(1, 6).Value = "F"
Worksheets("IMP_M2").Cells(1, 7).Value = "G"
Worksheets("IMP_M2").Cells(1, 8).Value = "H"
Worksheets("IMP_M2").Cells(1, 9).Value = "I"
Worksheets("IMP_M2").Cells(1, 10).Value = "J"
Worksheets("IMP_M2").Cells(1, 11).Value = "K"
Worksheets("IMP_M2").Cells(1, 12).Value = "L"
Worksheets("IMP_M2").Cells(1, 13).Value = "M"
Worksheets("IMP_M2").Cells(1, 14).Value = "N"
Worksheets("IMP_M2").Cells(1, 15).Value = "O"
Worksheets("IMP_M2").Cells(1, 16).Value = "P"
Worksheets("IMP_M2").Cells(1, 17).Value = "Q"
'Copie
Worksheets("Data").Activate
Dim i As Integer
Dim k As Integer
k = 2
Dim rRange As Range
rRange = Worksheets("Data").Range(Columns(4), Columns(34), Columns(36))
For i = 2 To 100000
If (Worksheets("Data").Cells(i, 140) = Worksheets("MODULE2").Cells(2, 5)) And _
(Worksheets("Data").Cells(i, 137) = Worksheets("MODULE2").Cells(2, 6)) And _
(Worksheets("Data").Cells(i, 44) = Worksheets("MODULE2").Cells(3, 1)) Then
rRange.Select
Selection.Copy
Worksheets("IMP_M2").Activate
Worksheets("IMP_M2").Cells(k, 1).Select
ActiveSheet.Paste
k = k + 1
Worksheets("Data").Activate
End If
Next
End Sub
Vous trouverez en PJ mon document exemple. N'hésitez pas à corriger mon code qui est sûrement imparfait, je débute!
Un grand merci