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

Вход

Регистрация

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

 

= Мир MS Excel/Автозаполнение ячеек с несколькими условиями - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автозаполнение ячеек с несколькими условиями (Макросы/Sub)
Автозаполнение ячеек с несколькими условиями
Мурад Дата: Среда, 26.11.2014, 15:02 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Добрый день! С Вашей помощью учусь программированию в среде VBA. По работе часто возникают задачи, когда нужно выполнить много однотипных действий, а знания в области VBA пока на начальном уровне. В данный момент думаю над следующей задачей. Как заполнить наименования должностей работников, отмеченных желтым цветом, напротив каждой ФИО? Убедился, что формула
Код
=если(C6<>"";A6;"")
, протянутая вниз, меня не спасет))) Как это сделать по-человечески в Вашем профессиональном понимании? Заранее спасибо!
К сообщению приложен файл: ___-.xlsx (21.9 Kb)
 
Ответить
СообщениеДобрый день! С Вашей помощью учусь программированию в среде VBA. По работе часто возникают задачи, когда нужно выполнить много однотипных действий, а знания в области VBA пока на начальном уровне. В данный момент думаю над следующей задачей. Как заполнить наименования должностей работников, отмеченных желтым цветом, напротив каждой ФИО? Убедился, что формула
Код
=если(C6<>"";A6;"")
, протянутая вниз, меня не спасет))) Как это сделать по-человечески в Вашем профессиональном понимании? Заранее спасибо!

Автор - Мурад
Дата добавления - 26.11.2014 в 15:02
ikki Дата: Среда, 26.11.2014, 15:14 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
файл не оч.хорош
имеется в виду - выделение по столбцу A - что является названием подразделения. а что - названием должности, для VBA не вполне очевидно.
на что опираться?
на бледно-жёлтый цвет фона?
на наличие числа в столбце C?
на список должностей?


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениефайл не оч.хорош
имеется в виду - выделение по столбцу A - что является названием подразделения. а что - названием должности, для VBA не вполне очевидно.
на что опираться?
на бледно-жёлтый цвет фона?
на наличие числа в столбце C?
на список должностей?

Автор - ikki
Дата добавления - 26.11.2014 в 15:14
Cheshir0067 Дата: Среда, 26.11.2014, 15:26 | Сообщение № 3
Группа: Проверенные
Ранг: Новичок
Сообщений: 35
Репутация: 8 ±
Замечаний: 0% ±

Excel 2010
Код
= ЕСЛИ(C6<>"";A6;B5)

Есть ещё такой вариант. потом по С отфильтровать не пустые и удалить формулу из В
Это самый простой вариант.
А в целом согласен с ikki, вынесите фио в отдельный столбец, Вам будет несоизмеримо проще совершать какие либо действия с таблицей.


irelandzp@gmail.com

Сообщение отредактировал Cheshir0067 - Среда, 26.11.2014, 15:27
 
Ответить
Сообщение
Код
= ЕСЛИ(C6<>"";A6;B5)

Есть ещё такой вариант. потом по С отфильтровать не пустые и удалить формулу из В
Это самый простой вариант.
А в целом согласен с ikki, вынесите фио в отдельный столбец, Вам будет несоизмеримо проще совершать какие либо действия с таблицей.

Автор - Cheshir0067
Дата добавления - 26.11.2014 в 15:26
Мурад Дата: Среда, 26.11.2014, 15:27 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
ikki, спасибо за коммент! смотрите, макрос должен брать наименование должности (столбец A) напротив количества ставок по ШР (столбец С) и копировать его в столбец B до тех пор, пока не встретит новое значение в столбце С.
Резюмируем: заполняем все ячейки от B(m+1) до B(n-1) между C(m) и С(n) значениями из ячейки A(m)
 
Ответить
Сообщениеikki, спасибо за коммент! смотрите, макрос должен брать наименование должности (столбец A) напротив количества ставок по ШР (столбец С) и копировать его в столбец B до тех пор, пока не встретит новое значение в столбце С.
Резюмируем: заполняем все ячейки от B(m+1) до B(n-1) между C(m) и С(n) значениями из ячейки A(m)

Автор - Мурад
Дата добавления - 26.11.2014 в 15:27
alex1248 Дата: Среда, 26.11.2014, 15:29 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
должен брать

Но у вас есть еще синие строки, которые не должны заполняться и, кроме цвета, ничем не отличаются. А цвета у вас нестабильны. <_<


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Среда, 26.11.2014, 15:33
 
Ответить
Сообщение
должен брать

Но у вас есть еще синие строки, которые не должны заполняться и, кроме цвета, ничем не отличаются. А цвета у вас нестабильны. <_<

Автор - alex1248
Дата добавления - 26.11.2014 в 15:29
ikki Дата: Среда, 26.11.2014, 15:32 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
[vba]
Код
Sub t()
     For i = 6 To 309
         If IsEmpty(Range("c" & i)) Then Range("b" & i) = s Else s = Range("a" & i)
     Next
