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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование в Excel 
:(
    Опции темы
2man
Дата 27.11.2005, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

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



Скажите мне пожалуйста обсолютно не разбираещемуся в VB с таким вопросом.
мне в Excel 2003 нужно вывести ячейку D1 в зависимости от значения ячейки A1, т.е. если значение A1 < 100, то вывести снизился на (100-А1)%, а если значение > 100, то вывести увеличился на (А1-100)%.
И тому подобное. Просто мне надо разобраться в самых азах, а остальное попробую уже сам догнать. Просьба, если ответите сделать это очень разборчиво. В принципе я знаю PHP, а все языки программирования чем-то похожи


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
CosmoMan
Дата 27.11.2005, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 12.7.2005
Где: Харьков

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



Вы имеете ввиду программирование макросов в помощью VB?
PM MAIL   Вверх
Alexandr87
Дата 27.11.2005, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

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



Код

Option Explicit

Private Sub CommandButton1_Click()
Dim inp As Integer 'объявляем переменную
inp = Cells(1, 1) 'берем значение из a1 cells(номер строки, номер столбца)
If (inp < 100) Then 'Сравниваем с помощью If
    'Теперь выводим в d1 необходимое. & - операция конкатенации. Типы преобразуются автоматом
    Cells(1, 4) = "Синизился на " & (100 - Cells(1, 1)) & "%"
Else
    Cells(1, 4) = "Увеличился на " & (100 - Cells(1, 1)) & "%"
End If

End Sub



Открываем новую книгу Excel
Из панели элементов управления кидаем кнопку на лист.
Дважды нажимаем на эту кнопку (или правой кнопкой - исходный текст)
Открывается окно редактора для VBA
В нем уже прописано
Код

Private Sub CommandButton1_Click()
End Sub

Это процедура, которая будет выполняться при клике мышью на кнопке.
В редакторе сразу над текстом - два комбо бокса.
В первом выбираем объект, во втором действие.
И он нам автоматически генерит функцию - которая будет вызываться при наступлении данного события.
Далее смотри в комментах кода.
Для того, чтобы на кнопку можно было нажать нужно выйти из режима конструктора, для этого на панели эдементов управления - есть соответствующая кнопка.
PM Jabber   Вверх
Staruha
Дата 27.11.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Есть еще формула =ЕСЛИ(сюда пишешь все ,что перечислил выше)
Формула вводится прямо в ячейку=ЕСЛИ(если да;если нет)


--------------------
Возмездие настигнет
PM MAIL   Вверх
2man
Дата 27.11.2005, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

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



Alexandr87, вроде понятно. VB я открыл, но у меня сразу не было никакой функции, а в списке из "родных" функций есть только действие на двойной клик и на клик правой кнопкой. А так думаю, что если руками прописать, то ничего страшного.
Я вписал эту функцию, что дальше делать н понял smile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Staruha
Дата 28.11.2005, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Ну хотя бы используй событие selectionChange к примеру.(Справа, чуть сверху выпадающий список).Хотя это для VBA

Это сообщение отредактировал(а) Staruha - 28.11.2005, 00:43


--------------------
Возмездие настигнет
PM MAIL   Вверх
2man
Дата 28.11.2005, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

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



Staruha, а для чего это. Изменить селекцию?


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Alexandr87
Дата 28.11.2005, 05:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

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



Это при изменении выделения. Была одна ячейка выделена, стала - другая. Тогда и вызывается функция.

Можешь отрыть excel, нажать alt+f11
Справа в окошке Project .....
Выбрать интерисующий лист.
Затем на основным полем редактора(для ввода текста) в левом комбобоксе выбрать worksheet, а в правом @selection change@
Он тебе нарисует, вот что.
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Теперь вставляешь ранее написанный код, получаешь

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim inp As Integer 'объявляем переменную
inp = Cells(1, 1) 'берем значение из a1 cells(номер строки, номер столбца)
If (inp < 100) Then 'Сравниваем с помощью If
    'Теперь выводим в d1 необходимое. & - операция конкатенации. Типы преобразуются автоматом
    Cells(1, 4) = "Синизился на " & (100 - Cells(1, 1)) & "%"
Else
    Cells(1, 4) = "Увеличился на " & (100 - Cells(1, 1)) & "%"
End If
End Sub


Теперь сохраняешь, переходишь в excel. Вводишь в a1 необходимое значение. И кликаешь мышью по любой другой ячейке.(изменяешь выделение).
PM Jabber   Вверх
Staruha
Дата 28.11.2005, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Цитата
Staruha, а для чего это. Изменить селекцию?

Тебе ко мне на сайт зайти надо.


--------------------
Возмездие настигнет
PM MAIL   Вверх
2man
Дата 28.11.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

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



Alexandr87, получилось. Спасибо огромное smile
Правда пришлось подправить 8 строку кода, но это не значительно


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Работа с MS Office"
mihanik staruha

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

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

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



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


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

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


 




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


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

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