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

Вход

Регистрация

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

 

= Мир MS Excel/Несколько условий в условии - Мир MS Excel

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

Excel 2010
Доброго времени суток, УВАЖАЕМЫЕ =)
В общем помогите создать условие с условиями...

Часть работает корректно отдельно
[vba]
Код

Sub _______

Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt*" Or con.Name Like "cb*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
         If st <> "" Then
             MsgBox "Не заполнены следующие поля:" & st
         Else
         MsgBox "Здесь продолжается выполнеия условия1"
         End If

End sub
[/vba]

Задача у меня создать условие, при котором вышеупомянутое условие выполнялось.

[vba]
Код


Private Sub CommandButton1_Click()

'Условие при включенном чек боксе

If CheckBox1.Value = True Then
'__________________________
         Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt*" Or con.Name Like "cb*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
         If st <> "" Then
             MsgBox "Не заполнены следующие поля:" & st
         Else
         MsgBox "Здесь продолжается выполнение условия 1"
         End If
'Условие при выключенном чекбоксе
    Next
        Else
        CheckBox1.Value = False
'__________________________
        Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt1*" Or con.Name Like "cb1*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
        If st <> "" Then
        MsgBox "Не заполнены следующие поля:" & st
        Else
        MsgBox "Здесь продолжается выполнение условия я"
        End If
             
End Sub
[/vba]

Наверняка куча ошибок, может ранее и удалось написать более менее корректное действие но оно все ровно не выполнялось, это уже последний способ был который выложил.

Для включения формы кнопка на листе

P.S. Поясню задачу при первом условии проверяются ТextBox-ы (с началом txt) и если они пусты, то выводиться в сообщении список тэгов ТextBox-ов, при
втором условии ТextBox-ы (с началом txt1) и если они пусты, то выводиться в сообщении список тэгов ТextBox-ов
К сообщению приложен файл: 6834226.xls (52.0 Kb)


О-па! 0_o

Сообщение отредактировал televnoy - Вторник, 18.04.2017, 12:45
 
Ответить
СообщениеДоброго времени суток, УВАЖАЕМЫЕ =)
В общем помогите создать условие с условиями...

Часть работает корректно отдельно
[vba]
Код

Sub _______

Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt*" Or con.Name Like "cb*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
         If st <> "" Then
             MsgBox "Не заполнены следующие поля:" & st
         Else
         MsgBox "Здесь продолжается выполнеия условия1"
         End If

End sub
[/vba]

Задача у меня создать условие, при котором вышеупомянутое условие выполнялось.

[vba]
Код


Private Sub CommandButton1_Click()

'Условие при включенном чек боксе

If CheckBox1.Value = True Then
'__________________________
         Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt*" Or con.Name Like "cb*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
         If st <> "" Then
             MsgBox "Не заполнены следующие поля:" & st
         Else
         MsgBox "Здесь продолжается выполнение условия 1"
         End If
'Условие при выключенном чекбоксе
    Next
        Else
        CheckBox1.Value = False
'__________________________
        Dim st As String
         st = ""
         For Each con In Me.Controls
         If con.Name Like "txt1*" Or con.Name Like "cb1*" Then
         If con.Text = "" Then st = st & vbCr & con.Tag
         End If
        Next
        If st <> "" Then
        MsgBox "Не заполнены следующие поля:" & st
        Else
        MsgBox "Здесь продолжается выполнение условия я"
        End If
             
End Sub
[/vba]

Наверняка куча ошибок, может ранее и удалось написать более менее корректное действие но оно все ровно не выполнялось, это уже последний способ был который выложил.

Для включения формы кнопка на листе

P.S. Поясню задачу при первом условии проверяются ТextBox-ы (с началом txt) и если они пусты, то выводиться в сообщении список тэгов ТextBox-ов, при
втором условии ТextBox-ы (с началом txt1) и если они пусты, то выводиться в сообщении список тэгов ТextBox-ов

