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

Вход

Регистрация

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

 

= Мир MS Excel/копирование макроса кнопки на другие листы - Мир MS Excel

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

2019
Как сделать, чтобы макрос кнопки работал на других листах, аналогично листу 2210
К сообщению приложен файл: 6677517.zip (75.4 Kb)


Vadym Gorokh
 
Ответить
СообщениеКак сделать, чтобы макрос кнопки работал на других листах, аналогично листу 2210

Автор - grh1
Дата добавления - 12.02.2017 в 13:50
KuklP Дата: Воскресенье, 12.02.2017, 14:49 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
И где там кнопка?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеИ где там кнопка?

Автор - KuklP
Дата добавления - 12.02.2017 в 14:49
KuklP Дата: Воскресенье, 12.02.2017, 15:01 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Можно убрать макросы со всех листов, а этот поместить в модуль книги:
[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim arr(), lr As Long, i As Long
    If Sh.Name = "база" Then Exit Sub
    If Target.Column < 4 Or Target.Column > 5 Then Exit Sub
    If Target.Row < 7 Or Target.Row > 30 Then Exit Sub
    r = Target.Row: c = Target.Column
    Select Case Target.Column
    Case 4
        lr = Sheets(1).Cells(Sheets(1).Rows.Count, "C").End(xlUp).Row
        arr() = Sheets(1).Range("C1:C" & lr).Value
    Case 5
        lr = Sheets(1).Cells(Sheets(1).Rows.Count, "D").End(xlUp).Row
        arr() = Sheets(1).Range("D1:D" & lr).Value
    End Select
    UserForm1.ListBox2.Clear
    For i = 2 To UBound(arr)
        If arr(i, 1) <> "" Then
            UserForm1.ListBox2.AddItem arr(i, 1)
        End If
    Next i
    UserForm1.Show
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеМожно убрать макросы со всех листов, а этот поместить в модуль книги:
[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim arr(), lr As Long, i As Long
    If Sh.Name = "база" Then Exit Sub
    If Target.Column < 4 Or Target.Column > 5 Then Exit Sub
    If Target.Row < 7 Or Target.Row > 30 Then Exit Sub
    r = Target.Row: c = Target.Column
    Select Case Target.Column
    Case 4
        lr = Sheets(1).Cells(Sheets(1).Rows.Count, "C").End(xlUp).Row
        arr() = Sheets(1).Range("C1:C" & lr).Value
    Case 5
        lr = Sheets(1).Cells(Sheets(1).Rows.Count, "D").End(xlUp).Row
        arr() = Sheets(1).Range("D1:D" & lr).Value
    End Select
    UserForm1.ListBox2.Clear
    For i = 2 To UBound(arr)
        If arr(i, 1) <> "" Then
            UserForm1.ListBox2.AddItem arr(i, 1)
        End If
    Next i
    UserForm1.Show
End Sub
[/vba]

Автор - KuklP
Дата добавления - 12.02.2017 в 15:01
grh1 Дата: Воскресенье, 12.02.2017, 15:13 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Можно убрать макросы со всех листов, а этот поместить в модуль книги:

Сделал как Вы сказали - не работает...
При попытке ввести данные на каком-либо листе в столбцы D или Е - данные вводятся в первый (2210) лист.


Vadym Gorokh

Сообщение отредактировал grh1 - Воскресенье, 12.02.2017, 15:13
 
Ответить
Сообщение
Можно убрать макросы со всех листов, а этот поместить в модуль книги:

Сделал как Вы сказали - не работает...
При попытке ввести данные на каком-либо листе в столбцы D или Е - данные вводятся в первый (2210) лист.

Автор - grh1
Дата добавления - 12.02.2017 в 15:13
KuklP Дата: Воскресенье, 12.02.2017, 15:16 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А где об этом в теме? Я не умею угадывать мысли. И Вы не ответили на вопрос в №2. Что касается
данные вводятся в первый (2210) лист
, то макросы в листах никак не влияют на ввод данных.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеА где об этом в теме? Я не умею угадывать мысли. И Вы не ответили на вопрос в №2. Что касается
данные вводятся в первый (2210) лист
, то макросы в листах никак не влияют на ввод данных.

Автор - KuklP
Дата добавления - 12.02.2017 в 15:16
grh1 Дата: Воскресенье, 12.02.2017, 15:22 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
KuklP
Согласен - не совсем правильно выразился...
Не кнопка, а ФОРМА

Макрос на форме, позволяет вводить данные из базы в столбцы D и Е.
Мне нужно, чтобы и на других листах я мог заполнять столбцы D и Е посредством формы.


Vadym Gorokh
 
Ответить
СообщениеKuklP
Согласен - не совсем правильно выразился...
Не кнопка, а ФОРМА

Макрос на форме, позволяет вводить данные из базы в столбцы D и Е.
Мне нужно, чтобы и на других листах я мог заполнять столбцы D и Е посредством формы.

Автор - grh1
Дата добавления - 12.02.2017 в 15:22
KuklP Дата: Воскресенье, 12.02.2017, 15:23 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Поменяйте в коде формы sheets(2) на activesheet.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПоменяйте в коде формы sheets(2) на activesheet.

Автор - KuklP
Дата добавления - 12.02.2017 в 15:23
Karataev Дата: Воскресенье, 12.02.2017, 15:36 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
grh1, ответил здесь, т.к. не знал, что Вы создали новую тему: http://www.excelworld.ru/forum/10-32325-1
 
Ответить
Сообщениеgrh1, ответил здесь, т.к. не знал, что Вы создали новую тему: http://www.excelworld.ru/forum/10-32325-1

Автор - Karataev
Дата добавления - 12.02.2017 в 15:36
grh1 Дата: Воскресенье, 12.02.2017, 15:36 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Поменяйте в коде формы sheets(2) на activesheet.

Поменял.
Ничего не работает.
Когда оставил Ваш код в модуле, а включил закомментированные коды на листах - начало работать


Vadym Gorokh

Сообщение отредактировал grh1 - Воскресенье, 12.02.2017, 15:36
 
Ответить
Сообщение
Поменяйте в коде формы sheets(2) на activesheet.

Поменял.
Ничего не работает.
Когда оставил Ваш код в модуле, а включил закомментированные коды на листах - начало работать

Автор - grh1
Дата добавления - 12.02.2017 в 15:36
KuklP Дата: Воскресенье, 12.02.2017, 15:42 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Кто говорил о модуле? Я писал:
модуль книги
К сообщению приложен файл: 6228514.rar (32.8 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Воскресенье, 12.02.2017, 15:54
 
Ответить
СообщениеКто говорил о модуле? Я писал:
модуль книги

Автор - KuklP
Дата добавления - 12.02.2017 в 15:42
grh1 Дата: Воскресенье, 12.02.2017, 16:02 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Кто говорил о модуле?


Даже уже стыдно за свою невнимательность...(((

Всё работает отлично. Благодарю Вас.

Маленькое улучшение еще хотелось бы - я становлюсь в ячейку в столбце D, вставляю нужное (в форме данные столбца С базы) и тут-же перехожу в ячейку столбца Е чтобы вставить данные (в форме должны быть данные столбца D базы) а в форме еще данные столбца С базы. И мне приходится клацнуть мышкой где-нибудь сбоку потом опять в ту ячейку куда надо ввести данные и только после этих телодвижений в форме меняются данные на нужные. Можно что-нибудь с этим сделать?


Vadym Gorokh
 
Ответить
Сообщение
Кто говорил о модуле?


Даже уже стыдно за свою невнимательность...(((

Всё работает отлично. Благодарю Вас.

Маленькое улучшение еще хотелось бы - я становлюсь в ячейку в столбце D, вставляю нужное (в форме данные столбца С базы) и тут-же перехожу в ячейку столбца Е чтобы вставить данные (в форме должны быть данные столбца D базы) а в форме еще данные столбца С базы. И мне приходится клацнуть мышкой где-нибудь сбоку потом опять в ту ячейку куда надо ввести данные и только после этих телодвижений в форме меняются данные на нужные. Можно что-нибудь с этим сделать?

Автор - grh1
Дата добавления - 12.02.2017 в 16:02
Pelena Дата: Воскресенье, 12.02.2017, 16:16 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
grh1, какое отношение имеет Ваш новый вопрос к теме "копирование макроса кнопки на другие листы"
Прочитайте уже Правила форума


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеgrh1, какое отношение имеет Ваш новый вопрос к теме "копирование макроса кнопки на другие листы"
Прочитайте уже Правила форума

Автор - Pelena
Дата добавления - 12.02.2017 в 16:16
grh1 Дата: Воскресенье, 12.02.2017, 16:21 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Всем спасибо
Тема закрыта.


Vadym Gorokh
 
Ответить
СообщениеВсем спасибо
Тема закрыта.

Автор - grh1
Дата добавления - 12.02.2017 в 16:21
Wasilich Дата: Воскресенье, 12.02.2017, 17:17 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Цитата
Wasilich
Вы ошиблись темой
Я ошибся файлом. :) Может уже и не надо, но он же есть, а вдруг понадобится.
приходится клацнуть мышкой где-нибудь сбоку
[vba]
Код
Private Sub ListBox1_Click()
If ListBox1.ListCount > 0 And r * c > 0 Then
Sheets(2).Cells(r, c) = ListBox1.List(ListBox1.ListIndex)
Unload UserForm1 '.Hide
End If
End Sub
[/vba]
К сообщению приложен файл: grh12.xls (30.0 Kb)


Сообщение отредактировал Wasilich - Воскресенье, 12.02.2017, 17:24
 
Ответить
Сообщение
Цитата
Wasilich
Вы ошиблись темой
Я ошибся файлом. :) Может уже и не надо, но он же есть, а вдруг понадобится.
приходится клацнуть мышкой где-нибудь сбоку
[vba]
Код
Private Sub ListBox1_Click()
If ListBox1.ListCount > 0 And r * c > 0 Then
Sheets(2).Cells(r, c) = ListBox1.List(ListBox1.ListIndex)
Unload UserForm1 '.Hide
End If
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 12.02.2017 в 17:17
grh1 Дата: Воскресенье, 12.02.2017, 17:38 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 40% ±

2019
Wasilich
дело в том, что мне самому не нравится форма у меня в файле, но...
Ваш вариант - для маленьких таблиц 7-10строк...

А у меня в файле их 4-5 тысяч строк и если не будет ячейки ввода и отсева, то можно будет чокнуться, пока найдешь нужное.
Идеальный вариант, это как в Iphone5-6 поиск - вводишь любое слово и он по мере набора букв сужает диапазон поиска.


Vadym Gorokh
 
Ответить
СообщениеWasilich
дело в том, что мне самому не нравится форма у меня в файле, но...
Ваш вариант - для маленьких таблиц 7-10строк...

А у меня в файле их 4-5 тысяч строк и если не будет ячейки ввода и отсева, то можно будет чокнуться, пока найдешь нужное.
Идеальный вариант, это как в Iphone5-6 поиск - вводишь любое слово и он по мере набора букв сужает диапазон поиска.

Автор - grh1
Дата добавления - 12.02.2017 в 17:38
Wasilich Дата: Воскресенье, 12.02.2017, 19:53 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Ваш вариант - для маленьких таблиц 7-10строк...
Это откуда такая информация?
ПКМ - формат объекта -список по диапазону. Вот только нет возможности набором букв делать отбор.
 
Ответить
Сообщение
Ваш вариант - для маленьких таблиц 7-10строк...
Это откуда такая информация?
ПКМ - формат объекта -список по диапазону. Вот только нет возможности набором букв делать отбор.

Автор - Wasilich
Дата добавления - 12.02.2017 в 19:53
Pelena Дата: Воскресенье, 12.02.2017, 20:32 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Господа, Вы сейчас о чём?
Тема называется "копирование макроса кнопки на другие листы". См. пост 12


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеГоспода, Вы сейчас о чём?
Тема называется "копирование макроса кнопки на другие листы". См. пост 12

Автор - Pelena
Дата добавления - 12.02.2017 в 20:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » копирование макроса кнопки на другие листы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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