Существует итоговый файл в который ежемесячно копируется на новый лист итоговая информация по контрагентам. На первом листе книги ведётся динамика изменений. контрагенты прибавляются и отваливаются, соответственно при копировании нового листа в итоговый файл они добавляются, но в динамике не участвуют. в копируемом листе ячейка с ИНН контрагента выделена цветом. С добавлением новых контрагентов общими усилиями разобрались. И как присвоить ноль ячейке с отсутствующими данными. Остался один вопрос, как оставить предыдущее значение (название фирмы) в ячейке если в скопированном листе этой фирмы уже нет. в ячейках со значениями, отсутствующим данным присваивается значение "0" и оно не мешает проведению вычислений. [vba]
Код
=ЕслиОшибка(.......;0)
[/vba] но в одной ячейке надо оставить существующее значение "Название фирмы". скорее всего проверить макросом отсутствие ИНН в новом файле и при копировании заменить формулу отвечающую за подтягивание названия на статическое название. "Лично я так думаю", но могут быть и другие мнения. Файлик тот же.
Существует итоговый файл в который ежемесячно копируется на новый лист итоговая информация по контрагентам. На первом листе книги ведётся динамика изменений. контрагенты прибавляются и отваливаются, соответственно при копировании нового листа в итоговый файл они добавляются, но в динамике не участвуют. в копируемом листе ячейка с ИНН контрагента выделена цветом. С добавлением новых контрагентов общими усилиями разобрались. И как присвоить ноль ячейке с отсутствующими данными. Остался один вопрос, как оставить предыдущее значение (название фирмы) в ячейке если в скопированном листе этой фирмы уже нет. в ячейках со значениями, отсутствующим данным присваивается значение "0" и оно не мешает проведению вычислений. [vba]
Код
=ЕслиОшибка(.......;0)
[/vba] но в одной ячейке надо оставить существующее значение "Название фирмы". скорее всего проверить макросом отсутствие ИНН в новом файле и при копировании заменить формулу отвечающую за подтягивание названия на статическое название. "Лично я так думаю", но могут быть и другие мнения. Файлик тот же.petyavova
Скорее, всего, надо действовать немного по-другому. Если вы хотите в составляемом отчете все же иметь строку (строки) с фирмами-контрагентами, данных на которые у вас нет в исходной таблице - то почему бы вообще не брать названия (подбирая по ИНН) из отдельного накопительного списка? Сделайте на отдельном листе таблицу со всеми ИНН и названиями контрагентов. Оттуда берите данные для столбца A. А для расчетов - данные откуда вам надо. И вам будет достаточно пополнять "список контрагентов" новыми фирмами, по мере необходимости.
Вы что, никогда не работали с бух.программами? Не знаете, что справочники контрагентов - это отдельные таблицы? почему у вас должно быть иначе? :)
Скорее, всего, надо действовать немного по-другому. Если вы хотите в составляемом отчете все же иметь строку (строки) с фирмами-контрагентами, данных на которые у вас нет в исходной таблице - то почему бы вообще не брать названия (подбирая по ИНН) из отдельного накопительного списка? Сделайте на отдельном листе таблицу со всеми ИНН и названиями контрагентов. Оттуда берите данные для столбца A. А для расчетов - данные откуда вам надо. И вам будет достаточно пополнять "список контрагентов" новыми фирмами, по мере необходимости.
Вы что, никогда не работали с бух.программами? Не знаете, что справочники контрагентов - это отдельные таблицы? почему у вас должно быть иначе? :)AndreTM
With sh1 Dim oldCod Dim OldCell rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 3 To rCOunt 'If .Cells(i, "A") Is Nothing Then OldCell = Cells(i, "A").Text If OldCell = "#Н/Д" Then Set oldCod = sh1.Range("B" & i) ' sh1.Range("A" & i).Text = sh3.Range("A:A").Find(sh1.Range("B" & i)) Set OldCell = sh3.Range("A:A").Find(.Cells(i, "B")) End If Next i End With
[/vba] только не получается вставить. не подставляется значение из столбца А подскажите ошибку?
Я думаю сделать так. Код: [vba]
Код
With sh1 Dim oldCod Dim OldCell rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 3 To rCOunt 'If .Cells(i, "A") Is Nothing Then OldCell = Cells(i, "A").Text If OldCell = "#Н/Д" Then Set oldCod = sh1.Range("B" & i) ' sh1.Range("A" & i).Text = sh3.Range("A:A").Find(sh1.Range("B" & i)) Set OldCell = sh3.Range("A:A").Find(.Cells(i, "B")) End If Next i End With
[/vba] только не получается вставить. не подставляется значение из столбца А подскажите ошибку?petyavova
в Вашем ошметке кода ищутся ошибки в столбце А. Куда и зачем Вам надо подставить эти ошибки? Откуда взялся sh3? Лучше выложите в файле с полным своим кодом. И пояснениями.
в Вашем ошметке кода ищутся ошибки в столбце А. Куда и зачем Вам надо подставить эти ошибки? Откуда взялся sh3? Лучше выложите в файле с полным своим кодом. И пояснениями.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
With sh1 Dim oldCod rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 3 To rCOunt If Cells(i, 1).Text = "#Н/Д" Then ' ищем ячейку с отсутствующим значением Set oldCod = sh3.Range("d:e").Find(sh1.Cells(i, 2).Value, , , 1, SearchFormat:=False) If Not oldCod Is Nothing Then sh1.Cells(i, 1).Value = oldCod.Offset(, -3).Value End If Next End With
[/vba]
[vba]
Код
With sh1 Dim oldCod rCOunt = .Cells(.Rows.Count, 1).End(xlUp).Row For i = 3 To rCOunt If Cells(i, 1).Text = "#Н/Д" Then ' ищем ячейку с отсутствующим значением Set oldCod = sh3.Range("d:e").Find(sh1.Cells(i, 2).Value, , , 1, SearchFormat:=False) If Not oldCod Is Nothing Then sh1.Cells(i, 1).Value = oldCod.Offset(, -3).Value End If Next End With
KuklP, ДА, работает, здорово.Спасибо!! А то что я изобретал, совсем не правильно? А можно добавить поиск по всем предыдущим? каждый месяц добавляется новый лист, и новые будут отваливаться.??
KuklP, ДА, работает, здорово.Спасибо!! А то что я изобретал, совсем не правильно? А можно добавить поиск по всем предыдущим? каждый месяц добавляется новый лист, и новые будут отваливаться.??petyavova
KuklP, если сразу подрузить второй лист, нарушаются формулы и новые названия не подтягиваются. Но если файл закрыть и потом снова закрыть, то всё нормально. нет тоже не нормально, к инн подтягивается чужое название. Из за чего может быть? может какая то переменная?
KuklP, если сразу подрузить второй лист, нарушаются формулы и новые названия не подтягиваются. Но если файл закрыть и потом снова закрыть, то всё нормально. нет тоже не нормально, к инн подтягивается чужое название. Из за чего может быть? может какая то переменная?petyavova
Сообщение отредактировал petyavova - Среда, 06.09.2017, 16:10