Автор - televnoy
Дата добавления - 18.04.2017 в 12:27
_Boroda_ Дата: Вторник, 18.04.2017, 13:14 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если честно, я не очень понял Ваше пожелание. Может, вот так?
[vba]
Код
Private Sub CommandButton1_Click()
    Dim st As String
    If CheckBox1.Value = True Then
        For Each con In Me.Controls
            If con.Name Like "txt*" Or con.Name Like "cb*" Then
                If con.Text = "" Then st = st & vbCr & con.Tag
            End If
        Next
        If st <> "" Then
            MsgBox "Не заполнены следующие поля:" & st
        Else
            MsgBox "Здесь продолжается выполнеия условия1"
        End If
    Else
        st = ""
        For Each con In Me.Controls
            If con.Name Like "txt1*" Or con.Name Like "cb1*" Then
                If con.Text = "" Then st = st & vbCr & con.Tag
            End If
        Next
        If st <> "" Then
            MsgBox "Не заполнены следующие поля:" & st
        Else
            MsgBox "Здесь продолжается выполнеия условия2"
        End If
    End If
End Sub
[/vba]
К сообщению приложен файл: 6834226_1.xls (48.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли честно, я не очень понял Ваше пожелание. Может, вот так?
[vba]
Код
Private Sub CommandButton1_Click()
    Dim st As String
    If CheckBox1.Value = True Then
        For Each con In Me.Controls
            If con.Name Like "txt*" Or con.Name Like "cb*" Then
                If con.Text = "" Then st = st & vbCr & con.Tag
            End If
        Next
        If st <> "" Then
            MsgBox "Не заполнены следующие поля:" & st
        Else
            MsgBox "Здесь продолжается выполнеия условия1"
        End If
    Else
        st = ""
        For Each con In Me.Controls
            If con.Name Like "txt1*" Or con.Name Like "cb1*" Then
                If con.Text = "" Then st = st & vbCr & con.Tag
            End If
        Next
        If st <> "" Then
            MsgBox "Не заполнены следующие поля:" & st
        Else
            MsgBox "Здесь продолжается выполнеия условия2"
        End If
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 18.04.2017 в 13:14
televnoy Дата: Вторник, 18.04.2017, 13:49 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемый _Boroda_, да почти. Только вот при выполнении 1 условия выводится как надо, сообщение об одном не заполненном, во втором об двух... =(


О-па! 0_o
 
Ответить
СообщениеУважаемый _Boroda_, да почти. Только вот при выполнении 1 условия выводится как надо, сообщение об одном не заполненном, во втором об двух... =(

Автор - televnoy
Дата добавления - 18.04.2017 в 13:49
_Boroda_ Дата: Вторник, 18.04.2017, 13:55 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Правильно. Как заказывали -
проверяются ТextBox-ы (с началом txt)

txt1 тоже начинается с txt
Попробуйте так
[vba]
Код
If con.Name Like "txt*" And Not con.Name Like "txt1*" Or con.Name Like "cb*" Then
[/vba]
Или перепишите txt1на что-то другое, например, на t1xt


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПравильно. Как заказывали -
проверяются ТextBox-ы (с началом txt)

txt1 тоже начинается с txt
Попробуйте так
[vba]
Код
If con.Name Like "txt*" And Not con.Name Like "txt1*" Or con.Name Like "cb*" Then
[/vba]
Или перепишите txt1на что-то другое, например, на t1xt

Автор - _Boroda_
Дата добавления - 18.04.2017 в 13:55
televnoy Дата: Вторник, 18.04.2017, 14:15 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, спасибо большое - пошел по пути наименьшего сопротивления, просто переименовал.

Тема закрыта.


О-па! 0_o
 
Ответить
Сообщение_Boroda_, спасибо большое - пошел по пути наименьшего сопротивления, просто переименовал.

Тема закрыта.

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

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