Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24

Подскажите пожалуйста как на листе при нажатии на кнопку определить в какой ячейке она находится?

29.02.2016, 19:01. Показов 2835. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой код который работает, но добавляет строку там где выделена ячейка.
Мне необходимо определять в какой ячейке находится кнопка и ниже ее на строку вставлять строку с данными.
Помогите пожалуйста.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Private Sub CommandButton1_Click()
Dim numstrCBC1 As Integer
 
If (iii = 1) Then
    numstrCBC1 = ActiveCell.Row + 1
ElseIf (iii = 2) Then
    numstrCBC1 = ActiveCell.Row + 1
ElseIf (iii = 3) Then
    numstrCBC1 = ActiveCell.Row + 1
ElseIf (iii = 4) Then
    numstrCBC1 = ActiveCell.Row + 1
End If
 
If (Firma.Text = "" Or Vsego.Text = "" Or Summa.Text = "" Or Data_obr1.Text = "" Or Vsego1.Text = "" Or Svyshe3m.Text = "" Or Data_obr2.Text = "" Or Srok_vozv.Text = "" Or Provod_mer.Text = "") Then
    MsgBox ("Введите все обязательные поля")
    Exit Sub
Else
 
 
    Rows(numstrCBC1 & ":" & numstrCBC1).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A" & numstrCBC1 & ":I" & numstrCBC1).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
Worksheets("Справка 3").Cells(numstrCBC1, 1).Value = Firma.Text
Worksheets("Справка 3").Cells(numstrCBC1, 2).Value = Vsego.Text
Worksheets("Справка 3").Cells(numstrCBC1, 3).Value = Summa.Text
Worksheets("Справка 3").Cells(numstrCBC1, 4).Value = Data_obr1.Text
Worksheets("Справка 3").Cells(numstrCBC1, 5).Value = Vsego1.Text
Worksheets("Справка 3").Cells(numstrCBC1, 6).Value = Svyshe3m.Text
Worksheets("Справка 3").Cells(numstrCBC1, 7).Value = Data_obr2.Text
Worksheets("Справка 3").Cells(numstrCBC1, 8).Value = Srok_vozv.Text
Worksheets("Справка 3").Cells(numstrCBC1, 9).Value = Provod_mer.Text
   UserForm1.Hide
 
Worksheets("Справка 3").Cells(1, 10).Value = Worksheets("Справка 3").Cells(1, 10).Value + 1
Worksheets("Справка 3").Cells(2, 10).Value = Worksheets("Справка 3").Cells(2, 10).Value + 1
Worksheets("Справка 3").Cells(3, 10).Value = Worksheets("Справка 3").Cells(3, 10).Value + 1
Worksheets("Справка 3").Cells(4, 10).Value = Worksheets("Справка 3").Cells(4, 10).Value + 1
End If
 
End Sub
 
 
 
Private Sub UserForm_Activate()
 
Firma.Text = "1"
Vsego.Text = "1"
Summa.Text = "1"
Data_obr1.Text = "1"
Vsego1.Text = "1"
Svyshe3m.Text = "1"
Data_obr2.Text = "1"
Srok_vozv.Text = "1"
Provod_mer.Text = "1"
End Sub
 
 
 
Private Sub UserForm_Click()
 
End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2016, 19:01
Ответы с готовыми решениями:

Подскажите пожалуйста, как на форме запрогать кнопку, чтобы при нажатии открывалась вторая форма
Подскажите пожалуйста, как на форме запрогать кнопку, чтобы при нажатии открывалась вторая форма.

Подскажите пожалуйста,как C++ Builder реализовать данные сортровки,чтобы в StringGride при нажатии на кнопку был виден каждый этап сортировки
Подскажите пожалуйста,как реализовать данные сортровки,чтобы в StringGride при нажатии на кнопку был виден каждый этап сортировки. Во...

Реализовать клик по ссылке в зависимости от того, в какой ячейке таблицы она находится
Привет, вопрос такой: есть таблица, хочу что бы при клике был переход по ссылке, но если клик был на строку, кроме 2 последних ячеек...

13
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
29.02.2016, 22:21
Марат_407, если кнопка на листе, то CommandButton1.BottomRightCell.Row - номер строки ячейки, в которой находится нижний правый угол кнопки.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 08:11  [ТС]
Да, кнопка на листе
А как будет выглядеть код?
Я в программировании вообще ничего не соображаю.
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
01.03.2016, 08:53
в место этого
Visual Basic
1
numstrCBC1 = ActiveCell.Row + 1
пишем это
Visual Basic
1
numstrCBC1 = CommandButton1.BottomRightCell.Row + 1
п.с. избавьтесь от ненужных селектов
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 09:05  [ТС]
выходит ошибка Compile error:
Method or data member not found

