А кто это знать должен? Я не экстрасенс. Дописал в соответствии с описанием требуемых действий, заодно и лишнее убрал. [vba]
Код
Sub CheckBoxClic() xx = ActiveSheet.CheckBoxes(Application.Caller).Name GoSub Check_ Exit Sub Check_: With ActiveSheet Select Case xx Case "Check Box 1" .CheckBoxes("Check Box 2").Value = .CheckBoxes("Check Box 1").Value Case "Check Box 3" If .CheckBoxes(xx) = 1 Then ar = Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 4" a = .CheckBoxes(xx).Value If .CheckBoxes(xx) = 1 Then ar = Array(7, 9, 11) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 5" If .CheckBoxes(xx) = 1 Then ar = Array(8, 10, 12) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 7", "Check Box 9", "Check Box 11" ar = Array(7, 9, 11) If .CheckBoxes("Check Box " & ar(0)) = 1 And .CheckBoxes("Check Box " & ar(1)) = 1 And .CheckBoxes("Check Box " & ar(2)) = 1 Then .CheckBoxes("Check Box 4") = 1 xx = "Check Box 4" GoSub Check_ End If Case "Check Box 8", "Check Box 10", "Check Box 12" ar = Array(8, 10, 12) If .CheckBoxes("Check Box " & ar(0)) = 1 And .CheckBoxes("Check Box " & ar(1)) = 1 And .CheckBoxes("Check Box " & ar(2)) = 1 Then .CheckBoxes("Check Box 5") = 1 xx = "Check Box 5" GoSub Check_ End If End Select End With Return End Sub
А кто это знать должен? Я не экстрасенс. Дописал в соответствии с описанием требуемых действий, заодно и лишнее убрал. [vba]
Код
Sub CheckBoxClic() xx = ActiveSheet.CheckBoxes(Application.Caller).Name GoSub Check_ Exit Sub Check_: With ActiveSheet Select Case xx Case "Check Box 1" .CheckBoxes("Check Box 2").Value = .CheckBoxes("Check Box 1").Value Case "Check Box 3" If .CheckBoxes(xx) = 1 Then ar = Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 4" a = .CheckBoxes(xx).Value If .CheckBoxes(xx) = 1 Then ar = Array(7, 9, 11) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 5" If .CheckBoxes(xx) = 1 Then ar = Array(8, 10, 12) For i = 0 To UBound(ar) .CheckBoxes("Check Box " & ar(i)).Value = 1 Next End If Case "Check Box 7", "Check Box 9", "Check Box 11" ar = Array(7, 9, 11) If .CheckBoxes("Check Box " & ar(0)) = 1 And .CheckBoxes("Check Box " & ar(1)) = 1 And .CheckBoxes("Check Box " & ar(2)) = 1 Then .CheckBoxes("Check Box 4") = 1 xx = "Check Box 4" GoSub Check_ End If Case "Check Box 8", "Check Box 10", "Check Box 12" ar = Array(8, 10, 12) If .CheckBoxes("Check Box " & ar(0)) = 1 And .CheckBoxes("Check Box " & ar(1)) = 1 And .CheckBoxes("Check Box " & ar(2)) = 1 Then .CheckBoxes("Check Box 5") = 1 xx = "Check Box 5" GoSub Check_ End If End Select End With Return End Sub
Да, каюсь, сначала я сделал так, как, по моему разумению, это должно работать. Правда, тут возникла масса вопросов экстрасенсорного характера. Поэтому, подумав, решил, что инициатива наказуема, и переписал ровно так, как было заказано.
Да, каюсь, сначала я сделал так, как, по моему разумению, это должно работать. Правда, тут возникла масса вопросов экстрасенсорного характера. Поэтому, подумав, решил, что инициатива наказуема, и переписал ровно так, как было заказано.
Ох уж эти форумные коты, ... :-) Мне понравился рекурсивный вариант, но дыбы просто скорректировать то что вроде как не работало [vba]
Код
Sub CheckBoxClic() CB = ActiveSheet.Shapes(Application.Caller).Name
With ActiveSheet.CheckBoxes(CB) Select Case CB Case "Check Box 1" Case "Check Box 2" If ActiveSheet.CheckBoxes("Check Box 1").Value <> 1 Then _ .Value = False Case "Check Box 3" If .Value <> 1 Then For Each i In Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) ActiveSheet.CheckBoxes("Check Box " & i).Value = .Value Next End If Case "Check Box 4" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False If .Value <> 1 Then For Each i In Array(7, 9, 11) ActiveSheet.CheckBoxes("Check Box " & i).Value = False Next End If Case "Check Box 5" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False If .Value <> 1 Then For Each i In Array(8, 10, 12) ActiveSheet.CheckBoxes("Check Box " & i).DrawingObject.Value = False Next End If
Case "Check Box 6", "Check Box 13", "Check Box 14", "Check Box 15" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False Case "Check Box 7", "Check Box 9", "Check Box 11" If ActiveSheet.CheckBoxes("Check Box 4").Value <> 1 Then _ .Value = False Case "Check Box 8", "Check Box 10", "Check Box 12" If ActiveSheet.CheckBoxes("Check Box 5").Value <> 1 Then _ .Value = False End Select End With
[/vba]
Ох уж эти форумные коты, ... :-) Мне понравился рекурсивный вариант, но дыбы просто скорректировать то что вроде как не работало [vba]
Код
Sub CheckBoxClic() CB = ActiveSheet.Shapes(Application.Caller).Name
With ActiveSheet.CheckBoxes(CB) Select Case CB Case "Check Box 1" Case "Check Box 2" If ActiveSheet.CheckBoxes("Check Box 1").Value <> 1 Then _ .Value = False Case "Check Box 3" If .Value <> 1 Then For Each i In Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) ActiveSheet.CheckBoxes("Check Box " & i).Value = .Value Next End If Case "Check Box 4" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False If .Value <> 1 Then For Each i In Array(7, 9, 11) ActiveSheet.CheckBoxes("Check Box " & i).Value = False Next End If Case "Check Box 5" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False If .Value <> 1 Then For Each i In Array(8, 10, 12) ActiveSheet.CheckBoxes("Check Box " & i).DrawingObject.Value = False Next End If
Case "Check Box 6", "Check Box 13", "Check Box 14", "Check Box 15" If ActiveSheet.CheckBoxes("Check Box 3").Value <> 1 Then _ .Value = False Case "Check Box 7", "Check Box 9", "Check Box 11" If ActiveSheet.CheckBoxes("Check Box 4").Value <> 1 Then _ .Value = False Case "Check Box 8", "Check Box 10", "Check Box 12" If ActiveSheet.CheckBoxes("Check Box 5").Value <> 1 Then _ .Value = False End Select End With
Анlрей, ну смайл то не зря стоит. Я все нормально прочел. Если б не читал правильно то и обиду б на кривой код затаил :-)
Gold_Barsik, на самом деле Ваше "при включении флажка 3, включаются флажки 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" можно толковать по разному. Я понял как активирует и соответвенно при снятии флага производится очищение указанных Это исходя из связи первого и второго. Но можно и по другому понять, что при установке этого флага, все указнные тоже устанавливаются CheckAll. Что нужно - хз. в одном я солидарен с RAN, Вам нарисовали варианту, с которыми вы можете самостоятельно построить логику, которую хотите. Я вот даже вернулся к массиву с перечислением, хотя поначалу отказался в сторону цикла, но этот вариант позволяет более гибко делать перечисления.
Анlрей, ну смайл то не зря стоит. Я все нормально прочел. Если б не читал правильно то и обиду б на кривой код затаил :-)
Gold_Barsik, на самом деле Ваше "при включении флажка 3, включаются флажки 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" можно толковать по разному. Я понял как активирует и соответвенно при снятии флага производится очищение указанных Это исходя из связи первого и второго. Но можно и по другому понять, что при установке этого флага, все указнные тоже устанавливаются CheckAll. Что нужно - хз. в одном я солидарен с RAN, Вам нарисовали варианту, с которыми вы можете самостоятельно построить логику, которую хотите. Я вот даже вернулся к массиву с перечислением, хотя поначалу отказался в сторону цикла, но этот вариант позволяет более гибко делать перечисления.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Вторник, 01.10.2019, 22:15
Огромная благодарность и Вам bmv98rus, и Вам RAN, ну что с нас взять? Вот такие мы Обитатели.
RAN, [vba]
Код
сначала я сделал так, как, по моему разумению
[/vba] вот и нужно было в том же духе. [vba]
Код
возникла масса вопросов
[/vba], так не нужно стесняться, задавайте их. У меня в школе учителя были, так они только одни вопросы и задавали. Я уж начинал подумывать, может они знать ничего не знают . Но старался отвечать на все. За что и получал ... . [vba]
Код
Поэтому, подумав, решил, что инициатива наказуема, и переписал ровно так, как было
[/vba], ну это Вы совсем зря . [vba]
Код
можете переписывать по своему разумению
[/vba], ещё бы знать, что там нужно переписывать . [vba]
Код
К пуговицам претензии?
[/vba] нет, а вот кафтанчик-то без спинки сшит. Какой тут рекурсивный вариант, Я то CheckBox увидел только три дня назад! и догнал что это флажок по таджикски. [vba]
Код
Миша, где сказано, что нужно выполнять обратное действие?
[/vba], поэтому, подумав, решил, что инициатива наказуема, и оставил на Ваше решение.
bmv98rus, [vba]
Код
Я понял как....
[/vba], всё верно поняли. А если мне бы вбрендило что то в голову, так Я и переспросить смог бы. По роже все равно не дадут . [vba]
Код
Что нужно - хз
[/vba], так и я о том же. "Вот пуля пролетела и ага". Дело то тут ваще в докторах. Энто они ..... выявили диабет на конечной стадии. Не хватило 5 ммоль что бы ласты склеить. Вот теперь решил взять всё под свой контроль с божьей помощью ( bmv98rus, RAN). [vba]
Код
этот вариант позволяет более гибко делать перечисления
[/vba], от любой помощи не откажусь Я же хочу получить график на котором бы отображались данные самоконтроля при помощью глюкометра. А флажками включать (отображать точки на графике) /отключать эти данные для анализа. Т.е.: флажок 1 - кривая глюкозы; флажок 2 - прямая (т.к. среднее за период) гемоглобина, но если нет данных глюкозы, то нет и гемоглобина; флажок 3 - данные самоконтроля при помощи глюкометра (это точки на интерактивном графике) и вот здесь начинается: вкл флажок - отобразить все точки (флажки 4,5,6,7,8,9,10,11,12,13,14,15) за период дат, соответственно выкл. - отключить все точки. но если нужно знать данные до приема (флажок 4) или после приёма пищи (флажок 5) то включают свои диапазоны (7,9,11) (8,10,12), соответственно и выкл. флажок 6,13,14,15 не попадают в периоды до или после приёма пищи. это утром (6:00), перед сном (21:00), полночь (0:00), ночь (4:00) поэтому при включении: флажка 6 - включается флажок 3, но он уже не включает все флажки, при выкл. отключается только флажок 6 пока включён хоть один флажок в группе 6,7,8,9,10,11,12,13,14,15. то же самое 13,14,15 Ну вот как то так. На всякий случай прицеплю файл (рабочую версию) Ещё раз Огромное Вам спасибо!!! Жду Ваших предложений. И да, начальству, директору, декану и прочим мне этот файл не сдавать. Хочется довести его до ума прежде чем наступит Армагедон.
Огромная благодарность и Вам bmv98rus, и Вам RAN, ну что с нас взять? Вот такие мы Обитатели.
RAN, [vba]
Код
сначала я сделал так, как, по моему разумению
[/vba] вот и нужно было в том же духе. [vba]
Код
возникла масса вопросов
[/vba], так не нужно стесняться, задавайте их. У меня в школе учителя были, так они только одни вопросы и задавали. Я уж начинал подумывать, может они знать ничего не знают . Но старался отвечать на все. За что и получал ... . [vba]
Код
Поэтому, подумав, решил, что инициатива наказуема, и переписал ровно так, как было
[/vba], ну это Вы совсем зря . [vba]
Код
можете переписывать по своему разумению
[/vba], ещё бы знать, что там нужно переписывать . [vba]
Код
К пуговицам претензии?
[/vba] нет, а вот кафтанчик-то без спинки сшит. Какой тут рекурсивный вариант, Я то CheckBox увидел только три дня назад! и догнал что это флажок по таджикски. [vba]
Код
Миша, где сказано, что нужно выполнять обратное действие?
[/vba], поэтому, подумав, решил, что инициатива наказуема, и оставил на Ваше решение.
bmv98rus, [vba]
Код
Я понял как....
[/vba], всё верно поняли. А если мне бы вбрендило что то в голову, так Я и переспросить смог бы. По роже все равно не дадут . [vba]
Код
Что нужно - хз
[/vba], так и я о том же. "Вот пуля пролетела и ага". Дело то тут ваще в докторах. Энто они ..... выявили диабет на конечной стадии. Не хватило 5 ммоль что бы ласты склеить. Вот теперь решил взять всё под свой контроль с божьей помощью ( bmv98rus, RAN). [vba]
Код
этот вариант позволяет более гибко делать перечисления
[/vba], от любой помощи не откажусь Я же хочу получить график на котором бы отображались данные самоконтроля при помощью глюкометра. А флажками включать (отображать точки на графике) /отключать эти данные для анализа. Т.е.: флажок 1 - кривая глюкозы; флажок 2 - прямая (т.к. среднее за период) гемоглобина, но если нет данных глюкозы, то нет и гемоглобина; флажок 3 - данные самоконтроля при помощи глюкометра (это точки на интерактивном графике) и вот здесь начинается: вкл флажок - отобразить все точки (флажки 4,5,6,7,8,9,10,11,12,13,14,15) за период дат, соответственно выкл. - отключить все точки. но если нужно знать данные до приема (флажок 4) или после приёма пищи (флажок 5) то включают свои диапазоны (7,9,11) (8,10,12), соответственно и выкл. флажок 6,13,14,15 не попадают в периоды до или после приёма пищи. это утром (6:00), перед сном (21:00), полночь (0:00), ночь (4:00) поэтому при включении: флажка 6 - включается флажок 3, но он уже не включает все флажки, при выкл. отключается только флажок 6 пока включён хоть один флажок в группе 6,7,8,9,10,11,12,13,14,15. то же самое 13,14,15 Ну вот как то так. На всякий случай прицеплю файл (рабочую версию) Ещё раз Огромное Вам спасибо!!! Жду Ваших предложений. И да, начальству, директору, декану и прочим мне этот файл не сдавать. Хочется довести его до ума прежде чем наступит Армагедон.Gold_Barsik
Немного собрался с мыслями и вот что уменя получилось: [vba]
Код
Sub CheckBoxClic() With ActiveSheet xx = .CheckBoxes(Application.Caller).Name Select Case xx Case "Check Box 1" Case "Check Box 2" If ActiveSheet.Shapes("Check Box 1").DrawingObject.Value <> 1 Then _ .Value = False Case "Check Box 3" ar = Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 4" ar = Array(7, 9, 11) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 5" ar = Array(8, 10, 12) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next
[/vba]
Немного собрался с мыслями и вот что уменя получилось: [vba]
Код
Sub CheckBoxClic() With ActiveSheet xx = .CheckBoxes(Application.Caller).Name Select Case xx Case "Check Box 1" Case "Check Box 2" If ActiveSheet.Shapes("Check Box 1").DrawingObject.Value <> 1 Then _ .Value = False Case "Check Box 3" ar = Array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 4" ar = Array(7, 9, 11) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 5" ar = Array(8, 10, 12) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next
Case "Check Box 6" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 7" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 8" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 9" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 10" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next
[/vba]
[vba]
Код
Case "Check Box 6" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 7" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 8" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 9" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 10" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next
Case "Check Box 10" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 11" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 12" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 13" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 14" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 15" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next End Select End With End Sub
[/vba] Осталось совсем малость, найти ошибку у фл.2 и исправить огрехи. А именно: фл.2 - вкл. - выдаёт ошибку (галочку не ставить пока не будет включён фл.1), при выключении так же выбрасывает в ошибку [vba]
Код
Run-time error '438': (Ошибка времени выполнения '438') Object doesn't support this property or method (Объект не поддерживает это свойство или метод)
[/vba] фл.3 - вкл. - нормально; выкл. - нормально, но при выключении одного из флажков 6,7,8,9,10,11,12,13,14,15 отключается нужный, а
именно: при выкл. одного из фл.6,13,14,15 выключается фл.3, (не выкл. пока включён хотя бы один из фл. 4-15) при выкл. одного из фл.7,9,11 выключаются фл.3 и 4, (не выкл. пока включён хотя бы один из фл. 7,9,11) при выкл. одного из фл.8,10,12 выключаются фл.3 и 5, (не выкл. пока включён хотя бы один из фл. 8,10,12) Ну вроде бы и всё .
[vba]
Код
Case "Check Box 10" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 11" ar = Array(3, 4) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 12" ar = Array(3, 5) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 13" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 14" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next Case "Check Box 15" ar = Array(3) For Each ch In .CheckBoxes For i = 0 To UBound(ar) If Val(Mid(ch.Name, InStrRev(ch.Name, " "))) = ar(i) Then ch.Value = .CheckBoxes(Application.Caller).Value End If Next Next End Select End With End Sub
[/vba] Осталось совсем малость, найти ошибку у фл.2 и исправить огрехи. А именно: фл.2 - вкл. - выдаёт ошибку (галочку не ставить пока не будет включён фл.1), при выключении так же выбрасывает в ошибку [vba]
Код
Run-time error '438': (Ошибка времени выполнения '438') Object doesn't support this property or method (Объект не поддерживает это свойство или метод)
[/vba] фл.3 - вкл. - нормально; выкл. - нормально, но при выключении одного из флажков 6,7,8,9,10,11,12,13,14,15 отключается нужный, а
именно: при выкл. одного из фл.6,13,14,15 выключается фл.3, (не выкл. пока включён хотя бы один из фл. 4-15) при выкл. одного из фл.7,9,11 выключаются фл.3 и 4, (не выкл. пока включён хотя бы один из фл. 7,9,11) при выкл. одного из фл.8,10,12 выключаются фл.3 и 5, (не выкл. пока включён хотя бы один из фл. 8,10,12) Ну вроде бы и всё .Gold_Barsik
Уважаемый RAN, не соизволите разъяснить как работает Ваш макрос. Галочки в флажках я и так смог бы ставить. А вот с макросом не совсем понимаю. Вроде ставлю, а результата нет. В чём же секрет Вашего макроса? Вы пишите [vba]
Код
Дописал в соответствии с описанием требуемых действий, заодно и лишнее убрал.
[/vba] но на выходе (((
Уважаемый RAN, не соизволите разъяснить как работает Ваш макрос. Галочки в флажках я и так смог бы ставить. А вот с макросом не совсем понимаю. Вроде ставлю, а результата нет. В чём же секрет Вашего макроса? Вы пишите [vba]
Код
Дописал в соответствии с описанием требуемых действий, заодно и лишнее убрал.
Уважаемые форумчане! Здравствуйте! И всё таки, может кто нибудь помочь с этим злополучным макросом??? Я его и так и эдак, но не хочет работать. Может что-то не так делаю? Может он вовсе не для 2003? То флаги не переименовываются, то чек-боксы. Набрал новый Лист. Чистый. Только флаги и условия их работы (справа в трёх столбцах). Окажите посильную помощь несведущему в макросах. Пожалуйста! Заранее Спасибо!
Уважаемые форумчане! Здравствуйте! И всё таки, может кто нибудь помочь с этим злополучным макросом??? Я его и так и эдак, но не хочет работать. Может что-то не так делаю? Может он вовсе не для 2003? То флаги не переименовываются, то чек-боксы. Набрал новый Лист. Чистый. Только флаги и условия их работы (справа в трёх столбцах). Окажите посильную помощь несведущему в макросах. Пожалуйста! Заранее Спасибо!Gold_Barsik