Прошу помощи в решении вопроса. Идея ввод данных через форму в таблицу. На одном из компьютеров в локальной сети находятся таблицы, а всем остальным нужно вводить данные через эту форму. Я новичок в макросах, поэтому начал с формы. Форма вроде получилась, но данные из нее вносятся в эту же самую книгу, а как сделать чтобы данные попадали из этой формы в таблицу находящуюся по локальной сети в другом компьютере для меня вопрос. В моей форме записан код, который при нажатии на CommandButton_SAVE размещает данные из TextBox по необходимым столбцам таблицы, причем на последнюю пустую строку. Ну вот как то так предполагается работа.... Я думаю многим это пригодится.
Вот код формы:
[vba]
Код
Private Sub CommandButton_SAVE_Click()
' proverka zapolnyaemosti formy Dim x As Control For Each x In Me.Controls If TypeOf x Is MSForms.TextBox Or TypeOf x Is MSForms.ComboBox Then If x.Value = "" Then MsgBox "Fill please " & x.Name: Exit Sub End If Next
Нужно все то же самое, но перенос данных на внешнюю таблицу.
[admin]Используйте теги при оформлении кода![/admin]
Доброго дня всем!
Прошу помощи в решении вопроса. Идея ввод данных через форму в таблицу. На одном из компьютеров в локальной сети находятся таблицы, а всем остальным нужно вводить данные через эту форму. Я новичок в макросах, поэтому начал с формы. Форма вроде получилась, но данные из нее вносятся в эту же самую книгу, а как сделать чтобы данные попадали из этой формы в таблицу находящуюся по локальной сети в другом компьютере для меня вопрос. В моей форме записан код, который при нажатии на CommandButton_SAVE размещает данные из TextBox по необходимым столбцам таблицы, причем на последнюю пустую строку. Ну вот как то так предполагается работа.... Я думаю многим это пригодится.
Вот код формы:
[vba]
Код
Private Sub CommandButton_SAVE_Click()
' proverka zapolnyaemosti formy Dim x As Control For Each x In Me.Controls If TypeOf x Is MSForms.TextBox Or TypeOf x Is MSForms.ComboBox Then If x.Value = "" Then MsgBox "Fill please " & x.Name: Exit Sub End If Next
Спасибо. Теперь выскакивают окна с запросом об обновлении и запрос о продолжении на предмет совместимости. Можно вписать в код чтобы на эти запросы выполнялись действия, дабы не выскакивало дополнительный окон.
Спасибо. Теперь выскакивают окна с запросом об обновлении и запрос о продолжении на предмет совместимости. Можно вписать в код чтобы на эти запросы выполнялись действия, дабы не выскакивало дополнительный окон.ac1-caesar
Private Sub CommandButton_SAVE_Click() Application.DisplayAlerts = False ' proverka zapolnyaemosti formy Dim x As Control For Each x In Me.Controls If TypeOf x Is MSForms.TextBox Or TypeOf x Is MSForms.ComboBox Then If x.Value = "" Then MsgBox "Fill please " & x.Name: Exit Sub End If Next
' perenos dannyh v tablicu Workbooks.Open ("Путь к файлу, в который сохраняем результат") With ИМЯ_КНИГИ_В_КОТОРУЮ_СОХРАНЯЕМ Dim iLastRow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iLastRow, 1) = iLastRow Cells(iLastRow, 2) = CDate(Me.ISSUE_DATE) Cells(iLastRow, 3) = Me.WO Cells(iLastRow, 4) = Me.TC Cells(iLastRow, 5) = Me.Description Cells(iLastRow, 6) = Me.REG_No Cells(iLastRow, 7) = Me.RESPONSIBLE_PERSON Cells(iLastRow, 8) = Me.ACCOMPLISHED_DATE End With Application.DisplayAlerts = True End Sub
[/vba]
В начале кода [vba]
Код
Application.DisplayAlerts = False
[/vba] В конце кода [vba]
Код
Application.DisplayAlerts = True
[/vba]
[vba]
Код
Private Sub CommandButton_SAVE_Click() Application.DisplayAlerts = False ' proverka zapolnyaemosti formy Dim x As Control For Each x In Me.Controls If TypeOf x Is MSForms.TextBox Or TypeOf x Is MSForms.ComboBox Then If x.Value = "" Then MsgBox "Fill please " & x.Name: Exit Sub End If Next
' perenos dannyh v tablicu Workbooks.Open ("Путь к файлу, в который сохраняем результат") With ИМЯ_КНИГИ_В_КОТОРУЮ_СОХРАНЯЕМ Dim iLastRow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iLastRow, 1) = iLastRow Cells(iLastRow, 2) = CDate(Me.ISSUE_DATE) Cells(iLastRow, 3) = Me.WO Cells(iLastRow, 4) = Me.TC Cells(iLastRow, 5) = Me.Description Cells(iLastRow, 6) = Me.REG_No Cells(iLastRow, 7) = Me.RESPONSIBLE_PERSON Cells(iLastRow, 8) = Me.ACCOMPLISHED_DATE End With Application.DisplayAlerts = True End Sub
Это понятно, но тогда эти запросы будут просто игнорироваться, а надо чтобы на запрос обновления была команда на обновление, на второй запрос соответственно.
Это понятно, но тогда эти запросы будут просто игнорироваться, а надо чтобы на запрос обновления была команда на обновление, на второй запрос соответственно.ac1-caesar