Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание таблицы отслеживания движений по расчетному счету - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Создание таблицы отслеживания движений по расчетному счету
pjJohn Дата: Понедельник, 22.09.2014, 16:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Возникла такая сложность, прошу у вас помощи.
Задача стояла такая: необходимо в файле Excel создать с помощью формулы/макроса таблицу, способную отражать обороты по расчетному счету по конкретным контрагентам.
Работать должно так: в таблицу Исходные данные заносится информация по операции: дата, наименование контрагента, наименование операции, приход/расход, комментарии, остаток на счете контрагента.
После нажатия кнопки запуска макроса происходит поиск листа с названием, соотв. названию организации контрагента.
Если такого листа нет - он создается и в него автоматически заносятся данные по этому контрагенту и операции.
Если такой лист уже есть, то в нем создается еще одна строчка к уже имеющимся с конкретно этой операцией, после чего остаток на счете конктрагента обновляется в зависимости от прихода/расхода по операции. Хочу обратить внимание, что остаток может быть отрицательным, это нужно для отслеживания взаиморасчета.
http://www.excelworld.ru/forum/2-4113-1
Здесь я нашел макрос, позволяющий создавать листы с названием контрагентов, перечисленных в исходных данных

[vba]
Код
Sub Итог()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets("Исходные данные").Range("B" & Rows.Count).End(xlUp).Row
       On Error Resume Next
       Sheets(Sheets("Исходные данные").Range("B" & i).Value).Select
       If Err And Sheets("Исходные данные").Range("B" & i) <> "" Then
           'Sheets.Add After:=Sheets(Sheets.Count)
           Sheets("ШАБЛОН").Copy After:=Sheets(Sheets.Count)
           ActiveSheet.Name = Sheets("Исходные данные").Range("B" & i)
       End If
Next i
Worksheets("Исходные данные").Activate
Application.ScreenUpdating = True
End Sub
[/vba]

После этого была предпринята скромная попытка с помощью
Код
=ЕСЛИ(ЕНД(ВПР
подхватывать данные из исходного листа.
Попытка не увенчалась успехом, потому что данные подхватывались исходя из первой операции по контрагенту. А в случае внесения изменений в операцию на исходном листе, эти изменения не применялись к уже созданным листам организаций.

Буду очень признателен за любую помощь в решении этой сложности.
Извините, если описание проблемы получилось сумбурное, готов дать максимально развернутые ответы на ваши уточняющие вопросы.
Заранее спасибо и хорошего дня!:)
К сообщению приложен файл: pjJohn.xlsm (55.3 Kb) · pjJohn.xlsx (45.0 Kb)


Сообщение отредактировал pjJohn - Вторник, 23.09.2014, 10:27
 
Ответить
СообщениеДобрый день!
Возникла такая сложность, прошу у вас помощи.
Задача стояла такая: необходимо в файле Excel создать с помощью формулы/макроса таблицу, способную отражать обороты по расчетному счету по конкретным контрагентам.
Работать должно так: в таблицу Исходные данные заносится информация по операции: дата, наименование контрагента, наименование операции, приход/расход, комментарии, остаток на счете контрагента.
После нажатия кнопки запуска макроса происходит поиск листа с названием, соотв. названию организации контрагента.
Если такого листа нет - он создается и в него автоматически заносятся данные по этому контрагенту и операции.
Если такой лист уже есть, то в нем создается еще одна строчка к уже имеющимся с конкретно этой операцией, после чего остаток на счете конктрагента обновляется в зависимости от прихода/расхода по операции. Хочу обратить внимание, что остаток может быть отрицательным, это нужно для отслеживания взаиморасчета.
http://www.excelworld.ru/forum/2-4113-1
Здесь я нашел макрос, позволяющий создавать листы с названием контрагентов, перечисленных в исходных данных

[vba]
Код
Sub Итог()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To Sheets("Исходные данные").Range("B" & Rows.Count).End(xlUp).Row
       On Error Resume Next
       Sheets(Sheets("Исходные данные").Range("B" & i).Value).Select
       If Err And Sheets("Исходные данные").Range("B" & i) <> "" Then
           'Sheets.Add After:=Sheets(Sheets.Count)
           Sheets("ШАБЛОН").Copy After:=Sheets(Sheets.Count)
           ActiveSheet.Name = Sheets("Исходные данные").Range("B" & i)
       End If
Next i
Worksheets("Исходные данные").Activate
Application.ScreenUpdating = True
End Sub
[/vba]

После этого была предпринята скромная попытка с помощью
Код
=ЕСЛИ(ЕНД(ВПР
подхватывать данные из исходного листа.
Попытка не увенчалась успехом, потому что данные подхватывались исходя из первой операции по контрагенту. А в случае внесения изменений в операцию на исходном листе, эти изменения не применялись к уже созданным листам организаций.

Буду очень признателен за любую помощь в решении этой сложности.
Извините, если описание проблемы получилось сумбурное, готов дать максимально развернутые ответы на ваши уточняющие вопросы.
Заранее спасибо и хорошего дня!:)

Автор - pjJohn
Дата добавления - 22.09.2014 в 16:55
pjJohn Дата: Вторник, 23.09.2014, 14:03 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Неужели не заходили умельцы, кто бы помог в решении этой задачи? :(
 
Ответить
СообщениеНеужели не заходили умельцы, кто бы помог в решении этой задачи? :(

Автор - pjJohn
Дата добавления - 23.09.2014 в 14:03
китин Дата: Среда, 24.09.2014, 10:33 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 7035
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
а может здесь помогут?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеа может здесь помогут?

Автор - китин
Дата добавления - 24.09.2014 в 10:33
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!