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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2009, 23:03   #1
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию Условие для макроса

Доброго суток.
Записал макрос, который берет число из ячейки и делает необходимые операции с ним. Потом следующее и так далее, но в некоторых ячейках чисел может и не быть, а макрос будет их оттуда брать. Как поставить условие, что бы еслии нету числа то макрос пропускал эту ячейку и все операции связанные с ней.
Так же условие по цвету. т.е. допустим красный цвет, не работает и выводит сообщение с текстом"бббббла"
Спасибо.

И еще один вопрос, тоже про условие макроса. В определенную ячейку вносим значение (допустим 1 или 2 или 3 или......), при нажатии кнопки для выполнения макроса, он взависимости от значения выполняет необходимое действие.

еще раз спасибо

Последний раз редактировалось sergiksergik; 16.05.2009 в 23:36.
sergiksergik вне форума Ответить с цитированием
Старый 17.05.2009, 02:55   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Как поставить условие, что бы еслии нету числа то макрос пропускал эту ячейку и все операции связанные с ней.
Так же условие по цвету. т.е. допустим красный цвет, не работает и выводит сообщение с текстом"бббббла"
Код:
Sub test()
    Dim cell As Range
    For Each cell In [a3:a33]
        If IsNumeric(cell) Then    ' в ячейке находится число
            cell.Next = cell * 2    ' в ячейку справа пишем число, умноженное на 2
        End If

        If Trim(cell.Value) <> "" Then   ' в ячейке находится число или текст
            cell.Next.Next = "ячейка непустая"

            If cell.Font.Color = vbRed Then    ' в ячейке цвет шрифта - красный
                cell.Font.Bold = True    ' выделяем ячейку жирным шрифтом
            End If

            If cell.Interior.Color = vbGreen Then    ' цвет заливки ячейки - зелёный
                cell = ""    ' очищаем ячейку
            End If
        End If
    Next
End Sub
Цитата:
В определенную ячейку вносим значение (допустим 1 или 2 или 3 или......), при нажатии кнопки для выполнения макроса, он взависимости от значения выполняет необходимое действие.
Код:
Sub test2()
    Select Case [d3].Value ' в зависимости от значения в ячейке d3
        Case 1: [d5] = "текст"
        Case 2: [d7] = "текст2"
        Case 3 To 5: [d5] = "текст345"
        Case Is > 14: [d5] = "число больше 14"
        Case Else: Макрос3
    End Select
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 17.05.2009, 20:16   #3
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Спасибо....
Буду пробовать..

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


help.rar
sergiksergik вне форума Ответить с цитированием
Старый 17.05.2009, 21:00   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Замените строки
Код:
    Dim iLastRow As Long
    iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(iLastRow + 1, 1) = Me.ComboBox3
    Cells(iLastRow + 2, 1) = CDbl(Me.TextBox2)
    Cells(iLastRow + 3, 1) = CInt(Me.ComboBox4)
на такие:
Код:
    Range("c65000").End(xlUp).Offset(1) = Me.ComboBox3
    Range("d65000").End(xlUp).Offset(1) = CDbl(Me.TextBox2)
    Range("e65000").End(xlUp).Offset(1) = CInt(Me.ComboBox4)
EducatedFool вне форума Ответить с цитированием
Старый 17.05.2009, 21:51   #5
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Огромное спасибо... Всегда выручаете...
sergiksergik вне форума Ответить с цитированием
Старый 23.05.2009, 20:46   #6
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Если ячейка А6 равна B4 то запускается Макрос 1
если нет то ничего

Помогите, как это написать?
sergiksergik вне форума Ответить с цитированием
Старый 23.05.2009, 20:50   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Если ячейка А6 равна B4 то запускается Макрос 1
если нет то ничего
Код:
If [a6] = [b4] Then Макрос1
EducatedFool вне форума Ответить с цитированием
Старый 23.05.2009, 20:51   #8
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

If [A6] = [A4] Then Application.Run "Макрос 1"
pivas вне форума Ответить с цитированием
Старый 23.05.2009, 20:54   #9
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

Почти догадался сам (Then не вставлял...)

Спасибо...
с меня за все пиво!!!!
sergiksergik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условие для файлов Nemesisking Общие вопросы Delphi 11 30.01.2009 09:20
Создание SetUp для макроса Romuald Microsoft Office Excel 3 06.06.2008 12:23