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

Вход

Регистрация

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

 

= Мир MS Excel/Ввод значения в ячейку в зависимости от значений других ячее - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод значения в ячейку в зависимости от значений других ячее (Макросы/Sub)
Ввод значения в ячейку в зависимости от значений других ячее
MacLuck Дата: Пятница, 19.10.2018, 08:33 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем добрый день.
Хочу сделать так что бы при заполнении определенных ячеек в колонках автоматически изменялось значение в заданых ячейках установленной колонки.

[vba]
Код

Sub ProjectState()
Dim i As Integer
Dim TT As Variant
Dim Off As Variant
Dim PCIP As Variant
Dim ACIP As Variant
Dim Tender As Variant
Dim Contr As Variant
Dim Impl As Variant
Dim St As Variant

TT = Range("AB4:AB350") '1
Off = Range("AC4:AC350") '2
PCIP = Range("AD4:AD350") '3
ACIP = Range("AE4:AE350") '4
Tender = Range("AF4:AF350") '5
Contr = Range("AG4:AG350") '6
Impl = Range("AH4:AH350") '7
St = Range("AA4:AA350") '8

For i = 1 To 300

If TT.Value <> 0 And Off.Value <> 0 And PCIP.Value <> 0 And ACIP.Value <> 0 And Tender.Value <> 0 And Contr.Value <> 0 And Impl.Value <> 0 Then
St.Value = "Выполнено"
End If
Next i
End Sub
[/vba]
Собственно при запуске кода возникает ошибка Run-time error '424' на строке:
[vba]
Код
If TT.Value <> 0 And Off.Value <> 0 And PCIP.Value <> 0 And ACIP.Value <> 0 And Tender.Value <> 0 And Contr.Value <> 0 And Impl.Value <> 0 Then
St.Value = "Выполнено"
[/vba]
Прошу помочь в решении данной проблемы
К сообщению приложен файл: 6699227.xlsm(80.0 Kb)


Сообщение отредактировал MacLuck - Пятница, 19.10.2018, 10:19
 
Ответить
СообщениеВсем добрый день.
Хочу сделать так что бы при заполнении определенных ячеек в колонках автоматически изменялось значение в заданых ячейках установленной колонки.

[vba]
Код

Sub ProjectState()
Dim i As Integer
Dim TT As Variant
Dim Off As Variant
Dim PCIP As Variant
Dim ACIP As Variant
Dim Tender As Variant
Dim Contr As Variant
Dim Impl As Variant
Dim St As Variant

TT = Range("AB4:AB350") '1
Off = Range("AC4:AC350") '2
PCIP = Range("AD4:AD350") '3
ACIP = Range("AE4:AE350") '4
Tender = Range("AF4:AF350") '5
Contr = Range("AG4:AG350") '6
Impl = Range("AH4:AH350") '7
St = Range("AA4:AA350") '8

For i = 1 To 300

If TT.Value <> 0 And Off.Value <> 0 And PCIP.Value <> 0 And ACIP.Value <> 0 And Tender.Value <> 0 And Contr.Value <> 0 And Impl.Value <> 0 Then
St.Value = "Выполнено"
End If
Next i
End Sub
[/vba]
Собственно при запуске кода возникает ошибка Run-time error '424' на строке:
[vba]
Код
If TT.Value <> 0 And Off.Value <> 0 And PCIP.Value <> 0 And ACIP.Value <> 0 And Tender.Value <> 0 And Contr.Value <> 0 And Impl.Value <> 0 Then
St.Value = "Выполнено"
[/vba]
Прошу помочь в решении данной проблемы

Автор - MacLuck
Дата добавления - 19.10.2018 в 08:33
_Boroda_ Дата: Пятница, 19.10.2018, 09:08 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13502
Репутация: 5526 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
- Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите второй код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

*Ответ скорее всего уже есть, жду от Вас вышеуказанных исправлений


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение- Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите второй код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

*Ответ скорее всего уже есть, жду от Вас вышеуказанных исправлений

Автор - _Boroda_
Дата добавления - 19.10.2018 в 09:08
Pelena Дата: Пятница, 19.10.2018, 20:16 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 13220
Репутация: 2908 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
при заполнении определенных ячеек в колонках автоматически изменялось значение в заданых ячейках

То есть чтобы макрос срабатывал автоматически при изменении ячейки?
Тогда он должен называться Worksheet_Change, а не ProjectState
Или всё же макрос должен запускаться вручную и перебирать все имеющиеся строки?
От ответов зависит алгоритм решения


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение
при заполнении определенных ячеек в колонках автоматически изменялось значение в заданых ячейках

То есть чтобы макрос срабатывал автоматически при изменении ячейки?
Тогда он должен называться Worksheet_Change, а не ProjectState
Или всё же макрос должен запускаться вручную и перебирать все имеющиеся строки?
От ответов зависит алгоритм решения

Автор - Pelena
Дата добавления - 19.10.2018 в 20:16
_Boroda_ Дата: Пятница, 19.10.2018, 21:22 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13502
Репутация: 5526 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
TT, Off ... - у Вас не диапазоны Range, а массивы, поэтому нужно писать так
[vba]
Код
If TT(i, 1) <> 0 And Off(i, 1) <> 0 And PCIP(i, 1) <> 0 And ACIP(i, 1) <> 0 And Tender(i, 1) <> 0 And Contr(i, 1) <> 0 And Impl(i, 1) <> 0 Then
St(i, 1) = "Выполнено"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеTT, Off ... - у Вас не диапазоны Range, а массивы, поэтому нужно писать так
[vba]
Код
If TT(i, 1) <> 0 And Off(i, 1) <> 0 And PCIP(i, 1) <> 0 And ACIP(i, 1) <> 0 And Tender(i, 1) <> 0 And Contr(i, 1) <> 0 And Impl(i, 1) <> 0 Then
St(i, 1) = "Выполнено"
[/vba]