и ссылается на строчку Private Sub CommandButton1_Click()
0
Заблокирован
01.03.2016, 09:42
Цитата Сообщение от Марат_407 Посмотреть сообщение
выходит ошибка Compile error:
Файл приложите. Гадать настроения нет.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 17:41  [ТС]
вот файл
Вложения
Тип файла: xls Оптимизация Расшифровки строк баланса_v2.xls (49.5 Кб, 5 просмотров)
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
01.03.2016, 18:05
для первой кнопки для остальных по аналогии
Visual Basic
1
2
3
4
5
6
Public numstrCBC1 As Integer
 
Sub Вызов_Формы1()
    numstrCBC1 = Sheets("Справка 3").Shapes("Button 9").BottomRightCell.Row + 1
    UserForm1.Show
End Sub
из кода в форме это
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
'Dim numstrCBC1 As Integer
 
'If (iii = 1) Then
'    numstrCBC1 = ActiveCell.Row + 1
'ElseIf (iii = 2) Then
'    numstrCBC1 = ActiveCell.Row + 1
'ElseIf (iii = 3) Then
'    numstrCBC1 = ActiveCell.Row + 1
'ElseIf (iii = 4) Then
'    numstrCBC1 = ActiveCell.Row + 1
'End If
убираем
п.с. у вас кнопка на две строчки.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 18:19  [ТС]
Не работает
Пишет Compile error:
Invalid attribute in Sub or Function

Вот начало кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub CommandButton1_Click()
Public numstrCBC1 As Integer
 
Sub Âûçîâ_Ôîðìû1()
    numstrCBC1 = Sheets("Ñïðàâêà 3").Shapes("Button 9").BottomRightCell.Row + 1
    UserForm1.Show
End Sub
 
 
If (Firma.Text = "" Or Vsego.Text = "" Or Summa.Text = "" Or Data_obr1.Text = "" Or Vsego1.Text = "" Or Svyshe3m.Text = "" Or Data_obr2.Text = "" Or Srok_vozv.Text = "" Or Provod_mer.Text = "") Then
    MsgBox ("Ââåäèòå âñå îáÿçàòåëüíûå ïîëÿ")
    Exit Sub
Else
 
 
    Rows(numstrCBC1 & ":" & numstrCBC1).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A" & numstrCBC1 & ":I" & numstrCBC1).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
01.03.2016, 18:26
не внимательны, вот смотрите Копия Оптимизация Расшифровки строк баланса_v2.xls
сделано только для первой кнопки.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 18:39  [ТС]
ооочень невнимателен...
Спасибо вам большое, выручили
кнопка только теперь на 2 строки, как ее сделать только на одну строку?
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
01.03.2016, 18:45
Цитата Сообщение от Марат_407 Посмотреть сообщение
как ее сделать только на одну строку?
или уменьшить ширину кнопки или увеличить ширину ячейки.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 24
01.03.2016, 22:32  [ТС]
это я понял...думал может быть можно как-то по координатам задать, чтоб красиво было.

Добавлено через 3 часа 37 минут
Добрый вечер.
У меня еще вопрос: Мне надо этот весь лист сделать закрытым для редактирования, кроме добавления по кнопке.
Делаю защитить лист, ставлю нужные параметры, при добавлении ругается Run time error "1004":
Метод Insert из класса Range завершен неверно.
Снимаю защиту листа все работает.
Помогите пожалуйста настроить.
0
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
02.03.2016, 09:06
нужно в коде в начале снимать защиту выполнить код и потом обратно поставить. поищите по сайту данная тема не раз обсуждалась.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2016, 09:06
Помогаю со студенческими работами здесь

Как сделать, чтобы при нажатии на кнопку она переместилась в любое место формы!
Как сделать, чтобы при нажатии на кнопку она переместилась в любое место формы!Но только чтобы она не выходила за пределы формы.

На определенном листе при нажатии на кнопку выводить окно поиска
Помогите пожалуйста, нужно чтоб на определенном листе при нажатии на кнопку выходило кно поиска, пробую этот код, но он ищет по всем...

При нажатии на кнопку Delete на определенной ячейке
У меня был вопрос, на который мне помогли найти ответ. Вопрос звучал так: "У меня есть два столбца , в которых построчно хранятся данные: ...

При нажатии на кнопку, она исчезает
Очень нужно реализовать такую вещь. Нужно чтобы при нажатии на кнопку в форме, эта же кнопка становилась невидимой. Можно ли это...

Подскажите, как настроить webbrowser1, чтобы при нажатии на ссылку, она открывалась в браузере по умолчанию
Привет всем! Подскажите как настроить webbrowser1 чтобы при нажатии на ссылку она открывалась в браузере по умолчанию или хотя бы в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru