помогите в написание макроса необходимо на Лист2 при вводе значения ячейки таблице в столбце "С" проверить наличия значения на Лист1 в таблице столбца "В" и при наличии совпадения необходимо вставить "как значения" в таблицу на Лист2 напротив вводимой строки значения с таблицы Лист1 если совпадения не выявлено, то выводим сообщение "нет совпадения" и выполнение макроса останавливается.
Здравствуйте.
помогите в написание макроса необходимо на Лист2 при вводе значения ячейки таблице в столбце "С" проверить наличия значения на Лист1 в таблице столбца "В" и при наличии совпадения необходимо вставить "как значения" в таблицу на Лист2 напротив вводимой строки значения с таблицы Лист1 если совпадения не выявлено, то выводим сообщение "нет совпадения" и выполнение макроса останавливается.ko-diop
Karataev, большое спасибо за макрос. а можно подкорректировать макрос для страницы "результат" используя данные страницы "список" а можно добавить условие: проверить наличие данных в ячейке столбца "Категория" страницы "результат" - если ячейка не пустая то спрашивать "замену проводить", если да - то делается замена, если нет - ничего не делается.
заранее выношу благодарность. также за сделанный макрос. прикрепляю файл.
Karataev, большое спасибо за макрос. а можно подкорректировать макрос для страницы "результат" используя данные страницы "список" а можно добавить условие: проверить наличие данных в ячейке столбца "Категория" страницы "результат" - если ячейка не пустая то спрашивать "замену проводить", если да - то делается замена, если нет - ничего не делается.
заранее выношу благодарность. также за сделанный макрос. прикрепляю файл.ko-diop
Karataev, списибо. в макросе удалил строку. которая делает удаление данных. она ненужна. так как в те ячейки все равно делается копирование данных.
помогите что надо изменить в следующем макросе
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 Then If Not IsDate(Target.Value) Then ' Target.NumberFormat = "dd.mm.yyyy" Change BeforeDoubleClick Target.Value = Date End If End If End Sub
[/vba]
чтобы не проверялся весь столбец а только с 10 по 500 строку, и только туда вводились изменения.
и еще непонятно. почему при выделении диапазона с захватом 4 столбца происходит замена всего выделенного диапазона?
спасибо за макросссссс.
[moder]Обязательно используйте соответствующие теги при оформлении сообщений! кнопка #[/moder]
Karataev, списибо. в макросе удалил строку. которая делает удаление данных. она ненужна. так как в те ячейки все равно делается копирование данных.
помогите что надо изменить в следующем макросе
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 Then If Not IsDate(Target.Value) Then ' Target.NumberFormat = "dd.mm.yyyy" Change BeforeDoubleClick Target.Value = Date End If End If End Sub
[/vba]
чтобы не проверялся весь столбец а только с 10 по 500 строку, и только туда вводились изменения.
и еще непонятно. почему при выделении диапазона с захватом 4 столбца происходит замена всего выделенного диапазона?
спасибо за макросссссс.
[moder]Обязательно используйте соответствующие теги при оформлении сообщений! кнопка #[/moder]ko-diop
чтобы не проверялся весь столбец а только с 10 по 500 строку, и только туда вводились изменения.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("D10:D500")) Is Nothing Then Exit Sub End If If Target.Cells.Count > 1 Then Exit Sub End If If Not IsDate(Target.Value) Then ' Target.NumberFormat = "dd.mm.yyyy" Change BeforeDoubleClick Target.Value = Date End If End Sub
чтобы не проверялся весь столбец а только с 10 по 500 строку, и только туда вводились изменения.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("D10:D500")) Is Nothing Then Exit Sub End If If Target.Cells.Count > 1 Then Exit Sub End If If Not IsDate(Target.Value) Then ' Target.NumberFormat = "dd.mm.yyyy" Change BeforeDoubleClick Target.Value = Date End If End Sub
Karataev, изменения то что надо. способы я не путаю. один после ввода значения в ячейку, другой при выделении ячейки (диапазона). в моем варианте при выделении ячеек начиная с столбца 4 вводились значения во ввесь диапазон.
макрос работает очень хорошо. спасибо.
Karataev, изменения то что надо. способы я не путаю. один после ввода значения в ячейку, другой при выделении ячейки (диапазона). в моем варианте при выделении ячеек начиная с столбца 4 вводились значения во ввесь диапазон.
в excel vba нет инструмента,чтобы узнать, что было в ячейке .нужно делать какой-то код. например,куда-то будут записываться все действия,а потом брать оттуда данные
отменить действие можно так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value = 1 Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True End If End Sub
[/vba] в коде,если в ячейку введено 1,то будет отменено действие.
но Undo не всегда будет работать -после некоторых действий(не могу привести пример сейчас) Undo не работает
в excel vba нет инструмента,чтобы узнать, что было в ячейке .нужно делать какой-то код. например,куда-то будут записываться все действия,а потом брать оттуда данные
отменить действие можно так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value = 1 Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True End If End Sub
[/vba] в коде,если в ячейку введено 1,то будет отменено действие.
но Undo не всегда будет работать -после некоторых действий(не могу привести пример сейчас) Undo не работаетKarataev
Сообщение отредактировал Karataev - Воскресенье, 11.01.2015, 22:46
If IsEmpty(Cells(Target.Row, "F").Value) = False Then If MsgBox("так/ні", vbYesNo + vbQuestion) = vbNo Then ' Application.Undo Exit Sub End If Cells(Target.Row, "F").Resize(1, 3).ClearContents End If
[/vba]
не выходит с MsgBox при нажатии на "нет" хотя меняет значение ячейки
[moder]Похоже, что мое замечание про "оформление тегами обязательно" было зря? Бан 2 часа![/moder]
Karataev, [vba]
Код
If IsEmpty(Cells(Target.Row, "F").Value) = False Then If MsgBox("так/ні", vbYesNo + vbQuestion) = vbNo Then ' Application.Undo Exit Sub End If Cells(Target.Row, "F").Resize(1, 3).ClearContents End If
[/vba]
не выходит с MsgBox при нажатии на "нет" хотя меняет значение ячейки
[moder]Похоже, что мое замечание про "оформление тегами обязательно" было зря? Бан 2 часа![/moder]ko-diop
Сообщение отредактировал DJ_Marker_MC - Понедельник, 12.01.2015, 11:12