Доброго всем времени суток!!!Еще раз прошу помощи, так как моих знаний в этом случае не хватает!!!Есть табличка движения деталей по технологическим операциям.Диспетчер должен знать сколько деталей и на каких операциях они находятся.Вот. На примере 7 строки.Со склада Заготовительный на 1 операцию(или на 2ю, или на 3ю)забрали какое то кол-во деталей и они должны со склада отминусоваться.Но с первой операции могут дальше пойти не все 86 деталей а только 26, значит 26 деталей с 1 операции должны уйти и остаться только 60 ну и так далее по всем операциям.И те детали, что легли на склад механический должны с этапов тоже уйти.[offtop]прошу простить за косноязычие :'( [moder]Не знаю, как остальные, но я, если честно, ничего не понял.
Доброго всем времени суток!!!Еще раз прошу помощи, так как моих знаний в этом случае не хватает!!!Есть табличка движения деталей по технологическим операциям.Диспетчер должен знать сколько деталей и на каких операциях они находятся.Вот. На примере 7 строки.Со склада Заготовительный на 1 операцию(или на 2ю, или на 3ю)забрали какое то кол-во деталей и они должны со склада отминусоваться.Но с первой операции могут дальше пойти не все 86 деталей а только 26, значит 26 деталей с 1 операции должны уйти и остаться только 60 ну и так далее по всем операциям.И те детали, что легли на склад механический должны с этапов тоже уйти.[offtop]прошу простить за косноязычие :'( [moder]Не знаю, как остальные, но я, если честно, ничего не понял.китин
Добавил форму "перемещения" , - тут просто выбираете из списков, что, откуда, куда, и сколько переместить. и лист- журнал "Перемещения", - тут сохраняется информация о каждом перемещении просто для истории. Если концепция интересна, можно "допилить", т.е до ума детали довести. Там проверки на возможные ошибки пользователя при вводе не все , конечно. Но как концепт, - так пойдёт.
Добавил форму "перемещения" , - тут просто выбираете из списков, что, откуда, куда, и сколько переместить. и лист- журнал "Перемещения", - тут сохраняется информация о каждом перемещении просто для истории. Если концепция интересна, можно "допилить", т.е до ума детали довести. Там проверки на возможные ошибки пользователя при вводе не все , конечно. Но как концепт, - так пойдёт.al-Ex
Не знаю, как остальные, но я, если честно, ничего не понял.
Возвращаясь к Нашим баранам :D[p.s.] а это к умению объяснять и формулировать.(пост №17 по ссылке) Ну не умею я этого. Из за этого и в аспирантуру в свое время не пошел :'( [moder]Игорь, это ты к чему?
Не знаю, как остальные, но я, если честно, ничего не понял.
Возвращаясь к Нашим баранам :D[p.s.] а это к умению объяснять и формулировать.(пост №17 по ссылке) Ну не умею я этого. Из за этого и в аспирантуру в свое время не пошел :'( [moder]Игорь, это ты к чему?китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Сообщение отредактировал китин - Четверг, 07.04.2016, 07:54
Итак попытка №2: на примере строчки №7 на складе Заготовительный конкретно в какой ячейке? лежат 50 деталей.Диспетчер забирает 40 на 1 операцию механики(ставить 40 в соотв. ячейку какую и почему именно там?) .Значит на складе должно остаться 10.Затем с 1 операции он 35 забирает на 3ю(ставит цифругде и почему именно там?) значит на 1 операции должно остаться 5. с третьей он перемещает детали на 5юа это куда?(все 35) (ставит цифирку) значит на 3 будет 0.А когда он эти 35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается? то в ячейках под шапкой механический должно остаться только 5 деталей на 1 операции УФФФФФ.... [moder]Игорь, давай так - вот представь себе, что ты видишь свой файл в первый раз и о процессе ничего не знаешь. И прочитай свои объяснения. Я прямо у тебя в тексте пометки сделал.
Итак попытка №2: на примере строчки №7 на складе Заготовительный конкретно в какой ячейке? лежат 50 деталей.Диспетчер забирает 40 на 1 операцию механики(ставить 40 в соотв. ячейку какую и почему именно там?) .Значит на складе должно остаться 10.Затем с 1 операции он 35 забирает на 3ю(ставит цифругде и почему именно там?) значит на 1 операции должно остаться 5. с третьей он перемещает детали на 5юа это куда?(все 35) (ставит цифирку) значит на 3 будет 0.А когда он эти 35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается? то в ячейках под шапкой механический должно остаться только 5 деталей на 1 операции УФФФФФ.... [moder]Игорь, давай так - вот представь себе, что ты видишь свой файл в первый раз и о процессе ничего не знаешь. И прочитай свои объяснения. Я прямо у тебя в тексте пометки сделал.китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Сообщение отредактировал _Boroda_ - Четверг, 07.04.2016, 09:32
al-Ex, браво!!!! Прекрасная таблица. Только вот одно "НО" : у меня 20000 деталей и каждая перемещается туды сюды. Как бы это сделать без таблички(там реально неудобно будет искать нужную деталь), просто ставя цифирки в соответствующую ячейку ???
al-Ex, браво!!!! Прекрасная таблица. Только вот одно "НО" : у меня 20000 деталей и каждая перемещается туды сюды. Как бы это сделать без таблички(там реально неудобно будет искать нужную деталь), просто ставя цифирки в соответствующую ячейку ???китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Как вы это видите конкретно? "просто ставя цифирки" - конкретно куда? Ведь вам нужно для перемещения как минимум 3 ячейки указать. 1. Выбрать деталь. 2. Указать откуда переместить. 3. Указать куда переместить. 4. ну и количество деталей, тоже указать. * если список номенклатуры большой могу облегчить выбор из списка предварительным поиском по начальным буквам, но это вечером "подпилю" к форме.
Как вы это видите конкретно? "просто ставя цифирки" - конкретно куда? Ведь вам нужно для перемещения как минимум 3 ячейки указать. 1. Выбрать деталь. 2. Указать откуда переместить. 3. Указать куда переместить. 4. ну и количество деталей, тоже указать. * если список номенклатуры большой могу облегчить выбор из списка предварительным поиском по начальным буквам, но это вечером "подпилю" к форме.al-Ex
Сообщение отредактировал al-Ex - Четверг, 07.04.2016, 09:04
облегчить выбор из списка предварительным поиском по начальным буквам
это было бы шикарно. У меня правда детальки обзываются ФКГП 444.44.44.444 в большинстве своем, но есть и те, которые без букв начинабтся с 4 цифр [moder]Игорь, свой пост на 2 выше посмотри
облегчить выбор из списка предварительным поиском по начальным буквам
это было бы шикарно. У меня правда детальки обзываются ФКГП 444.44.44.444 в большинстве своем, но есть и те, которые без букв начинабтся с 4 цифр [moder]Игорь, свой пост на 2 выше посмотрикитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Сообщение отредактировал _Boroda_ - Четверг, 07.04.2016, 09:32
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub lr = Cells(Rows.Count, "b").End(xlUp).Row If Intersect(Target, Range("l3:w" & lr)) Is Nothing Then Exit Sub Application.EnableEvents = False Dim i%: i = 1 Do If Target.Offset(0, -i).Value > 0 Then Target.Offset(0, -i).Value = Target.Offset(0, -i).Value - Target.Value: Exit Do i = i + 1 Loop Application.EnableEvents = True End Sub
[/vba] А что делать если на следующую операцию ушло деталей больше, чем было на предыдущей?
Игорь, посмотрите такой вариант. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub lr = Cells(Rows.Count, "b").End(xlUp).Row If Intersect(Target, Range("l3:w" & lr)) Is Nothing Then Exit Sub Application.EnableEvents = False Dim i%: i = 1 Do If Target.Offset(0, -i).Value > 0 Then Target.Offset(0, -i).Value = Target.Offset(0, -i).Value - Target.Value: Exit Do i = i + 1 Loop Application.EnableEvents = True End Sub
[/vba] А что делать если на следующую операцию ушло деталей больше, чем было на предыдущей?Manyasha
35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается?
ячейка U7. Значит эта деталь по техпроцессу уже готова. Но вся шутка в том, что деталюшки все разные и операций в тех процессе (мех1, мех2....)от 1 до 9
35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается?
ячейка U7. Значит эта деталь по техпроцессу уже готова. Но вся шутка в том, что деталюшки все разные и операций в тех процессе (мех1, мех2....)от 1 до 9китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Вот примерно так: 1.Для облегчения поиска наименования изделия, выделите наименование изделия в таблице листа. Откройте форму "Перемещение", выбранное Вами наименование будет автоматически внесено в поле "Наименование", формы. 2. После выбора в поле формы - "источника" перемещения, в поле "количество" формы, увидите количество деталей данного наименования которое можно перемещать.
Вот примерно так: 1.Для облегчения поиска наименования изделия, выделите наименование изделия в таблице листа. Откройте форму "Перемещение", выбранное Вами наименование будет автоматически внесено в поле "Наименование", формы. 2. После выбора в поле формы - "источника" перемещения, в поле "количество" формы, увидите количество деталей данного наименования которое можно перемещать.al-Ex
Приходится поднять тему: пытаюсь автоматизировать нахождение диапазона ,вернее последней заполненной ячейки в строке . Попытки переделать код al-Ex, из поста 11 увенчались полным провалом .
[vba]
Код
Private Sub UserForm_Activate() Dim lr&, arr lr = Cells(2, Column.Count).End(xlToRight).Column' вот на этой строке вылезает дебаг Set rngIsdel = Sheets("Лист5").Range("C3:C20000") Set rngPlace = Sheets("Лист5").Range("N2:lr").Value
Set trg = Application.Intersect(rngIsdel, Selection) If trg Is Nothing Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count > 1 Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count = 1 Then trgRow = trg.Row Label6.Caption = trg.Value End If
error1: 'изделия For Each x In rngIsdel UserForm1.ListBox1.AddItem x.Value Next 'источник For Each x In rngPlace UserForm1.ListBox2.AddItem x.Value Next ' место назначения For Each x In rngPlace UserForm1.ListBox3.AddItem x.Value Next
End Sub
[/vba]
Приходится поднять тему: пытаюсь автоматизировать нахождение диапазона ,вернее последней заполненной ячейки в строке . Попытки переделать код al-Ex, из поста 11 увенчались полным провалом .
[vba]
Код
Private Sub UserForm_Activate() Dim lr&, arr lr = Cells(2, Column.Count).End(xlToRight).Column' вот на этой строке вылезает дебаг Set rngIsdel = Sheets("Лист5").Range("C3:C20000") Set rngPlace = Sheets("Лист5").Range("N2:lr").Value
Set trg = Application.Intersect(rngIsdel, Selection) If trg Is Nothing Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count > 1 Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count = 1 Then trgRow = trg.Row Label6.Caption = trg.Value End If
error1: 'изделия For Each x In rngIsdel UserForm1.ListBox1.AddItem x.Value Next 'источник For Each x In rngPlace UserForm1.ListBox2.AddItem x.Value Next ' место назначения For Each x In rngPlace UserForm1.ListBox3.AddItem x.Value Next
Поправил там у себя в посте выше Еще напиши вот так [vba]
Код
On Error Resume Next Set trg = Application.Intersect(rngIsdel, Selection) On Error GoTo 0
[/vba] На тот случай, если у тебя в момент топания на кнопку выделена не ячейка (ячейки), а, например, примечание не в режиме редактирования (я сразу же на этом попался) или еще какой-то неячеечный объект
Поправил там у себя в посте выше Еще напиши вот так [vba]
Код
On Error Resume Next Set trg = Application.Intersect(rngIsdel, Selection) On Error GoTo 0
[/vba] На тот случай, если у тебя в момент топания на кнопку выделена не ячейка (ячейки), а, например, примечание не в режиме редактирования (я сразу же на этом попался) или еще какой-то неячеечный объект_Boroda_
ПОЛУЧИИИИИИИЛООООСЬ!!!!! :hands: теперь диапазоны и столбца и строки автоматом определяются .Уря!
[vba]
Код
Private Sub UserForm_Activate() Dim lr&, arr, lLastRow As Long lLastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rngIsdel = Sheets("Лист5").Range("C3", Cells(lLastRow, 3)) lr = Cells(2, Columns.Count).End(xlToLeft).Column Set rngPlace = Sheets("Лист5").Range("N2", Cells(2, lr)) Set trg = Application.Intersect(rngIsdel, Selection) If trg Is Nothing Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count > 1 Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count = 1 Then trgRow = trg.Row Label6.Caption = trg.Value End If
error1: 'изделия For Each x In rngIsdel UserForm1.ListBox1.AddItem x.Value Next 'источник For Each x In rngPlace UserForm1.ListBox2.AddItem x.Value Next ' место назначения For Each x In rngPlace UserForm1.ListBox3.AddItem x.Value Next
End Sub
[/vba]
[p.s.]а что такое [vba]
Код
Resize(, lr - 13)
[/vba] Всем огромное спасибо!!!
ПОЛУЧИИИИИИИЛООООСЬ!!!!! :hands: теперь диапазоны и столбца и строки автоматом определяются .Уря!
[vba]
Код
Private Sub UserForm_Activate() Dim lr&, arr, lLastRow As Long lLastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rngIsdel = Sheets("Лист5").Range("C3", Cells(lLastRow, 3)) lr = Cells(2, Columns.Count).End(xlToLeft).Column Set rngPlace = Sheets("Лист5").Range("N2", Cells(2, lr)) Set trg = Application.Intersect(rngIsdel, Selection) If trg Is Nothing Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count > 1 Then MsgBox "Выберите наименование одного изделия из списка": GoTo error1 If trg.Count = 1 Then trgRow = trg.Row Label6.Caption = trg.Value End If
error1: 'изделия For Each x In rngIsdel UserForm1.ListBox1.AddItem x.Value Next 'источник For Each x In rngPlace UserForm1.ListBox2.AddItem x.Value Next ' место назначения For Each x In rngPlace UserForm1.ListBox3.AddItem x.Value Next