End Sub
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение[vba]
Код
Sub t()
     For i = 6 To 309
         If IsEmpty(Range("c" & i)) Then Range("b" & i) = s Else s = Range("a" & i)
     Next
End Sub
[/vba]

Автор - ikki
Дата добавления - 26.11.2014 в 15:32
Мурад Дата: Среда, 26.11.2014, 15:33 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Cheshir0067, Фио и Наименования отделов идут скопом в столбце A. Чтобы выделить ФИО в отдельный столбец, нужно долго выбирать каждую ячейку вручную, вырывая ФИО из столбца A
 
Ответить
СообщениеCheshir0067, Фио и Наименования отделов идут скопом в столбце A. Чтобы выделить ФИО в отдельный столбец, нужно долго выбирать каждую ячейку вручную, вырывая ФИО из столбца A

Автор - Мурад
Дата добавления - 26.11.2014 в 15:33
Мурад Дата: Среда, 26.11.2014, 15:37 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
ikki, 5 баллов!
Синие ячейки ерунда) Отделов, как правило, поменьше числом, чем сотрудников))) Удалю их вручную!)
 
Ответить
Сообщениеikki, 5 баллов!
Синие ячейки ерунда) Отделов, как правило, поменьше числом, чем сотрудников))) Удалю их вручную!)

Автор - Мурад
Дата добавления - 26.11.2014 в 15:37
ikki Дата: Среда, 26.11.2014, 15:41 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
с проверкой на цвет фона[vba]
Код
Sub t()
     For i = 6 To 309
         If Range("a" & i).Interior.Color <> 16751001 Then
             If IsEmpty(Range("c" & i)) Then Range("b" & i) = s Else s = Range("a" & i)
         End If
     Next
End Sub
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениес проверкой на цвет фона[vba]
Код
Sub t()
     For i = 6 To 309
         If Range("a" & i).Interior.Color <> 16751001 Then
             If IsEmpty(Range("c" & i)) Then Range("b" & i) = s Else s = Range("a" & i)
         End If
     Next
End Sub
[/vba]

Автор - ikki
Дата добавления - 26.11.2014 в 15:41
Мурад Дата: Среда, 26.11.2014, 15:56 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Вы не даете мне шанса поработать ручками))) Огромное спасибо! Все отлично работает.
 
Ответить
СообщениеВы не даете мне шанса поработать ручками))) Огромное спасибо! Все отлично работает.

Автор - Мурад
Дата добавления - 26.11.2014 в 15:56
Мурад Дата: Среда, 14.01.2015, 12:10 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
[vba]
Код
Sub t()
     Dim i As Integer, s As String
         For i = 4 To 735
         If IsEmpty(Range("d" & i)) Then Range("e" & i) = s Else s = Range("f" & i)
         End If
     Next
End Sub
[/vba]

почему-то при запуске макроса вылетает ошибка "End If without block If"... Что за ерунда, не знаете? Синтаксис ведь верный у функции
 
Ответить
Сообщение[vba]
Код
Sub t()
     Dim i As Integer, s As String
         For i = 4 To 735
         If IsEmpty(Range("d" & i)) Then Range("e" & i) = s Else s = Range("f" & i)
         End If
     Next
End Sub
[/vba]

почему-то при запуске макроса вылетает ошибка "End If without block If"... Что за ерунда, не знаете? Синтаксис ведь верный у функции

Автор - Мурад
Дата добавления - 14.01.2015 в 12:10
DJ_Marker_MC Дата: Среда, 14.01.2015, 12:35 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Уберите End If - он в этом коде лишний.

или так:

[vba]
Код
Sub t()
     Dim i As Integer, s As String
         For i = 4 To 735
         If IsEmpty(Range("d" & i)) Then  
          Range("e" & i) = s  
         Else  
          s = Range("f" & i)
         End If
     Next
End Sub
[/vba]


Сообщение отредактировал DJ_Marker_MC - Среда, 14.01.2015, 12:37
 
Ответить
СообщениеУберите End If - он в этом коде лишний.

или так:

[vba]
Код
Sub t()
     Dim i As Integer, s As String
         For i = 4 To 735
         If IsEmpty(Range("d" & i)) Then  
          Range("e" & i) = s  
         Else  
          s = Range("f" & i)
         End If
     Next
End Sub
[/vba]

Автор - DJ_Marker_MC
Дата добавления - 14.01.2015 в 12:35
Мурад Дата: Среда, 14.01.2015, 15:04 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация: 18 ±
Замечаний: 0% ±

Excel 2007
Все заработало, перенес строки и все... Хотя в VBA перенос строк не должен влиять на выполнение кода... Спасибо, Диджей!
 
Ответить
СообщениеВсе заработало, перенес строки и все... Хотя в VBA перенос строк не должен влиять на выполнение кода... Спасибо, Диджей!

Автор - Мурад
Дата добавления - 14.01.2015 в 15:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автозаполнение ячеек с несколькими условиями (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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