Существует итоговый файл в который ежемесячно копируется на новый лист итоговая информация по контрагентам. На первом листе книги ведётся динамика изменений. контрагенты прибавляются и отваливаются, соответственно при копировании нового листа в итоговый файл они добавляются, но в динамике не участвуют. в копируемом листе ячейка с ИНН контрагента выделена цветом. Попытался с помощью присвоения переменной номера цвета, которым выделена ячейка с ИНН выделить и скопировать на страницу динамики в столбец ИНН, ничего не получилось. Можете подсказать, как скопировать из второго листа все ИНН выделенные цветом на первый лист с добавлением отсутствующих. образец примерный прилагаю.
Существует итоговый файл в который ежемесячно копируется на новый лист итоговая информация по контрагентам. На первом листе книги ведётся динамика изменений. контрагенты прибавляются и отваливаются, соответственно при копировании нового листа в итоговый файл они добавляются, но в динамике не участвуют. в копируемом листе ячейка с ИНН контрагента выделена цветом. Попытался с помощью присвоения переменной номера цвета, которым выделена ячейка с ИНН выделить и скопировать на страницу динамики в столбец ИНН, ничего не получилось. Можете подсказать, как скопировать из второго листа все ИНН выделенные цветом на первый лист с добавлением отсутствующих. образец примерный прилагаю.petyavova
iMrTidy, да кажется работает, щас проверю, покрайней мере добавились, но помоему цвет решен не переменной,а постоянной величиной? ещё не посмотрел, а пропавшие учитываются?
iMrTidy, да кажется работает, щас проверю, покрайней мере добавились, но помоему цвет решен не переменной,а постоянной величиной? ещё не посмотрел, а пропавшие учитываются?petyavova
iMrTidy, да, прошу прощения,не прав, попытаюсь исправиться. Подправил файл. Цвет в ячейке с ИНН не гарантированно что будет одинаковым, поэтому думаю разумнее присвоить переменную. И не пойму в этом(пробном) файле если контрагент отвалился поставился ноль, а в реальном пишет Н/Д , можете обьяснить почему? Забыл, к добавленным ИНН в строке должны добавиться аналогичные формулы как у остальных. Прикрепляю поправленный файлик. надеюсь из него будет понятнее, спрашивайте... очень вам признателен
iMrTidy, да, прошу прощения,не прав, попытаюсь исправиться. Подправил файл. Цвет в ячейке с ИНН не гарантированно что будет одинаковым, поэтому думаю разумнее присвоить переменную. И не пойму в этом(пробном) файле если контрагент отвалился поставился ноль, а в реальном пишет Н/Д , можете обьяснить почему? Забыл, к добавленным ИНН в строке должны добавиться аналогичные формулы как у остальных. Прикрепляю поправленный файлик. надеюсь из него будет понятнее, спрашивайте... очень вам признателенpetyavova
iMrTidy, Я согласен, подскажите что нужно сделать? но хотелось бы расшифровку, если можно? При копировании новых ИНН в строке с новым ИНН должны подтянуться значения по контрагенту, его имя и формулы подсчета(разницы по месяцам).
iMrTidy, Я согласен, подскажите что нужно сделать? но хотелось бы расшифровку, если можно? При копировании новых ИНН в строке с новым ИНН должны подтянуться значения по контрагенту, его имя и формулы подсчета(разницы по месяцам).petyavova
petyavova, комментарии к коду. Данные для "подтягивания" либо формулами, либо переписывать код. В текущем варианте код не рассчитан на это. Если бы такая задача стояла изначально, возможно, лучше было бы сделать внутренний запрос sql.
petyavova, комментарии к коду. Данные для "подтягивания" либо формулами, либо переписывать код. В текущем варианте код не рассчитан на это. Если бы такая задача стояла изначально, возможно, лучше было бы сделать внутренний запрос sql.iMrTidy
iMrTidy, Да, именно формулами, в файлике я добавил формулы, но они должны копироваться в строку с появлением нового ИНН. Спасибо за комментарии, теперь первоклашке стало более менее понятно :-) И как исправить? в определении последней строки, последней считается последняя используемая. Объясните, что это значит? Значения подставляются не к последней строке. И как раз появились Н/Д про которые я говорил. Как их превратить в "0".
iMrTidy, Да, именно формулами, в файлике я добавил формулы, но они должны копироваться в строку с появлением нового ИНН. Спасибо за комментарии, теперь первоклашке стало более менее понятно :-) И как исправить? в определении последней строки, последней считается последняя используемая. Объясните, что это значит? Значения подставляются не к последней строке. И как раз появились Н/Д про которые я говорил. Как их превратить в "0".petyavova
iMrTidy, Круто, а чтобы оставить при Н/Д бывшее значение? (название фирмы?) но ИНН всё равно подставляются не понятно куда? и что добавить в макрос чтоб захватывал формулы?
iMrTidy, Круто, а чтобы оставить при Н/Д бывшее значение? (название фирмы?) но ИНН всё равно подставляются не понятно куда? и что добавить в макрос чтоб захватывал формулы?petyavova
Сообщение отредактировал petyavova - Четверг, 24.08.2017, 17:20
вариантов то немного на самом деле, разобраться самому опираясь на описанные здесь подсказки или попросить кого то решить за вас вашу проблему, но это уже в другой ветке форума. одно дело подсказать ответ на конкретный вопрос, направить так сказать, и совсем другое сделать вам готовое решение...
вариантов то немного на самом деле, разобраться самому опираясь на описанные здесь подсказки или попросить кого то решить за вас вашу проблему, но это уже в другой ветке форума. одно дело подсказать ответ на конкретный вопрос, направить так сказать, и совсем другое сделать вам готовое решение...K-SerJC
K-SerJC, выбирал, выбирал, вроде выводит но при активации ячейки копирования выдает ошибку 1004 [vba]
Код
Sub CheckList() Dim sh As Worksheet Dim sh1 As Worksheet Dim rCOunt As Long Dim i Dim myColor Dim myCell Dim newCell Set sh = Sheets(2) Set sh1 = Sheets(1) With sh rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row myColor = sh.Range("D9").Interior.Color For i = 26 To rCOunt If .Cells(i, "D").Interior.Color = myColor Then Set myCell = sh1.Range("B:B").Find(.Cells(i, "D")) If myCell Is Nothing Then Set newCell = (.Cells(i, "D"))
If newCell <> 0 Then 'MsgBox (newCell & " вставить в Лист1") 'newCell.Copy 'Selection.Copy MsgBox (newCell) Sheets("Динамика").Select Range("B7").Select newCell.Insert Shift:=xlDown End If End If Next i End With Set sh = Nothing Set sh1 = Nothing
End Sub
[/vba] не могу скопировать значение в ячейку не говоря уже о последней строчке. Почему [vba]
Код
Range("B7").Select
[/vba] не выбирается? если закомментировать, то проходит и вставляется по моему на исходный лист.
K-SerJC, выбирал, выбирал, вроде выводит но при активации ячейки копирования выдает ошибку 1004 [vba]
Код
Sub CheckList() Dim sh As Worksheet Dim sh1 As Worksheet Dim rCOunt As Long Dim i Dim myColor Dim myCell Dim newCell Set sh = Sheets(2) Set sh1 = Sheets(1) With sh rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row myColor = sh.Range("D9").Interior.Color For i = 26 To rCOunt If .Cells(i, "D").Interior.Color = myColor Then Set myCell = sh1.Range("B:B").Find(.Cells(i, "D")) If myCell Is Nothing Then Set newCell = (.Cells(i, "D"))
If newCell <> 0 Then 'MsgBox (newCell & " вставить в Лист1") 'newCell.Copy 'Selection.Copy MsgBox (newCell) Sheets("Динамика").Select Range("B7").Select newCell.Insert Shift:=xlDown End If End If Next i End With Set sh = Nothing Set sh1 = Nothing
End Sub
[/vba] не могу скопировать значение в ячейку не говоря уже о последней строчке. Почему [vba]
Код
Range("B7").Select
[/vba] не выбирается? если закомментировать, то проходит и вставляется по моему на исходный лист.petyavova
Sub AddNewINN() Dim sh As Worksheet Dim sh1 As Worksheet Dim rCOunt As Long Dim i Dim myColor Dim myCell Dim newCell Dim lastrow As Long
Set sh = Sheets(2) Set sh1 = Sheets(1) ' lastrow = Sheets("Динамика").Range("A65536").End(xlUp).Row With sh rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row myColor = sh.Range("D9").Interior.Color For i = 9 To rCOunt If .Cells(i, "D").Interior.Color = myColor Then Set myCell = sh1.Range("B:B").Find(.Cells(i, "D")) If myCell Is Nothing Then Set newCell = (.Cells(i, "D"))
If newCell <> 0 Then Sheets("Динамика").Select lastrow = Sheets("Динамика").Range("A65536").End(xlUp).Row Range("A" & lastrow).Select ActiveCell.EntireRow.Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove MsgBox (newCell & " копировать в Лист1") Range("B" & lastrow).Select newCell.Copy 'Destination:=Sheets("Динамика").Range("B" & lastrow) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If End If Next i End With Set sh = Nothing Set sh1 = Nothing End Sub
[/vba] но теперь надо вставить формулы
Получилось скопировать.[vba]
Код
Sub AddNewINN() Dim sh As Worksheet Dim sh1 As Worksheet Dim rCOunt As Long Dim i Dim myColor Dim myCell Dim newCell Dim lastrow As Long
Set sh = Sheets(2) Set sh1 = Sheets(1) ' lastrow = Sheets("Динамика").Range("A65536").End(xlUp).Row With sh rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row myColor = sh.Range("D9").Interior.Color For i = 9 To rCOunt If .Cells(i, "D").Interior.Color = myColor Then Set myCell = sh1.Range("B:B").Find(.Cells(i, "D")) If myCell Is Nothing Then Set newCell = (.Cells(i, "D"))
If newCell <> 0 Then Sheets("Динамика").Select lastrow = Sheets("Динамика").Range("A65536").End(xlUp).Row Range("A" & lastrow).Select ActiveCell.EntireRow.Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove MsgBox (newCell & " копировать в Лист1") Range("B" & lastrow).Select newCell.Copy 'Destination:=Sheets("Динамика").Range("B" & lastrow) Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If End If Next i End With Set sh = Nothing Set sh1 = Nothing End Sub
KuklP, Ругается: Variable not defined. а в оригинальном файле ругается по другому: ошибка 424 Object required. Подскажите почему, и как исправить. На вид вроде правильный скрипт.
KuklP, Ругается: Variable not defined. а в оригинальном файле ругается по другому: ошибка 424 Object required. Подскажите почему, и как исправить. На вид вроде правильный скрипт.petyavova