Автор - _Boroda_
Дата добавления - 19.10.2018 в 21:22
MacLuck Дата: Суббота, 20.10.2018, 09:31 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем еще раз, добрый день.
Спасибо за пояснения.
На Worksheet_Change я пока что повесил другой макрос, и я банально не знаю как два макроса повесить на одно событие, пробывал через Call Macrosname что-то не получилось.
Пока планирую сделать что при нажатии кнопоки(запуске макроса), марос пробегал по всем ячейкам и проверял/ставил статусы. (п.с. я думал что все отличие было бы в том что в полностью автоматическом случае макрос назывался бы Worksheet_Change ..., а в кнопочном Sub ProjectState(), или я не прав?)

Цитата
TT, Off ... - у Вас не диапазоны Range, а массивы, поэтому нужно писать так


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

Написал таким образом
[vba]
Код
Sub ProjectState()
Dim i As Integer
Dim TT As Variant 'Technical_task
Dim Off As Variant 'Offer
Dim PCIP As Variant 'Preparing_CIP
Dim ACIP As Variant 'Approved_CIP
Dim Tender As Variant 'Tender
Dim Contr As Variant 'Contract
Dim Impl As Variant 'Implementation
Dim St As Variant 'Status

TT = Range("AB4:AB350") '1
Off = Range("AC4:AC350") '2
PCIP = Range("AD4:AD350") '3
ACIP = Range("AE4:AE350") '4
Tender = Range("AF4:AF350") '5
Contr = Range("AG4:AG350") '6
Impl = Range("AH4:AH350") '7
St = Range("AA4:AA350") '8

For i = 1 To 300

If TT(i, 1).Value <> 0 And Off(i, 1).Value <> 0 And PCIP(i, 1).Value <> 0 And ACIP(i, 1).Value <> 0 And Tender(i, 1).Value <> 0 And Contr(i, 1).Value <> 0 And Impl(i, 1).Value <> 0 Then
St(i, 1).Value = "Выполнено"

End If
Next i
End Sub
[/vba]

Вылетает ошибка Run-time 424, объект не найден на следующей строке:

[vba]
Код
St(i, 1).Value = "Выполнено"
[/vba]


Сообщение отредактировал MacLuck - Суббота, 20.10.2018, 09:42
 
Ответить
СообщениеВсем еще раз, добрый день.
Спасибо за пояснения.
На Worksheet_Change я пока что повесил другой макрос, и я банально не знаю как два макроса повесить на одно событие, пробывал через Call Macrosname что-то не получилось.
Пока планирую сделать что при нажатии кнопоки(запуске макроса), марос пробегал по всем ячейкам и проверял/ставил статусы. (п.с. я думал что все отличие было бы в том что в полностью автоматическом случае макрос назывался бы Worksheet_Change ..., а в кнопочном Sub ProjectState(), или я не прав?)

Цитата
TT, Off ... - у Вас не диапазоны Range, а массивы, поэтому нужно писать так


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

Написал таким образом
[vba]
Код
Sub ProjectState()
Dim i As Integer
Dim TT As Variant 'Technical_task
Dim Off As Variant 'Offer
Dim PCIP As Variant 'Preparing_CIP
Dim ACIP As Variant 'Approved_CIP
Dim Tender As Variant 'Tender
Dim Contr As Variant 'Contract
Dim Impl As Variant 'Implementation
Dim St As Variant 'Status

TT = Range("AB4:AB350") '1
Off = Range("AC4:AC350") '2
PCIP = Range("AD4:AD350") '3
ACIP = Range("AE4:AE350") '4
Tender = Range("AF4:AF350") '5
Contr = Range("AG4:AG350") '6
Impl = Range("AH4:AH350") '7
St = Range("AA4:AA350") '8

For i = 1 To 300

If TT(i, 1).Value <> 0 And Off(i, 1).Value <> 0 And PCIP(i, 1).Value <> 0 And ACIP(i, 1).Value <> 0 And Tender(i, 1).Value <> 0 And Contr(i, 1).Value <> 0 And Impl(i, 1).Value <> 0 Then
St(i, 1).Value = "Выполнено"

End If
Next i
End Sub
[/vba]

Вылетает ошибка Run-time 424, объект не найден на следующей строке:

[vba]
Код
St(i, 1).Value = "Выполнено"
[/vba]

Автор - MacLuck
Дата добавления - 20.10.2018 в 09:31
nilem Дата: Суббота, 20.10.2018, 10:10 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1478
Репутация: 520 ±
Замечаний: 0% ±

Excel 2013
MacLuck, привет
скорее всего, так:


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеMacLuck, привет
скорее всего, так:

Автор - nilem
Дата добавления - 20.10.2018 в 10:10
MacLuck Дата: Суббота, 20.10.2018, 20:58 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
скорее всего, так:


Добрый день, спс, да работает
 
Ответить
Сообщение
скорее всего, так:


Добрый день, спс, да работает

Автор - MacLuck
Дата добавления - 20.10.2018 в 20:58
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ввод значения в ячейку в зависимости от значений других ячее (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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