Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: НЕ НАДО ИСПОЛЬЗОВАТЬ ПРОПИСНЫЕ БУКВЫ БЕЗ КРАЙНЕЙ НЕОБХОДИМОСТИ!
Старый 21.06.2013, 02:23   #1
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию Выпадающий список макросом

ПОМОГИТЕ ЛЮДИ ДОБРЫЕ И СНОВА СИНТАКСИС
Код:
     If Target.Row = 11 Then
       If Cells(10, Target.Column) = "УДМ" Then
       With iCommandBarPopup.Controls(1)
            .Clear
            Dim aCell As Range, a As Range
            
            Set a = Range(Cells(Sheets("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[C1] + 1, 22), Cells("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[D1] - 1, 22)
            
            For Each aCell In a
                If Application.IsText(aCell) Then
                   .AddItem Left(aCell, 255)
                End If
            Next
            Dim aPoint As POINTAPI
            GetCursorPos aPoint ''
            With .Parent
                 .Left = aPoint.X
                 .Top = aPoint.Y
                 .ShowPopup
            End With
       End With
       End If
       End If
МАКРОС РАБОТАЕТ,ТОЛЬКО НЕ МОГУ РАЗОБРАТСЯ С СИНТАКСИСОМ ЭТОГО КОДА C1 И D1 ПЕРЕМЕННЫЕ НА ДРУГОМ ЛИСТЕ ПОЛУЧЕННЫЕ ФОРМУЛОЙ СЧЕТА СТРОК
Код:
Range(Cells(Sheets("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[C1] + 1, 22), Cells("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[D1] - 1, 22)
С ЭТИМ КОДОМ РАБОТАЕТ
Код:
ЛИСТ18.Range("V83:V120")

Последний раз редактировалось VITA11111; 21.06.2013 в 02:25.
VITA11111 вне форума Ответить с цитированием
Старый 21.06.2013, 09:44   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

попробуйте написать так
Код:
With Sheets("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ")
        Set a = Range(.Cells(C1 + 1, 22), .Cells(D1 - 1, 22))
End With
кстати, никогда бы не догадался, что С1 и D1 переменные, да еще в обрамлении квадратных скобок.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 21.06.2013, 10:05   #3
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

попробывал снова ссылается на ошибку

Код:
  Set a = Range(.Cells(C1 + 1, 22), .Cells(D1 - 1, 22))
тут проблема такого плана
на листе "направленность занятий" находится диапазон строк в одном столбце куда записываются данные или массив
этот диапазон плавающий в зависимости сколько в него добавили строк
и этот же диапазон и является данными для выпадающего списка на другом листе

Последний раз редактировалось VITA11111; 21.06.2013 в 10:07.
VITA11111 вне форума Ответить с цитированием
Старый 21.06.2013, 11:08   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
попробывал снова ссылается на ошибку
в таком случае нужен файл-пример
так долго гадать можно
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 21.06.2013, 11:25   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

В ппримере от VictorM перед Range тоже точку нужно поставить.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.06.2013, 11:31   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

SAS888 - не нужно.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2013, 11:52   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Как это может работать, не понимаю...
Код:
Range(Cells(Sheets("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[C1] + 1, 22), Cells("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ").[D1] - 1, 22)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2013, 14:06   #8
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

Код:
 ЛИСТ18.Range("V43:V80")
ЭТО КОД ОТКУДА БЕРЕТСЯ СПИСОК ДЛЯ ВЫПАДАЮЩЕГО СПИСКА НА ЛИСТЕ 16 ("РАБОЧИЙ ПЛАН") С ПОМОЩЬЮ CommandBar


ЗНАЧЕНИЯ 43 И 80 ЯВЛЯЮТСЯ СТРОКАМИ ОТКУДА НАЧИНАЕТСЯ И ГДЕ ЗАКАНЧИВАЕТСЯ СПИСОК НА ЛИСТЕ 18 ("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ")
ОНИ ДОЛЖНЫ МЕНЯТСЯ , Т.К. В СПИСОК ДОБАВЛЯЕТСЯ ИЛИ УДАЛЯЮТСЯ НАИМЕНОВАНИЯ НА ЛИСТЕ 18 ("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ") СООТВЕТСТВЕННО ПОЛОЖЕНИЕ СТРОК СПИСКА МЕНЯЕТСЯ
ЭТОТ СПИСОК НАИМЕНОВАНИЙ ПОТОМ ОТКРЫВАЕТСЯ В ВЫПАДАЮЩЕМ СПИСКЕ НА ЛИСТЕ 16 ("РАБОЧИЙ ПЛАН")
ОНИ БЕРУТСЯ С ЛИСТА 18 ("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ") В ЯЧЕЙКАХ C1 B D1 КОТОРЫЕ ВЫЧЕСЛЯЮТСЯ ПО ФОРМУЛЕ СЧСТРОК НА ЛИСТЕ 18 ("НАПРАВЛЕННОСТЬ ЗАНЯТИЙ")
? КАК ЖЕ НАПИСАТЬ КОД? КОД НАХОДИТСЯ В МОДУЛЕ ЛИСТА 16 ("РАБОЧИЙ ПЛАН")

Последний раз редактировалось VITA11111; 21.06.2013 в 14:26.
VITA11111 вне форума Ответить с цитированием
Старый 21.06.2013, 20:31   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Стесняюсь спросить - Вы не дальтоник?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2013, 21:54   #10
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

Код:
        If Target.Row = 11 Then
       If Cells(10, Target.Column) = "УДМ" Then
       With iCommandBarPopup.Controls(1)
            .Clear
            Dim aCell As Range
            For Each aCell In лист18.Range("УДМ")
                If Application.IsText(aCell) Then
                   .AddItem Left(aCell, 255)
                End If
            Next
            Dim aPoint As POINTAPI
            GetCursorPos aPoint ''
            With .Parent
                 .Left = aPoint.X
                 .Top = aPoint.Y
                 .ShowPopup
            End With
       End With
       End If
       End If
разобрался
как все просто
взял просто "УДМ" именнованый диапазон который системно меняет количество строк

ВСТАВКИ СТРОКИ В НЕМ
СПАСИБО ВСЕМ
VITA11111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающий список. viktor22122 Помощь студентам 0 02.06.2013 09:20
Выпадающий список J4SSektor HTML и CSS 1 04.03.2013 08:42
Выпадающий список record222 HTML и CSS 5 17.06.2012 15:33
Выпадающий список Павел_Игоревич Помощь студентам 3 17.05.2011 23:29
Выпадающий список tsergey Помощь студентам 2 24.01.2010 15:34