Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 15:26:06

Войти
Интересные и полезные статьи по работе с Excel и VBA можно найти в разделе ХИТРОСТИ
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Копирование текста с одной страницы на другую нажатием чекбокса.
Страниц: [1]   Вниз
Печать
Автор Тема: Копирование текста с одной страницы на другую нажатием чекбокса.  (Прочитано 4544 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenD3rty
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« : 27.09.2018, 21:40:46 »

Помогите пожалуйста разобраться с данной проблемой. У меня есть 2 Листа. На Листе 1 текст с CheckBox. Нужно сделать так, что бы при активации CheckBox, текст, который идет после него, копировался и вставлялся на Лист 2 в одну и ту же ячейку.

У меня получается так, что при нажатии на последующую кнопку затирает предыдущую вставку, как сделать что бы этого не происходило, а было последовательно, один пункт за другим.
Код: (vb)
Private Sub CheckBox12_Click()
If CheckBox12.Value = True Then

Worksheets("Лист1").Range("B12").Copy Worksheets("Лист2").Range("A23")

Else
CheckBox12.Value = False
Application.CutCopyMode = False
Worksheets("Лист2").Range("A23").ClearContents
End If
End Sub

Private Sub CheckBox11_Click()
If CheckBox11.Value = True Then

Worksheets("Лист1").Range("B11").Copy Worksheets("Лист2").Range("A23")

Else
CheckBox11.Value = False
Application.CutCopyMode = False
Worksheets("Лист2").Range("A23").ClearContents
End If

End Sub
« Последнее редактирование: 27.09.2018, 22:51:46 от vikttur » Записан
АП
Постоялец
***

Репутация: +19/-0
Офлайн Офлайн

Сообщений: 192


Просмотр профиля E-mail
« Ответ #1 : 27.09.2018, 22:50:25 »

Покажите в файле как было и как должно стать после активации  CheckBox
Т.е. пример.
Записан
DenD3rty
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #2 : 27.09.2018, 23:30:57 »

Не получается отправить сам файл (слишком большой).
Нужно что бы при нажатии на кнопку текст рядом с ячейкой вставлялся на страницу 2, в клетку A23. И наоборот если снять галочку отменить вставку.
У меня проблема в том, что при нажатии на каждую последующую тест заменяется, а нужно что бы он шел последовательно.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #3 : 28.09.2018, 00:30:17 »

А тут и не нужен Ваш "слишком большой" рабочий файл. Пмогающим терять время на копании в большом массиве ненужной информации? Создайте небольшой пример.
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #4 : 28.09.2018, 08:59:30 »

Если ваш код рабочий, то под ваши условия он будет выглядеть так:
Код: (vb)
Sub CheckBox11_Click()
    Dim sVal$: sVal = " " & Worksheets("Лист1").Range("B11")
    With Worksheets("Лист2").Range("A23")
        If CheckBox11.Value = True Then
            .Value = .Value & sVal
        Else
            .Value = VBA.Replace(.Value, sVal, "")
        End If
    End With
End Sub
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

DenD3rty
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #5 : 28.09.2018, 10:12:21 »

Вот так примерно должно работать, но у меня теперь не получается убирать текст выборочно, а убирается весь. То есть снял галочку и с A2 убрался текст, который идет после галочки, поставил появился. Вот такая механика должна быть.
« Последнее редактирование: 28.09.2018, 10:18:18 от DenD3rty » Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #6 : 28.09.2018, 10:22:35 »

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

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

DenD3rty
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #7 : 28.09.2018, 10:39:29 »

boa, это просто гениально, а можно немножко пояснения, почему with, и где можно про это почитать. Спасибо, большое, а то я уже и не знал где найти ответ.
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #8 : 28.09.2018, 11:02:47 »

у Гугла не спрашивали?
Оператор With... End With
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru