Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение диапазона с элементами логики, Кто знает помогите! 
:(
    Опции темы
Displey
Дата 19.8.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 8.8.2005

Репутация: нет
Всего: нет



Доброе время суток!
У меня возникла такая проблема, поэтому и решился обратится к людям более знающим.
Мне нужно чтобы в диапазоне А2:А25 отржались значения в зависимости от того что написано в ячейке А1
Например А1= 1, тогда А2=х1, А3=х3,А4=х5 и если А1 = 2 тогда А2=н1 ,А3=н3, А4=н5. Проблема в том что диапазон немаленький и простыми экзелевскими формулами если комп грузить нехочется ((
PM MAIL   Вверх
Akina
Дата 19.8.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Сделай модуль. Напиши в нем функцию. Типа:

Код

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
Dim i As Integer
Dim Predicat As String
   If Sh.Name = "Лист1" Then
      If ((Source.Column = 1) AND (Source.Row = 1)) Then
         Select Case WorkSheets("Лист1").Range("A1").Value
            Case 1
               Predicat = "х"
            Case 2
               Predicat = "н"
            Case Else
               Exit Sub
         End Select
         For i = 2 to 25
            WorkSheets("Лист1").Range("A" & Trim(Str(i))).Value = Predicat & Trim(Str(i * 2 - 3))
         Next
      End If
   End If
End Sub


Правильность проверяй сам - писАл на коленке. То же касательно оптимизации.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Displey
Дата 19.8.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 8.8.2005

Репутация: нет
Всего: нет



Мне надо что-то вроде этого.

Чтобы когда СТ-001 то в определенной ячейке 50, если СТ-002 то 150 и т.д. выходило и так во всех ячейках . Критерием для условия служит строка № 4 и 6 взависимости какое там значение будет выбрано из списка в ячейке должно быть выведена цифра соотвествующая этим критериям .

Это сообщение отредактировал(а) Displey - 19.8.2005, 14:26

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  17.JPG 23,16 Kb
PM MAIL   Вверх
Akina
Дата 19.8.2005, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Displey
да какая разница? принцип от этого не меняется.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Displey
Дата 19.8.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 8.8.2005

Репутация: нет
Всего: нет



Akina
Дело в том что это макрос который проверит значение одной ячейки. а мне надо во всю таблицу . Там ячеек около 40-50 .
Конкретно говоря следущее:
1.Проверяет значение А1=Х? А2=Х1 если да то в ячейке А3 должно написатся 150 , если А1=Н1 и А2= Х1, то в ячейкее должно написатся 250. потом далее идет В1 и В2 , С и С2 .
Скорее всего сюда нужна персональная функция, но вот ее и не могу додумать (((
PM MAIL   Вверх
Akina
Дата 19.8.2005, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Displey
Ты чего, издеваешься? вместо
Код
Select Case WorkSheets("Лист1").Range("A1").Value
пишешь
Код
a=WorkSheets("Лист1").Range("A1").Value
b=WorkSheets("Лист1").Range("A2").Value
if a=1 and b=1 then
...
elseif a+b>5 then
   if a<3 then
   ...
   endif
...
elseif
.....
endif



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Displey
Дата 19.8.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 8.8.2005

Репутация: нет
Всего: нет



Akina
Нет я неиздеваюсь, просто от меня требуют то чего я незнаю, вот я и немогу точно сформулировать скорее свой вопрос (( Придется искать учебники для начинающих по VBA чтобы хоть толком понять что в скрипте написано , а не тупо скопировав работать. ((
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.