plage de copy et de collage selon une condition

Au cours des derniers jours, j'ai du mal à écrire une macro qui pourrait faire les choses suivantes: 1.Cettez des cellules particulières à partir d'une seule feuille (que ce soit pour les copyr ou non dépend d'une condition) 2.Pastez-les dans une feuille spécifiée (son nom est identifié par une formule) dans des cellules spécifiées (elles sont également spécifiées par une formule).

Malheureusement, je ne peux pas coller des images, alors je vais essayer d'expliquer ce que j'essaie de faire en collant un croquis du code avec des questions. Si ce vague, laissez-moi savoir.

Sub The_One() ' For Each c In Worksheets("fsr").Range("O:O") If c.Value = "p" Then 'Now I do not know how to make Excel copy the cells from current row from columns E,F,G,H 'Now I would like to add cells into the worksheet which name is sepcified by the formula from column P. 'Inserted cells should be added into a row given by the formula in column Q. 'I imagine it like that: Sheets("group1").Select 'This "group1" cannot be simply tiped into the code, it should be taken from Column P in worksheet("fsr") Range("A3:I3").Select 'As above, the range should be specified more like that: 'Range("A[row number given by a formula in column Q in Worksheet("fsr")]:I[the same number as before] Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'Now I would like to copy four cells from Worksheet("fsr") they are in the same row as the current cell from above For Each 'I imagine it somehow like that: Range("E'Here I dont know how to define the row number':H'The same problem'").Activate ActiveCell.CurrentRegion.Select 'Is CurrentRegion suitable? Selection.Copy Worksheets("group1").Select 'But this worksheet should be the one that is given by a formula in column P in Worksheet("fsr") Range("E'Here I dont know how to define the row number':F'The same problem'").Activate ActiveSheet.Paste 'But I dont want to paste it anywhere. It sholud be pasted into the worksheet given by the formula from column P, 'into the row given by the formula from column Q, into the columns C,D,E,F. So: 'So when the For Each starts to go trough Range("O:O") in Worksheet("fsr") it notices that there is "p" so it should: 'copy cells E2:H2 (because this "p" is in the second row) and paste it in the Worksheet("group1") (because this is what 'we find in cell P2 into the cells C3:F3 (row 3 because "3" is what we find in Q2) End If Next c End Sub 

Je suis nouveau chez Stackoverflow, donc j'apprécierais tous les commentaires concernant ma conduite ici. J'espère que vous findez une seconde pour m'aider, j'ai vraiment besoin de votre aide. Cordialement Artur Rutkowski

 For Each c In Worksheets("fsr").Range("O:O") 'This will slow your macro as Excel will search all 1048576 rows 'I suggest you define the range of data in another sheet 

Ligne de départ | 1
Fin de la ligne | 30

 Sub The_One() startrow = Worksheets("Sheet1").Cells(1,1) endrow = Worksheets("Sheet1").Cells(2,1) For x = startrow to endrow If Cells(x,"O").Value = "p" Then Range("E" & x, "H" & x).Copy Worksheets(Cells(x, "P").Value).Cells(Cells(x, "Q").Value, "C").PasteSpecial xlPasteAll End If Next End Sub