Подскажите пожалуйста. Есть таблица с набором цифр. Цифры необходимо выбирать в порядке возрастания от 1 до 25 на черном фоне. При нажати на цифру 1 она копируется в ячейку I1, при нажатии на 2 - I2 и т.д. Можно ли как то сделать, что бы если нажал 1,2,3,4, а 5 пропустил, то 6 и последующие цифры не копировались пока не будет нажата цифра 5
Подскажите пожалуйста. Есть таблица с набором цифр. Цифры необходимо выбирать в порядке возрастания от 1 до 25 на черном фоне. При нажати на цифру 1 она копируется в ячейку I1, при нажатии на 2 - I2 и т.д. Можно ли как то сделать, что бы если нажал 1,2,3,4, а 5 пропустил, то 6 и последующие цифры не копировались пока не будет нажата цифра 5ivstepa
ivstepa, Здравствуйте. Для выполнения условия задачи я осмелился чуть сократить Ваш код: модуль Лист1 теперь выглядит так - [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Interior.Color = 0 Then If Target = T + 1 Then Target.Copy Cells((T Mod 7) + 1, 9 + (T \ 7)) T = T + 1 End If End If End Sub
[/vba] модуль Module1 так - [vba]
Код
Global T& Sub Очистить() ' ' Очистить Макрос '
' T = O With Range("I1:L7") '.Select With .Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With With .Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With .ClearContents End With End Sub
[/vba]
ivstepa, Здравствуйте. Для выполнения условия задачи я осмелился чуть сократить Ваш код: модуль Лист1 теперь выглядит так - [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Interior.Color = 0 Then If Target = T + 1 Then Target.Copy Cells((T Mod 7) + 1, 9 + (T \ 7)) T = T + 1 End If End If End Sub
[/vba] модуль Module1 так - [vba]
Код
Global T& Sub Очистить() ' ' Очистить Макрос '
' T = O With Range("I1:L7") '.Select With .Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With With .Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With .ClearContents End With End Sub
кстати, теперь вы можете менять положение черного и белого, а также расположение чисел. Лишь бы последовательность 1-25 в чёрном присутствовала. Жёсткой привязки к адресам больше нет!
кстати, теперь вы можете менять положение черного и белого, а также расположение чисел. Лишь бы последовательность 1-25 в чёрном присутствовала. Жёсткой привязки к адресам больше нет!Апострофф
Сообщение отредактировал Апострофф - Среда, 01.07.2020, 12:18
Вставил ваш код, нажимаю на 1 - копируется и все, остальное не хочет, что не так. Ругается на If Target = T + 1 Then runtime error 13 type mismatch У меня с макросами туговато.
Вставил ваш код, нажимаю на 1 - копируется и все, остальное не хочет, что не так. Ругается на If Target = T + 1 Then runtime error 13 type mismatch У меня с макросами туговато.ivstepa
Лист1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Interior.Color = 255 Then If Target = T - 1 Then Target.Copy Cells((T Mod 7) + 1, 9 + (T \ 7)) T = T - 1 End If End If End Sub
'Module1 Global T&
Sub Очистить() T = 25 With Range("I1:L7") '.Select With .Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With With .Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With .ClearContents End With End Sub
[/vba]
[vba]
Код
Лист1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Interior.Color = 255 Then If Target = T - 1 Then Target.Copy Cells((T Mod 7) + 1, 9 + (T \ 7)) T = T - 1 End If End If End Sub
'Module1 Global T&
Sub Очистить() T = 25 With Range("I1:L7") '.Select With .Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With With .Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With .ClearContents End With End Sub