Всем доброго времени суток! Люди добрые, сами мы в excel чайники, не дайте погибнуть, поможите чем можете. Суть вопроса в следующем - есть электронный бланк заказа( он же - прайс ) и есть накладная. Нужно перенести заказанные позиции из прайса в накладную, причем нужно учесть что столбцы - ЦЕНА и КОЛ-ВО меняются местами. Чую что разгадка где-то близко, но мои познания в excel равны нулю. Я не прошу решать за меня (хотя и не отказываюсь), но буду очень рад получить любую информацию по способу решения. Ссылки на какие-то материалы по решению данного вопроса приветствуются. Заранее ВСЕМ признателен.
Всем доброго времени суток! Люди добрые, сами мы в excel чайники, не дайте погибнуть, поможите чем можете. Суть вопроса в следующем - есть электронный бланк заказа( он же - прайс ) и есть накладная. Нужно перенести заказанные позиции из прайса в накладную, причем нужно учесть что столбцы - ЦЕНА и КОЛ-ВО меняются местами. Чую что разгадка где-то близко, но мои познания в excel равны нулю. Я не прошу решать за меня (хотя и не отказываюсь), но буду очень рад получить любую информацию по способу решения. Ссылки на какие-то материалы по решению данного вопроса приветствуются. Заранее ВСЕМ признателен.Psix
Psix, я люблю макросы и VBA )) если Вы тоже то.. [vba]
Code
Sub Макрос1() Dim i As Integer Dim ii As Integer i = 0 ii = 0 While Worksheets("прайс").Cells(6 + i, 1) <> 0 If Worksheets("прайс").Cells(6 + i, 3) <> 0 Then Worksheets("накладная").Cells(9 + ii, 1) = ii + 1 ' № Worksheets("накладная").Cells(9 + ii, 2) = Worksheets("прайс").Cells(6 + i, 1) ' name Worksheets("накладная").Cells(9 + ii, 4) = Worksheets("прайс").Cells(6 + i, 2) ' prix Worksheets("накладная").Cells(9 + ii, 3) = Worksheets("прайс").Cells(6 + i, 3) ' number Worksheets("накладная").Cells(9 + ii, 5) = Worksheets("накладная").Cells(9 + ii, 3) _ * Worksheets("накладная").Cells(9 + ii, 4) ' sum for 1 name ii = ii + 1 End If i = i + 1 Wend End Sub
[/vba]
Psix, я люблю макросы и VBA )) если Вы тоже то.. [vba]
Code
Sub Макрос1() Dim i As Integer Dim ii As Integer i = 0 ii = 0 While Worksheets("прайс").Cells(6 + i, 1) <> 0 If Worksheets("прайс").Cells(6 + i, 3) <> 0 Then Worksheets("накладная").Cells(9 + ii, 1) = ii + 1 ' № Worksheets("накладная").Cells(9 + ii, 2) = Worksheets("прайс").Cells(6 + i, 1) ' name Worksheets("накладная").Cells(9 + ii, 4) = Worksheets("прайс").Cells(6 + i, 2) ' prix Worksheets("накладная").Cells(9 + ii, 3) = Worksheets("прайс").Cells(6 + i, 3) ' number Worksheets("накладная").Cells(9 + ii, 5) = Worksheets("накладная").Cells(9 + ii, 3) _ * Worksheets("накладная").Cells(9 + ii, 4) ' sum for 1 name ii = ii + 1 End If i = i + 1 Wend End Sub
Попытался еще усовершенствовать код, на случай, если позиций заказа будет гораздо больше. Плюс добавил кнопку по очистке бланка заказа, так как при изменении нескольких ячеек сразу вылетает в дебагер (может посоветуете чего в исправлении этой ошибки).
ЗЫ. "Я не волшебник, я только учусь." (с)
Quote (AlexM)
Еще одно решение
Попытался еще усовершенствовать код, на случай, если позиций заказа будет гораздо больше. Плюс добавил кнопку по очистке бланка заказа, так как при изменении нескольких ячеек сразу вылетает в дебагер (может посоветуете чего в исправлении этой ошибки).
Поменял на Long. Убрал кнопку - теперь, работает без ошибки. Сделал центрирование текста в ячейках с порядковым номером в накладной - ИМХО так красивше.
Quote (AlexM)
С Double работает
но только в 2003. В 2007 не катит.
Поменял на Long. Убрал кнопку - теперь, работает без ошибки. Сделал центрирование текста в ячейках с порядковым номером в накладной - ИМХО так красивше. amur84
Подскажите как прикрепить к накладной несколько прайс листов?
Самое простое - ставить прайсы один за другим в листе (при одинаковой форме прайсов). Для остальных случаев - добавлять в код строки обработки других прайсов по аналогии с первым. Решений может быть много, зависит от исходного файла и желаемого результата - выкладывайте файлы - можно будет подумать.
Цитата (SemenSEA)
Подскажите как прикрепить к накладной несколько прайс листов?
Самое простое - ставить прайсы один за другим в листе (при одинаковой форме прайсов). Для остальных случаев - добавлять в код строки обработки других прайсов по аналогии с первым. Решений может быть много, зависит от исходного файла и желаемого результата - выкладывайте файлы - можно будет подумать.amur84
Здравствуйте, столкнулся с аналогичной ситуацией. Пытался сам исправить, по предложенному шаблону в VBA, но за неимением знаний, в данной сфере, ничего не выходит В отличие, от данного варианта, у меня дополнительный столбик с "ед.изм.". Буду очень признателен, если есть пошаговая инструкция с объяснением или видеоматериал по данному решению. [moder]Читаем правила форума, создаем свою тему! Эта тема закрыта.[/moder]
Здравствуйте, столкнулся с аналогичной ситуацией. Пытался сам исправить, по предложенному шаблону в VBA, но за неимением знаний, в данной сфере, ничего не выходит В отличие, от данного варианта, у меня дополнительный столбик с "ед.изм.". Буду очень признателен, если есть пошаговая инструкция с объяснением или видеоматериал по данному решению. [moder]Читаем правила форума, создаем свою тему! Эта тема закрыта.[/moder]Grom87