Есть две таблицы. Первую таблицу использую в бланке счета. Вторую таблицу использую в бланке накладной. Когда счет выписан есть два варианта дальнейших событий. Первый - это когда клиент забирает сразу весь материал, так как выписано в счете. С этим проблем нет - жмем кнопку "All positions", и таблица заполняется. Второй - когда клиент хочет забрать одну или несколько позиций, но не все. С этим проблемы. Добавил напротив каждой позиции кнопку. И они добавляются одна под другой, но только не в то место куда нужно.
Как правильно указать ячейку, куда будет вставлятся первая позиция, а за ней уже остальные, которые хочу добавить? Весь день отмучался не получается.
Файл пример в приложении.
Доброго времени суток, уважаемые форумчане!
Есть две таблицы. Первую таблицу использую в бланке счета. Вторую таблицу использую в бланке накладной. Когда счет выписан есть два варианта дальнейших событий. Первый - это когда клиент забирает сразу весь материал, так как выписано в счете. С этим проблем нет - жмем кнопку "All positions", и таблица заполняется. Второй - когда клиент хочет забрать одну или несколько позиций, но не все. С этим проблемы. Добавил напротив каждой позиции кнопку. И они добавляются одна под другой, но только не в то место куда нужно.
Как правильно указать ячейку, куда будет вставлятся первая позиция, а за ней уже остальные, которые хочу добавить? Весь день отмучался не получается.
Немного подправил ваш код,уничтожил лишние кнопки,как врагов народа. Для одиночного добавления двойной клик в столбце F, данные сами прыгать будут в нужную позицию,еще и сетку за собой создадут .
Virgo, a Virgem
Немного подправил ваш код,уничтожил лишние кнопки,как врагов народа. Для одиночного добавления двойной клик в столбце F, данные сами прыгать будут в нужную позицию,еще и сетку за собой создадут .
doober, спасибо! Немного неудобно с Вашим вариантом добавлять. Но все ровно большое спасибо. Если бы не Василик, Вы бы мне очень помогли.
Wasilic, идеально!!! Именно то что нужно!!! Безмерно благодарен. Красава!
[p.s.]Все. Уже запустил на прошлой неделе в офисе betaверсию своей работы. Некоторые места конечно надо было еще подредактировать, но в целом закончил. И постараюсь вас, уважаемые форумчане, больше не беспокоить. Очень заинтересовал эксель, буду пробовать теперь тоже помогать тут людям, если получится).[/p.s.]
doober, спасибо! Немного неудобно с Вашим вариантом добавлять. Но все ровно большое спасибо. Если бы не Василик, Вы бы мне очень помогли.
Wasilic, идеально!!! Именно то что нужно!!! Безмерно благодарен. Красава!
[p.s.]Все. Уже запустил на прошлой неделе в офисе betaверсию своей работы. Некоторые места конечно надо было еще подредактировать, но в целом закончил. И постараюсь вас, уважаемые форумчане, больше не беспокоить. Очень заинтересовал эксель, буду пробовать теперь тоже помогать тут людям, если получится).[/p.s.]DAKRAY
Сообщение отредактировал DAKRAY - Вторник, 21.01.2014, 13:41
Нужен небольшой аптдэйт. Ну никак не получается самому, все не туда вставляет)) Я добавил в файл еще одну кнопку. Дело в том, что часто бывает так, что накладную приходится выписывать, когда клиент забирает что-то из одного счета, что-то из другого. Т.е. допустим у меня в одном счете 3 позиции, из них забираем скажем первую (вписываем в колонке F что угодно напротив нужно позиции и жмем кнопку Add Selected pos.). Во втором счете 2 позиции - из них тоже забираем, например, первую - жмем кнопку Add more pos.. Нужно сделать так, чтобы нажав на вторую кнопку, он добавил к уже существующей позиции.
Файл пример в приложении.
Wasilic ну или кто-нибудь!)
Нужен небольшой аптдэйт. Ну никак не получается самому, все не туда вставляет)) Я добавил в файл еще одну кнопку. Дело в том, что часто бывает так, что накладную приходится выписывать, когда клиент забирает что-то из одного счета, что-то из другого. Т.е. допустим у меня в одном счете 3 позиции, из них забираем скажем первую (вписываем в колонке F что угодно напротив нужно позиции и жмем кнопку Add Selected pos.). Во втором счете 2 позиции - из них тоже забираем, например, первую - жмем кнопку Add more pos.. Нужно сделать так, чтобы нажав на вторую кнопку, он добавил к уже существующей позиции.
DAKRAY, вопрос по коду - у Вас SummaVardiem() корректно обрабатывает например 14 или 16? У меня нет... Или с нужной локалью всё работает? В коде эти символы есть - при копипасте в блокнот видно. Но в VBE у меня они искажаются, отображаются иначе, и на листе тоже. Всегда думал что выход только использовать chrw() - но можно просто сменить локаль?
По делу: [vba]
Код
Private Sub more_pos_Click() Dim s& s = Range("H" & Rows.Count).End(xlUp).Row + 1 For i = 2 To Range("F" & Rows.Count).End(xlUp).Row If Cells(i, 6) <> "" Then Cells(s, 8) = Cells(i, 1) Cells(s, 9) = Cells(i, 2) Cells(s, 10) = Cells(i, 3) Cells(s, 11) = Cells(i, 4) s = s + 1 End If Next Range("F1:F100").ClearContents End Sub
[/vba]
DAKRAY, вопрос по коду - у Вас SummaVardiem() корректно обрабатывает например 14 или 16? У меня нет... Или с нужной локалью всё работает? В коде эти символы есть - при копипасте в блокнот видно. Но в VBE у меня они искажаются, отображаются иначе, и на листе тоже. Всегда думал что выход только использовать chrw() - но можно просто сменить локаль?
По делу: [vba]
Код
Private Sub more_pos_Click() Dim s& s = Range("H" & Rows.Count).End(xlUp).Row + 1 For i = 2 To Range("F" & Rows.Count).End(xlUp).Row If Cells(i, 6) <> "" Then Cells(s, 8) = Cells(i, 1) Cells(s, 9) = Cells(i, 2) Cells(s, 10) = Cells(i, 3) Cells(s, 11) = Cells(i, 4) s = s + 1 End If Next Range("F1:F100").ClearContents End Sub
При нормальном бухучете - обычно не позволяется произвольно объединять последовательности документов. Чтобы получить то, что вы желаете - надо начинать использовать накопительные таблицы (счетов и накладных, причём с уникальной кодировкой каждой позиции), а формы составлять уже на основе этих таблиц. Если же вы желаете продолжать в том же духе "доставания гланд через..."- могу предложить (как вам советовали выше) придумать систему отметок для связи счёт-накладная. Т.е. пишем в доп.столбец в счёте не "что угодно", а код накладной, в которую попадёт данная позиция. Тогда вся работа макроса по "сборке" будет заключаться в том, что он, например, будет несколько раз (сколко нужно накладных собрать) проходить все имеющиеся счета счета и набирать позиции в нужные накладные, при этом как счетов, так и накладных может быть любое количество... А на самом деле, делать вложенные циклы не нужно - достаточно собрать все позиции всех счетов в один список, отсортировать его по коду накладной - и разбить его по накладным за один проход (пустые или "неформатные" коды, естественно, могут означать то, что вы пожелаете - например, то, что товар ещё не отгружается ) Как-то так... И чем вам всем так готовые CRM не нравятся-то? Я же вроде уже упоминал, что, например, Бизнес-Пак в ваших условиях настроить - раз плюнуть...
При нормальном бухучете - обычно не позволяется произвольно объединять последовательности документов. Чтобы получить то, что вы желаете - надо начинать использовать накопительные таблицы (счетов и накладных, причём с уникальной кодировкой каждой позиции), а формы составлять уже на основе этих таблиц. Если же вы желаете продолжать в том же духе "доставания гланд через..."- могу предложить (как вам советовали выше) придумать систему отметок для связи счёт-накладная. Т.е. пишем в доп.столбец в счёте не "что угодно", а код накладной, в которую попадёт данная позиция. Тогда вся работа макроса по "сборке" будет заключаться в том, что он, например, будет несколько раз (сколко нужно накладных собрать) проходить все имеющиеся счета счета и набирать позиции в нужные накладные, при этом как счетов, так и накладных может быть любое количество... А на самом деле, делать вложенные циклы не нужно - достаточно собрать все позиции всех счетов в один список, отсортировать его по коду накладной - и разбить его по накладным за один проход (пустые или "неформатные" коды, естественно, могут означать то, что вы пожелаете - например, то, что товар ещё не отгружается ) Как-то так... И чем вам всем так готовые CRM не нравятся-то? Я же вроде уже упоминал, что, например, Бизнес-Пак в ваших условиях настроить - раз плюнуть...AndreTM
Все четко сработало! То что нужно. SummaVardiem() работает четко да. Возможно у Вас не работает правильно изза латышских букв, не знаю). У меня, да, Non-Unicode стоит Латвийский, так что все четко.
AndreTM, уже 10 лет так работаем, и никаких проблем. Наверное потому, что у нас в Латвии законы немного другие.) Про номер накладной, у меня все данные копируются сначала в бланк с накладной, а уже там я вписываю номер накладной и жму свою кнопку Save, и накладная сохраняется в нужную папку с нужным именем. Наши накладные сильно отличаются от стандартных CMRок, это я в файле так условно написал. Вся система уже закончена и работает на всех компах исправно и быстро. Остался вот только этот маленький аптдэйтик, которым выручил Hugo.
Hugo, огромное спасибо!
Все четко сработало! То что нужно. SummaVardiem() работает четко да. Возможно у Вас не работает правильно изза латышских букв, не знаю). У меня, да, Non-Unicode стоит Латвийский, так что все четко.
AndreTM, уже 10 лет так работаем, и никаких проблем. Наверное потому, что у нас в Латвии законы немного другие.) Про номер накладной, у меня все данные копируются сначала в бланк с накладной, а уже там я вписываю номер накладной и жму свою кнопку Save, и накладная сохраняется в нужную папку с нужным именем. Наши накладные сильно отличаются от стандартных CMRок, это я в файле так условно написал. Вся система уже закончена и работает на всех компах исправно и быстро. Остался вот только этот маленький аптдэйтик, которым выручил Hugo.DAKRAY
Hugo, один момент. В файле примере-то у меня до таблицы и после были пустые ячейки. А в бланке с накладной до и после таблицы с позициями ячейки колонны не все пустые, и поэтому он мне вписывает где-то внизу вообще. Как указать, чтобы начинал смотреть именно с нужной ячейки.
Файл пример в приложении.
Hugo, один момент. В файле примере-то у меня до таблицы и после были пустые ячейки. А в бланке с накладной до и после таблицы с позициями ячейки колонны не все пустые, и поэтому он мне вписывает где-то внизу вообще. Как указать, чтобы начинал смотреть именно с нужной ячейки.
уже 10 лет так работаем, и никаких проблем... Про номер накладной, у меня все данные копируются сначала в бланк с накладной...
Да я сильно против-то ничего не имею
А по поводу - я вам и говорю, что надо "сделать наоборот", т.е. вписывать номер накладной в строку заказа; и тогда это и будет, во-первых, означать, что товар передан на отгрузку, а во-вторых, - в какую именно накладную из какого заказа попадает (или ещё не попадает) соответствуюшая строчка. А уже сформированные накладные - сохраняются. В заказе же при этом (именно при "проведении" накладной) можно для "сохранённых" отметить эти строки какими-то новыми признаками (с доп.символами, например). Чтобы эти позиции заказов больше вообще нельзя было тронуть.
уже 10 лет так работаем, и никаких проблем... Про номер накладной, у меня все данные копируются сначала в бланк с накладной...
Да я сильно против-то ничего не имею
А по поводу - я вам и говорю, что надо "сделать наоборот", т.е. вписывать номер накладной в строку заказа; и тогда это и будет, во-первых, означать, что товар передан на отгрузку, а во-вторых, - в какую именно накладную из какого заказа попадает (или ещё не попадает) соответствуюшая строчка. А уже сформированные накладные - сохраняются. В заказе же при этом (именно при "проведении" накладной) можно для "сохранённых" отметить эти строки какими-то новыми признаками (с доп.символами, например). Чтобы эти позиции заказов больше вообще нельзя было тронуть.AndreTM
AndreTM, tnx за совет! Но никогда не угадаешь какой номер накладной будет к тому времени, когда придется ее делать. Товар могут забрать и через месяц. Нас 5 человек, кто выписывает счета-накладные и номер накладной узнаем непосредственно перед самим сохранением накладной и ее печатью. Плюс еще у нас девушка часто резервирует некоторые номера, для своих целей.
Hugo, шикарненько! Эти галочки мне очень-очень понравились! (мм) Но Wasilic прав, у меня же счета с разными номерами в разных файлах, и при нажатии первой кнопки, он открывает файл-бланк с накладной и закидывает не только позиции, но и реквизиты фирмы, а на второй кнопке будет только конкретные позиции в уже открытый бланк.
Wasilic, благодарю! Объединенный вариант с Hugo, меня даже больше чем удовлетворяет. Безмерно благодарен Вам ребят! Будете в Риге, с меня вискарь!))
AndreTM, tnx за совет! Но никогда не угадаешь какой номер накладной будет к тому времени, когда придется ее делать. Товар могут забрать и через месяц. Нас 5 человек, кто выписывает счета-накладные и номер накладной узнаем непосредственно перед самим сохранением накладной и ее печатью. Плюс еще у нас девушка часто резервирует некоторые номера, для своих целей.
Hugo, шикарненько! Эти галочки мне очень-очень понравились! (мм) Но Wasilic прав, у меня же счета с разными номерами в разных файлах, и при нажатии первой кнопки, он открывает файл-бланк с накладной и закидывает не только позиции, но и реквизиты фирмы, а на второй кнопке будет только конкретные позиции в уже открытый бланк.
Wasilic, благодарю! Объединенный вариант с Hugo, меня даже больше чем удовлетворяет. Безмерно благодарен Вам ребят! Будете в Риге, с меня вискарь!))DAKRAY
[offtop]:D Рижанин? Я в Иманте живу. По будням занят, на выходных можем встретится, ну или в пятницу вечером сам могу в центр подъехать.[/offtop]
[offtop]:D Рижанин? Я в Иманте живу. По будням занят, на выходных можем встретится, ну или в пятницу вечером сам могу в центр подъехать.[/offtop]DAKRAY