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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2020, 12:56   #1
powerking11
Пользователь
 
Регистрация: 28.04.2016
Сообщений: 19
Восклицание Проблема с Checkbox , Нужна помощь

Особо не шарю в программировании, но хочу разобраться в макросе.
Есть 4 штуки Checkbox.
Сейчас в ячейку вводится только один Checkbox.
Как сделать, что бы при нажатии на Checkbox1, Checkbox2 и Checkbox3 значения вводились соответственно А,Б
И как сделать что бы буква "B" то есть Checkbox3 вводился с новой строки и "Г" Checkbox4.
При выборе всех Checkbox должно получится как на фото:
А,Б
В
Г


Код:
Private SUB CommandButton1_Click()
DIM LastRow AS LONG
LastRow = Cells(Rows.Count, 1).END(xlUp).Row
With Sheets("Лист1")
a = .Cells(2, 1)
    .Cells(LastRow + 1, 1) = a + 1
 
   IF CheckBox1.Value = True THEN
   .Cells(LastRow + 1, 2) = "А"
   END IF
    IF CheckBox2.Value = True THEN
   .Cells(LastRow + 1, 2) = "Б"
   END IF
 IF CheckBox3.Value = True THEN
   .Cells(LastRow + 1, 2) = "В"
   END IF
   IF CheckBox4.Value = True THEN
   .Cells(LastRow + 1, 2) = "Г"
   END IF
 
END With
END SUB
Изображения
Тип файла: jpg 1.JPG (13.1 Кб, 15 просмотров)
Вложения
Тип файла: rar Checkbox.rar (19.6 Кб, 6 просмотров)
powerking11 вне форума Ответить с цитированием
Старый 22.10.2020, 13:38   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Private Sub CommandButton1_Click()
    Dim LastRow As Long
    
    With Sheets("Лист1")
        Dim newValue
        LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        a = .Cells(2, 1)
        .Cells(LastRow + 1, 1) = a + 1
        
        If CheckBox1.Value = True Then
            .Cells(LastRow, 2) = "А"
        End If
        If CheckBox2.Value = True Then
            
            If .Cells(LastRow, 2) <> "" Then
                newValue = ", Б"
            Else
                newValue = "Б"
                
            End If
            .Cells(LastRow, 2) = .Cells(LastRow, 2) & newValue
        End If
        If CheckBox3.Value = True Then
            .Cells(LastRow, 2) = .Cells(LastRow, 2) & vbNewLine & "В"
        End If
        If CheckBox4.Value = True Then
            .Cells(LastRow, 2) = .Cells(LastRow, 2) & vbNewLine & "Г"
        End If
        
    End With
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 22.10.2020, 16:32   #3
powerking11
Пользователь
 
Регистрация: 28.04.2016
Сообщений: 19
По умолчанию

Aleksandr H., Спасибо большое!!!
Еще вопрос. Есть 3 textbox , нужно что бы при их заполнении каждый заполнял одну и ту же ячейку с новой строки.
Как это показано на фото.

Данный код заполняет только 3-тий textbox
Код:
Private Sub CommandButton1_Click()
    Dim LastRow As Long
    
    With Sheets("Ëèñò1")
        Dim newValue
        LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        a = .Cells(2, 1)
        .Cells(LastRow + 1, 1) = a + 1
        
        .Cells(LastRow + 1, 2) = TextBox1.Value
        .Cells(LastRow + 1, 2) = TextBox2.Value
        .Cells(LastRow + 1, 2) = TextBox3.Value
        
    End With
End Sub
Изображения
Тип файла: jpg Снимок.JPG (28.2 Кб, 13 просмотров)
powerking11 вне форума Ответить с цитированием
Старый 22.10.2020, 17:40   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

используйте такую строку:
Код:
 .Cells(LastRow + 1, 2) = TextBox1.Value & vblf & TextBox2.Value & vblf & TextBox3.Value
о, КорольСилы!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.10.2020, 09:34   #5
powerking11
Пользователь
 
Регистрация: 28.04.2016
Сообщений: 19
По умолчанию

IgorGO,Спасибо!!! работает!
А есть какой-то код, что бы ячейка раздвигалась если текст в неё не влазит?
powerking11 вне форума Ответить с цитированием
Старый 23.10.2020, 10:35   #6
powerking11
Пользователь
 
Регистрация: 28.04.2016
Сообщений: 19
По умолчанию Общий доступ к файлу

спасибо
powerking11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь с CheckBox allmost Общие вопросы Delphi 11 29.07.2016 17:03
Нужна помощь с checkbox и его состоянием Mik92 Общие вопросы Delphi 20 24.12.2014 18:15
проблема в коде .bat нужна помощь студенту abramovev Помощь студентам 0 28.01.2014 15:37
НЕ выдает результат. не могу понять в чем проблема. НУЖНА ПОМОЩЬ. freeyoungstrong Visual C++ 0 30.11.2013 22:40
Нужна помощь! Проблема с visual studio STill_ace Visual C++ 2 25.07.2009 21:44