Как скопировать ячейку с листа на другой лист в зависимости от значения другой ячейки - PullRequest
0 голосов
/ 01 июня 2019

Мне нужно скопировать значение столбца G из таблицы «Nouveautés 2020» в столбец C таблицы «Feuil2», в зависимости от значения столбца AM. Я могу это сделать, но я застрял только в одном ряду. Я должен быть в состоянии выполнить для всей таблицы.

Кроме того, это то, что мне нужно выполнять несколько раз, не копируя дважды одну и ту же строку

Sub COPYVALUE()
Dim v1, v2, i As Long
If Range("AM5") <> 0 Then
v1 = Array("G5")
v2 = Array("C4")
For i = LBound(v1) To UBound(v1)
    Sheets("Feuil2").Range(v2(i)).Value = Sheets("Nouveautés 2020").Range(v1(i)).Value
Next i
End If
End Sub

Хорошо, выше был первый код. После полного рабочего дня я набрал следующий текст:

Sub COPYVALUE()

a = Worksheets("Nouveautés 2020").Cells(Rows.Count, 1).End(xlUp).Row
For i = 5 To a

    If Worksheets("Nouveautés 2020").Cells(i, 39).Value <> 0 And Worksheets("Nouveautés 2020").Cells(i, 2).Value <> "Abandonné" Then

        Worksheets("Nouveautés 2020").Activate
        Range("G" & (i)).Copy
        Worksheets("Feuil2").Activate
        b = Worksheets("Feuil2").Cells(Rows.Count, 3).End(xlUp).Row
        Worksheets("Feuil2").Cells(b + 1, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End If
Next
Application.CutCopyMode = False


End Sub

Работает отлично, копирует все ячейки, в зависимости от значения других ячеек, и вставляет только значение в ожидаемый столбец.

Однако я все еще застрял на том, как избежать вставки значения, которое уже включено в лист Feuil2, при повторном выполнении макроса. Последний пункт, я не могу вставить в таблицу, это должен быть простой лист, как угодно?

Было бы еще лучше, если бы он мог быть активным (не нужно выполнять какой-либо макрос, но каждый раз, когда новая строка соответствует критериям, он автоматически копируется на другой лист

...