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

Вход

Регистрация

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

 

= Мир MS Excel/Движение деталей по этапам техпроцесса - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Движение деталей по этапам техпроцесса (Макросы/Sub)
Движение деталей по этапам техпроцесса
китин Дата: Среда, 06.04.2016, 15:12 | Сообщение № 1
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброго всем времени суток!!!Еще раз прошу помощи, так как моих знаний в этом случае не хватает!!!Есть табличка движения деталей по технологическим операциям.Диспетчер должен знать сколько деталей и на каких операциях они находятся.Вот. На примере 7 строки.Со склада Заготовительный на 1 операцию(или на 2ю, или на 3ю)забрали какое то кол-во деталей и они должны со склада отминусоваться.Но с первой операции могут дальше пойти не все 86 деталей а только 26, значит 26 деталей с 1 операции должны уйти и остаться только 60 ну и так далее по всем операциям.И те детали, что легли на склад механический должны с этапов тоже уйти.[offtop]прошу простить за косноязычие :'(
[moder]Не знаю, как остальные, но я, если честно, ничего не понял.
К сообщению приложен файл: forum.xlsm (28.1 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал _Boroda_ - Среда, 06.04.2016, 21:30
 
Ответить
СообщениеДоброго всем времени суток!!!Еще раз прошу помощи, так как моих знаний в этом случае не хватает!!!Есть табличка движения деталей по технологическим операциям.Диспетчер должен знать сколько деталей и на каких операциях они находятся.Вот. На примере 7 строки.Со склада Заготовительный на 1 операцию(или на 2ю, или на 3ю)забрали какое то кол-во деталей и они должны со склада отминусоваться.Но с первой операции могут дальше пойти не все 86 деталей а только 26, значит 26 деталей с 1 операции должны уйти и остаться только 60 ну и так далее по всем операциям.И те детали, что легли на склад механический должны с этапов тоже уйти.[offtop]прошу простить за косноязычие :'(
[moder]Не знаю, как остальные, но я, если честно, ничего не понял.

Автор - китин
Дата добавления - 06.04.2016 в 15:12
al-Ex Дата: Среда, 06.04.2016, 21:27 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Добавил форму "перемещения" , - тут просто выбираете из списков, что, откуда, куда, и сколько переместить.
и лист- журнал "Перемещения", - тут сохраняется информация о каждом перемещении просто для истории.
Если концепция интересна, можно "допилить", т.е до ума детали довести.
Там проверки на возможные ошибки пользователя при вводе не все , конечно.
Но как концепт, - так пойдёт.
К сообщению приложен файл: forum_frm_0.xlsm (46.5 Kb)


Сообщение отредактировал al-Ex - Четверг, 07.04.2016, 00:35
 
Ответить
СообщениеДобавил форму "перемещения" , - тут просто выбираете из списков, что, откуда, куда, и сколько переместить.
и лист- журнал "Перемещения", - тут сохраняется информация о каждом перемещении просто для истории.
Если концепция интересна, можно "допилить", т.е до ума детали довести.
Там проверки на возможные ошибки пользователя при вводе не все , конечно.
Но как концепт, - так пойдёт.

Автор - al-Ex
Дата добавления - 06.04.2016 в 21:27
китин Дата: Четверг, 07.04.2016, 07:34 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
[offtop]
Не знаю, как остальные, но я, если честно, ничего не понял.

Возвращаясь к Нашим баранам :D[p.s.] а это к умению объяснять и формулировать.(пост №17 по ссылке) Ну не умею я этого. Из за этого и в аспирантуру в свое время не пошел :'(
[moder]Игорь, это ты к чему?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 07.04.2016, 07:54
 
Ответить
Сообщение[offtop]
Не знаю, как остальные, но я, если честно, ничего не понял.

Возвращаясь к Нашим баранам :D[p.s.] а это к умению объяснять и формулировать.(пост №17 по ссылке) Ну не умею я этого. Из за этого и в аспирантуру в свое время не пошел :'(
[moder]Игорь, это ты к чему?

Автор - китин
Дата добавления - 07.04.2016 в 07:34
китин Дата: Четверг, 07.04.2016, 07:52 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Итак попытка №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
 
Ответить
СообщениеИтак попытка №2:
на примере строчки №7
на складе Заготовительный конкретно в какой ячейке? лежат 50 деталей.Диспетчер забирает 40 на 1 операцию механики(ставить 40 в соотв. ячейку какую и почему именно там?) .Значит на складе должно остаться 10.Затем с 1 операции он 35 забирает на 3ю(ставит цифругде и почему именно там?) значит на 1 операции должно остаться 5. с третьей он перемещает детали на 5юа это куда?(все 35) (ставит цифирку) значит на 3 будет 0.А когда он эти 35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается? то в ячейках под шапкой механический должно остаться только 5 деталей на 1 операции
УФФФФФ....
[moder]Игорь, давай так - вот представь себе, что ты видишь свой файл в первый раз и о процессе ничего не знаешь. И прочитай свои объяснения. Я прямо у тебя в тексте пометки сделал.

Автор - китин
Дата добавления - 07.04.2016 в 07:52
китин Дата: Четверг, 07.04.2016, 08:01 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
al-Ex, браво!!!! hands Прекрасная таблица. Только вот одно "НО" : у меня 20000 деталей и каждая перемещается туды сюды. Как бы это сделать без таблички(там реально неудобно будет искать нужную деталь), просто ставя цифирки в соответствующую ячейку ???


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеal-Ex, браво!!!! hands Прекрасная таблица. Только вот одно "НО" : у меня 20000 деталей и каждая перемещается туды сюды. Как бы это сделать без таблички(там реально неудобно будет искать нужную деталь), просто ставя цифирки в соответствующую ячейку ???

Автор - китин
Дата добавления - 07.04.2016 в 08:01
al-Ex Дата: Четверг, 07.04.2016, 08:50 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
ставя цифирки в соответствующую ячейку
Как вы это видите конкретно? "просто ставя цифирки" - конкретно куда?
Ведь вам нужно для перемещения как минимум 3 ячейки указать.
1. Выбрать деталь.
2. Указать откуда переместить.
3. Указать куда переместить.
4. ну и количество деталей, тоже указать.
* если список номенклатуры большой могу облегчить выбор из списка предварительным поиском по начальным буквам,
но это вечером "подпилю" к форме.


Сообщение отредактировал al-Ex - Четверг, 07.04.2016, 09:04
 
Ответить
Сообщение
ставя цифирки в соответствующую ячейку
Как вы это видите конкретно? "просто ставя цифирки" - конкретно куда?
Ведь вам нужно для перемещения как минимум 3 ячейки указать.
1. Выбрать деталь.
2. Указать откуда переместить.
3. Указать куда переместить.
4. ну и количество деталей, тоже указать.
* если список номенклатуры большой могу облегчить выбор из списка предварительным поиском по начальным буквам,
но это вечером "подпилю" к форме.

Автор - al-Ex
Дата добавления - 07.04.2016 в 08:50
китин Дата: Четверг, 07.04.2016, 09:26 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
облегчить выбор из списка предварительным поиском по начальным буквам
это было бы шикарно. У меня правда детальки обзываются ФКГП 444.44.44.444 в большинстве своем, но есть и те, которые без букв начинабтся с 4 цифр
[moder]Игорь, свой пост на 2 выше посмотри


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал _Boroda_ - Четверг, 07.04.2016, 09:32
 
Ответить
Сообщение
облегчить выбор из списка предварительным поиском по начальным буквам
это было бы шикарно. У меня правда детальки обзываются ФКГП 444.44.44.444 в большинстве своем, но есть и те, которые без букв начинабтся с 4 цифр
[moder]Игорь, свой пост на 2 выше посмотри

Автор - китин
Дата добавления - 07.04.2016 в 09:26
Manyasha Дата: Четверг, 07.04.2016, 11:10 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Игорь, посмотрите такой вариант.
[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]
А что делать если на следующую операцию ушло деталей больше, чем было на предыдущей?
К сообщению приложен файл: forum-1.xlsm (30.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИгорь, посмотрите такой вариант.
[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
Дата добавления - 07.04.2016 в 11:10
китин Дата: Четверг, 07.04.2016, 11:52 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
на складе Заготовительный конкретно в какой ячейке? лежат 50 деталей

ячейка К7
абирает 40 на 1 операцию механики(ставить 40 в соотв. ячейку какую и почему именно там?

ячейка L7 Почему? по техпроцессу.Предположим мех1 это фрезерный ОЦ
35 забирает на 3ю(ставит цифругде и почему именно там?

ячейка N7 там следующая операция техпроцесса.Почему не все 40? Не успеют обработать до времени Ч(сборка)
35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается?

ячейка U7. Значит эта деталь по техпроцессу уже готова. Но вся шутка в том, что деталюшки все разные и операций в тех процессе (мех1, мех2....)от 1 до 9


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

ячейка К7
абирает 40 на 1 операцию механики(ставить 40 в соотв. ячейку какую и почему именно там?

ячейка L7 Почему? по техпроцессу.Предположим мех1 это фрезерный ОЦ
35 забирает на 3ю(ставит цифругде и почему именно там?

ячейка N7 там следующая операция техпроцесса.Почему не все 40? Не успеют обработать до времени Ч(сборка)
35 деталей кладет на склад Механический конкретно куда? И куда еще можно? И как это прописывается?

ячейка U7. Значит эта деталь по техпроцессу уже готова. Но вся шутка в том, что деталюшки все разные и операций в тех процессе (мех1, мех2....)от 1 до 9

Автор - китин
Дата добавления - 07.04.2016 в 11:52
китин Дата: Четверг, 07.04.2016, 11:57 | Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Марина спасибо.
на следующую операцию ушло деталей больше, чем было на предыдущей?

количество деталей пришедшее на мех.склад д.б. меньше или равно кол-ву деталей ушедших со склада заготовительный.


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеМарина спасибо.
на следующую операцию ушло деталей больше, чем было на предыдущей?

количество деталей пришедшее на мех.склад д.б. меньше или равно кол-ву деталей ушедших со склада заготовительный.

Автор - китин
Дата добавления - 07.04.2016 в 11:57
al-Ex Дата: Четверг, 07.04.2016, 14:02 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Как бы это сделать без таблички
Вот примерно так:
1.Для облегчения поиска наименования изделия, выделите наименование изделия в таблице листа.
Откройте форму "Перемещение",
выбранное Вами наименование будет автоматически внесено в поле "Наименование", формы.
2. После выбора в поле формы - "источника" перемещения,
в поле "количество" формы, увидите количество деталей данного наименования которое можно перемещать.
К сообщению приложен файл: forum_frm_1.xlsm (50.0 Kb)


Сообщение отредактировал al-Ex - Четверг, 07.04.2016, 15:23
 
Ответить
Сообщение
Как бы это сделать без таблички
Вот примерно так:
1.Для облегчения поиска наименования изделия, выделите наименование изделия в таблице листа.
Откройте форму "Перемещение",
выбранное Вами наименование будет автоматически внесено в поле "Наименование", формы.
2. После выбора в поле формы - "источника" перемещения,
в поле "количество" формы, увидите количество деталей данного наименования которое можно перемещать.

Автор - al-Ex
Дата добавления - 07.04.2016 в 14:02
китин Дата: Четверг, 07.04.2016, 15:32 | Сообщение № 12
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
al-Ex, hands hands hands СПАСИБО!!! По первым тестам на реальной таблице все работает на отлично!!!
Всем спасибо за участие


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеal-Ex, hands hands hands СПАСИБО!!! По первым тестам на реальной таблице все работает на отлично!!!
Всем спасибо за участие

Автор - китин
Дата добавления - 07.04.2016 в 15:32
китин Дата: Четверг, 02.06.2016, 13:45 | Сообщение № 13
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Приходится поднять тему: пытаюсь автоматизировать нахождение диапазона ,вернее последней заполненной ячейки в строке . Попытки переделать код 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]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеПриходится поднять тему: пытаюсь автоматизировать нахождение диапазона ,вернее последней заполненной ячейки в строке . Попытки переделать код 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]

Автор - китин
Дата добавления - 02.06.2016 в 13:45
_Boroda_ Дата: Четверг, 02.06.2016, 13:52 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ты ищешь вправо, а нужно влево.
Ты ведь уже стоишь в последнем столбце (Column.Count), куда еще вправо-то?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТы ищешь вправо, а нужно влево.
Ты ведь уже стоишь в последнем столбце (Column.Count), куда еще вправо-то?

Автор - _Boroda_
Дата добавления - 02.06.2016 в 13:52
al-Ex Дата: Четверг, 02.06.2016, 13:53 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
переделать код al-Ex, из поста 11
Если не поможет никто, вечером смогу вникнуть в тему.
 
Ответить
Сообщение
переделать код al-Ex, из поста 11
Если не поможет никто, вечером смогу вникнуть в тему.

Автор - al-Ex
Дата добавления - 02.06.2016 в 13:53
китин Дата: Четверг, 02.06.2016, 13:57 | Сообщение № 16
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Привет Саша. Да это вариант № ???? xlToLeft тоже пытался вставить. Эффект тот же: дебаг
al-Ex, спасибо.


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеПривет Саша. Да это вариант № ???? xlToLeft тоже пытался вставить. Эффект тот же: дебаг
al-Ex, спасибо.

Автор - китин
Дата добавления - 02.06.2016 в 13:57
_Boroda_ Дата: Четверг, 02.06.2016, 13:59 | Сообщение № 17
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, ну да. Ищи разницу
Column.Count
и
Columns.Count
И да, как Марина ниже написала уже, вот так нельзя
[vba]
Код
Range("N2:lr")
[/vba]А вот так льзя
[vba]
Код
Range("N2:N" & lr)
[/vba]

Вот так
[vba]
Код
Range("N2", Cells(2, lr))
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, ну да. Ищи разницу
Column.Count
и
Columns.Count
И да, как Марина ниже написала уже, вот так нельзя
[vba]
Код
Range("N2:lr")
[/vba]А вот так льзя
[vba]
Код
Range("N2:N" & lr)
[/vba]

Вот так
[vba]
Код
Range("N2", Cells(2, lr))
[/vba]

Автор - _Boroda_
Дата добавления - 02.06.2016 в 13:59
Manyasha Дата: Четверг, 02.06.2016, 13:59 | Сообщение № 18
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
И еще в этой строке
[vba]
Код
Set rngPlace = Sheets("Лист5").Range("N2:lr").Value
[/vba]
что-то не так с диапазоном.
Вот так можно
[vba]
Код
Set rngPlace = Sheets("Лист5")Range("N2").Resize(, lr - 13).Value
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИ еще в этой строке
[vba]
Код
Set rngPlace = Sheets("Лист5").Range("N2:lr").Value
[/vba]
что-то не так с диапазоном.
Вот так можно
[vba]
Код
Set rngPlace = Sheets("Лист5")Range("N2").Resize(, lr - 13).Value
[/vba]

Автор - Manyasha
Дата добавления - 02.06.2016 в 13:59
_Boroda_ Дата: Четверг, 02.06.2016, 14:07 | Сообщение № 19
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Поправил там у себя в посте выше
Еще напиши вот так
[vba]
Код
On Error Resume Next
Set trg = Application.Intersect(rngIsdel, Selection)
On Error GoTo 0
[/vba]
На тот случай, если у тебя в момент топания на кнопку выделена не ячейка (ячейки), а, например, примечание не в режиме редактирования (я сразу же на этом попался) или еще какой-то неячеечный объект


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПоправил там у себя в посте выше
Еще напиши вот так
[vba]
Код
On Error Resume Next
Set trg = Application.Intersect(rngIsdel, Selection)
On Error GoTo 0
[/vba]
На тот случай, если у тебя в момент топания на кнопку выделена не ячейка (ячейки), а, например, примечание не в режиме редактирования (я сразу же на этом попался) или еще какой-то неячеечный объект

Автор - _Boroda_
Дата добавления - 02.06.2016 в 14:07
китин Дата: Четверг, 02.06.2016, 14:31 | Сообщение № 20
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ПОЛУЧИИИИИИИЛООООСЬ!!!!! hands hands :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]
Всем огромное спасибо!!!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 02.06.2016, 14:32
 
Ответить
СообщениеПОЛУЧИИИИИИИЛООООСЬ!!!!! hands hands :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]
Всем огромное спасибо!!!

Автор - китин
Дата добавления - 02.06.2016 в 14:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Движение деталей по этапам техпроцесса (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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