Вот, благодаря подсказке от RAN макрос FillComboBox сократился до двух строк [vba]
Код
Private Sub FillComboBox() cbFirma.List = Sheets(2).ListObjects("Названия").DataBodyRange.Value cbEmailFirma.List = Sheets(2).ListObjects("Статусы").DataBodyRange.Value End Sub
[/vba]
Вот, благодаря подсказке от RAN макрос FillComboBox сократился до двух строк [vba]
Код
Private Sub FillComboBox() cbFirma.List = Sheets(2).ListObjects("Названия").DataBodyRange.Value cbEmailFirma.List = Sheets(2).ListObjects("Статусы").DataBodyRange.Value End Sub
Вот, благодаря подсказке от RAN макрос FillComboBox сократился до двух строк
Вот это здорово!!! Т.е. как я понимаю, только эти две строки отвечают за содержимое данных в выпадающих списках и при добавлении мной нового поля выпадающего списка и прописывания данных макросов с соответствующими названиями, список будет такой-же как и эти?
Вот, благодаря подсказке от RAN макрос FillComboBox сократился до двух строк
Вот это здорово!!! Т.е. как я понимаю, только эти две строки отвечают за содержимое данных в выпадающих списках и при добавлении мной нового поля выпадающего списка и прописывания данных макросов с соответствующими названиями, список будет такой-же как и эти?OIU
Еще одна проблемка. С запретом на редактирование разобрались. Как отключить для этих полей (у которых запрещено редактирование), возможность перезаписи данных в ячейках? Просто получается то, что если добавляешь или редактируешь данные, после сохранения ячейки с формулами перезаписываются на обычный текст.
Еще одна проблемка. С запретом на редактирование разобрались. Как отключить для этих полей (у которых запрещено редактирование), возможность перезаписи данных в ячейках? Просто получается то, что если добавляешь или редактируешь данные, после сохранения ячейки с формулами перезаписываются на обычный текст.OIU
Достаточно в макросе SaveChanges удалить (или закомментировать) строчки, которые отвечают за перенос значений из формы на лист. Например, для адреса это будет строчка [vba]
Достаточно в макросе SaveChanges удалить (или закомментировать) строчки, которые отвечают за перенос значений из формы на лист. Например, для адреса это будет строчка [vba]
Достаточно в макросе SaveChanges удалить (или закомментировать) строчки, которые отвечают за перенос значений из формы на лист. Например, для адреса это будет строчка
Спасибо огромное!!! Даже не знаю что делал бы без вас.
Достаточно в макросе SaveChanges удалить (или закомментировать) строчки, которые отвечают за перенос значений из формы на лист. Например, для адреса это будет строчка
Спасибо огромное!!! Даже не знаю что делал бы без вас.OIU
А как задать изменение текста на кнопке "btnSave" по условию? Т.е. при отображении надписи "lblNenaiden" (которая отображается при условии если не найдено совпадений при введении названия фирмы и номера телефона), текст "Save" заменяется на текст "Добавить".
А как задать изменение текста на кнопке "btnSave" по условию? Т.е. при отображении надписи "lblNenaiden" (которая отображается при условии если не найдено совпадений при введении названия фирмы и номера телефона), текст "Save" заменяется на текст "Добавить".OIU
Я к форме добавил кнопку "добавить только паспорт". Будьте так добры, напишите код или отметьте те строки комментариями, которые отвечают за добавление информации из поля "cbFirma" и поля "tbTelefonFirma" в таблицу "Phonebook".
При нажатии на кнопку "добавить только паспорт", данные из полей "cbFirma" и "tbTelefonFirma" нужно добавить в столбцы "Тип паспорта" и "тип датчика", которые расположены в таблице "ТаблПаспорта" на втором листе. Только если там еще нет такого названия и номер. Заранее искренне вам благодарен!!! :respect: В файле исправлен код, который закрывает все книги без предупреждения. ПРОСТИТЕ! Я не знал этого.
Я к форме добавил кнопку "добавить только паспорт". Будьте так добры, напишите код или отметьте те строки комментариями, которые отвечают за добавление информации из поля "cbFirma" и поля "tbTelefonFirma" в таблицу "Phonebook".
При нажатии на кнопку "добавить только паспорт", данные из полей "cbFirma" и "tbTelefonFirma" нужно добавить в столбцы "Тип паспорта" и "тип датчика", которые расположены в таблице "ТаблПаспорта" на втором листе. Только если там еще нет такого названия и номер. Заранее искренне вам благодарен!!! :respect: В файле исправлен код, который закрывает все книги без предупреждения. ПРОСТИТЕ! Я не знал этого. OIU
При нажатии на кнопку "добавить только паспорт", данные из полей "cbFirma" и "tbTelefonFirma" нужно добавить в столбцы "Тип паспорта" и "тип датчика", которые расположены в таблице "ТаблПаспорта" на втором листе.
С этим я вроде как разобрался: [vba]
Код
Private Sub cbPasport_Click() Dim nr As Integer Dim rngTable As Range, rngName As Range Dim tmpFirma As String Dim tmptelefonFirma As String Dim tmpOffset As Integer
Set rngTable = Range("ТаблПаспорта[#all]") Set rngName = Range("Названия[#all]") flag = 0 For i = 2 To rngName.Rows.Count If rngName.Cells(i, 1) = cbFirma.Value Then flag = 1 Next i If flag = 0 Then rngName.Cells(rngName.Rows.Count, 1).Offset(1).Value = cbFirma.Value
nr = GetRowNumber(cbFirma.Value, tbTelefonFirma.Value) If nr = -1 Then nr = GetFreeNumber End If If nr = -1 Then nr = rngTable.Rows.Count tmpOffset = 1 End If
[/vba] Но вот только этот макрос, добавляет значения даже если такое название и номер есть. Это очень не есть хорошо. Уважаемые участники, без вас мне не разобраться.
При нажатии на кнопку "добавить только паспорт", данные из полей "cbFirma" и "tbTelefonFirma" нужно добавить в столбцы "Тип паспорта" и "тип датчика", которые расположены в таблице "ТаблПаспорта" на втором листе.
С этим я вроде как разобрался: [vba]
Код
Private Sub cbPasport_Click() Dim nr As Integer Dim rngTable As Range, rngName As Range Dim tmpFirma As String Dim tmptelefonFirma As String Dim tmpOffset As Integer
Set rngTable = Range("ТаблПаспорта[#all]") Set rngName = Range("Названия[#all]") flag = 0 For i = 2 To rngName.Rows.Count If rngName.Cells(i, 1) = cbFirma.Value Then flag = 1 Next i If flag = 0 Then rngName.Cells(rngName.Rows.Count, 1).Offset(1).Value = cbFirma.Value
nr = GetRowNumber(cbFirma.Value, tbTelefonFirma.Value) If nr = -1 Then nr = GetFreeNumber End If If nr = -1 Then nr = rngTable.Rows.Count tmpOffset = 1 End If
[/vba] Но вот только этот макрос, добавляет значения даже если такое название и номер есть. Это очень не есть хорошо. Уважаемые участники, без вас мне не разобраться. OIU
Почему бы не сделать это автоматом по аналогии с Названиями? Раз уж хочется кнопкой, то как-то так. Не знаю, как правильно добавлять значения в "умную" таблицу. Сделала, как с обычной [vba]
Код
Private Sub cbPasport_Click() Dim nr As Integer Dim rngTable As ListObject
Set rngTable = Sheets("Лист2").ListObjects("ТаблПаспорта") nr = rngTable.Range.Rows.Count
flag = 0 For i = 2 To nr If rngTable.Range.Cells(i, 1) = cbFirma.Value And rngTable.Range.Cells(i, 2) = tbTelefonFirma.Value Then flag = 1 Next i If flag = 0 Then rngTable.Range.Cells(nr, 1).Offset(1).Value = cbFirma.Value rngTable.Range.Cells(nr, 2).Offset(1).Value = tbTelefonFirma.Value MsgBox "Паспорт добавлен!" Else MsgBox "Паспорт найден в таблице!" End If End Sub
[/vba] [p.s.]И да, нейтрализуйте Вашу кнопку Закрыть, а то действительно вредительство какое-то[/p.s.]
Почему бы не сделать это автоматом по аналогии с Названиями? Раз уж хочется кнопкой, то как-то так. Не знаю, как правильно добавлять значения в "умную" таблицу. Сделала, как с обычной [vba]
Код
Private Sub cbPasport_Click() Dim nr As Integer Dim rngTable As ListObject
Set rngTable = Sheets("Лист2").ListObjects("ТаблПаспорта") nr = rngTable.Range.Rows.Count
flag = 0 For i = 2 To nr If rngTable.Range.Cells(i, 1) = cbFirma.Value And rngTable.Range.Cells(i, 2) = tbTelefonFirma.Value Then flag = 1 Next i If flag = 0 Then rngTable.Range.Cells(nr, 1).Offset(1).Value = cbFirma.Value rngTable.Range.Cells(nr, 2).Offset(1).Value = tbTelefonFirma.Value MsgBox "Паспорт добавлен!" Else MsgBox "Паспорт найден в таблице!" End If End Sub
[/vba] [p.s.]И да, нейтрализуйте Вашу кнопку Закрыть, а то действительно вредительство какое-то[/p.s.]Pelena
Pelena, сделайте пожалуйста, чтобы после нажатия на кнопку "внести изменения", данные в формах таблицы обновлялись. :victory: А можно удалять пустые макросы? [vba]
Код
Private Sub Frame5_Click()
End Sub
Private Sub Label29_Click()
End Sub
Private Sub lblNenaiden_Click()
End Sub
Private Sub tbAdresFirma_Change()
End Sub
Private Sub tbFamilia_K1_Change()
End Sub
Private Sub tbOtchestvo_K1_Change()
End Sub
[/vba] Что-то вроде этого...
Цитата
Не отразится ли это на работе остальных макросов в целом?
Вроде как не отразилось...
Pelena, сделайте пожалуйста, чтобы после нажатия на кнопку "внести изменения", данные в формах таблицы обновлялись. :victory: А можно удалять пустые макросы? [vba]
Код
Private Sub Frame5_Click()
End Sub
Private Sub Label29_Click()
End Sub
Private Sub lblNenaiden_Click()
End Sub
Private Sub tbAdresFirma_Change()
End Sub
Private Sub tbFamilia_K1_Change()
End Sub
Private Sub tbOtchestvo_K1_Change()
End Sub
[/vba] Что-то вроде этого...
Цитата
Не отразится ли это на работе остальных макросов в целом?