Добрый день уважаемой публике. Помогите допилить код так чтобы он вставлял только значения а не ссылки на них, на сочинение нижеописанного потратил кучу времени, но вроде бы как копирует но только ссылки, наставте на путь истинный, ОТЦЫ.......... Заранее спасибо
[vba]
Код
Private Sub CommandButton1_Click() Dim i As Long Range("f9") = Now 'Worksheets("опыт").Range("A1:i47").PrintOut i = 1 + ThisWorkbook.Worksheets("история").Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox i Application.DisplayAlerts = False Application.ScreenUpdating = False 'ThisWorkbook.Sheets("опыт").Range("b3").Copy ThisWorkbook.Worksheets("история").Cells(ThisWorkbook.Worksheets("история").Cells.SpecialCells(xlCellTypeLastCell).Row, 1) ' попытался, но не взлетело
Добрый день уважаемой публике. Помогите допилить код так чтобы он вставлял только значения а не ссылки на них, на сочинение нижеописанного потратил кучу времени, но вроде бы как копирует но только ссылки, наставте на путь истинный, ОТЦЫ.......... Заранее спасибо
[vba]
Код
Private Sub CommandButton1_Click() Dim i As Long Range("f9") = Now 'Worksheets("опыт").Range("A1:i47").PrintOut i = 1 + ThisWorkbook.Worksheets("история").Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox i Application.DisplayAlerts = False Application.ScreenUpdating = False 'ThisWorkbook.Sheets("опыт").Range("b3").Copy ThisWorkbook.Worksheets("история").Cells(ThisWorkbook.Worksheets("история").Cells.SpecialCells(xlCellTypeLastCell).Row, 1) ' попытался, но не взлетело
Вместо copy пишите ячейка1 = ячейка2, а по-хорошему показали бы файл-пример. А хотелось чего, определённые ячейки заносить на лист "История" с накоплением? [vba]
Код
Sub uuu() Dim i As Long Range("f9") = Now 'это я не понял на какой лист нужно 'по-идее это время добавления записи значит в историю With Sheets("История") i = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(i, 1) = Sheets("Опыт").Cells(3, 2) .Cells(i, 2) = Sheets("Опыт").Cells(4, 3) .Cells(i, 3) = Sheets("Опыт").Cells(4, 4) .Cells(i, 4) = Sheets("Опыт").Cells(8, 3) .Cells(i, 5) = Sheets("Опыт").Cells(9, 3) .Cells(i, 6) = Sheets("Опыт").Cells(10, 3) End With End Sub
[/vba] Не один я не сплю )
Вместо copy пишите ячейка1 = ячейка2, а по-хорошему показали бы файл-пример. А хотелось чего, определённые ячейки заносить на лист "История" с накоплением? [vba]
Код
Sub uuu() Dim i As Long Range("f9") = Now 'это я не понял на какой лист нужно 'по-идее это время добавления записи значит в историю With Sheets("История") i = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(i, 1) = Sheets("Опыт").Cells(3, 2) .Cells(i, 2) = Sheets("Опыт").Cells(4, 3) .Cells(i, 3) = Sheets("Опыт").Cells(4, 4) .Cells(i, 4) = Sheets("Опыт").Cells(8, 3) .Cells(i, 5) = Sheets("Опыт").Cells(9, 3) .Cells(i, 6) = Sheets("Опыт").Cells(10, 3) End With End Sub
_Boroda_, Спасибо за скорый ответ правда он ошибку пишет Файлик это база на 40 метров вычищать муторно,
А можно еще вопросик, вот у меня есть переменная i , так вот она всегда увеличивается за счет поиска последней заполненной ячейки, но когда я очищаю историю, она не стартует с 1 а продолжает дальше 23,24,25 и т.д че за херня, может знаете?
Вы все правильно поняли нужно вести историю с накоплением, иногда правда она должна очищаться, файлик приклею сейчас
Не влез файлик собака дикая Удалено. Нарушение Правил форума вот
_Boroda_, Спасибо за скорый ответ правда он ошибку пишет Файлик это база на 40 метров вычищать муторно,
А можно еще вопросик, вот у меня есть переменная i , так вот она всегда увеличивается за счет поиска последней заполненной ячейки, но когда я очищаю историю, она не стартует с 1 а продолжает дальше 23,24,25 и т.д че за херня, может знаете?
Вы все правильно поняли нужно вести историю с накоплением, иногда правда она должна очищаться, файлик приклею сейчас
Не влез файлик собака дикая Удалено. Нарушение Правил форума вотsver4ook
Сообщение отредактировал sver4ook - Четверг, 14.08.2014, 01:59
В моем файле на листе база "база" при любом изменении значения в строке в интервале (c;r) в соответствующей строке в столбце S должна проставлятся сегодняшняя дата. Просто там пишутся некие рецепты и они периодически меняются(обновляются) и вот для того чтобы отследить насколько свежий рецепт и как давно он корректировался нужно это.
Перерыл весь инет и не нашел ничего хоть както напоминающее и рачее, есть только один кодик но он отслеживает измнения только в одной ячейке а мне нужен интервал
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("O7:O10000")) Is Nothing Then 'если измененная ячейка попадает в диапазон O2:O10000 With cell.Offset(0, -11) 'вводим в нужную ячейку дату .Value = Date End With End If Next cell End Sub
[/vba]
не откажите в помощи
А можно еще вопросик
В моем файле на листе база "база" при любом изменении значения в строке в интервале (c;r) в соответствующей строке в столбце S должна проставлятся сегодняшняя дата. Просто там пишутся некие рецепты и они периодически меняются(обновляются) и вот для того чтобы отследить насколько свежий рецепт и как давно он корректировался нужно это.
Перерыл весь инет и не нашел ничего хоть както напоминающее и рачее, есть только один кодик но он отслеживает измнения только в одной ячейке а мне нужен интервал
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("O7:O10000")) Is Nothing Then 'если измененная ячейка попадает в диапазон O2:O10000 With cell.Offset(0, -11) 'вводим в нужную ячейку дату .Value = Date End With End If Next cell End Sub
Дык он вроде как по столбику пробегает, а мне нужно по строке, и смещение [vba]
Код
cell.Offset(0, -11)
[/vba]
он от столбика отсчитывает.... а я могу исправить как в столбце с так и в столбце E, от куда он будет отсчитывать смещение..... я пробовал его допиливал, или ошибки пишет или не работает....
Дык он вроде как по столбику пробегает, а мне нужно по строке, и смещение [vba]
Код
cell.Offset(0, -11)
[/vba]
он от столбика отсчитывает.... а я могу исправить как в столбце с так и в столбце E, от куда он будет отсчитывать смещение..... я пробовал его допиливал, или ошибки пишет или не работает....sver4ook
Сообщение отредактировал sver4ook - Пятница, 15.08.2014, 16:54
Я тут прикинул Удалено цензурой А что если я в другом столбце буду подсчитывать сумму строки и отслеживать ее изменение а далее вот этим кодом [vba]
Код
Private Sub Worksheet_Calculate() Dim target As Range Dim Cell As Variant
Set target = Range("мой столбец") For Each Cell In target.Cells If Cell.Offset(0, 1).Value = "" Then Cell.Offset(, 2) = Format(Now, "hh:nn") End If Next Cell
End Sub
[/vba]
Ща попробую
чет никак не выходит каменный цветок..... может кто нить поможет, а, плиииииз.........
Я тут прикинул Удалено цензурой А что если я в другом столбце буду подсчитывать сумму строки и отслеживать ее изменение а далее вот этим кодом [vba]
Код
Private Sub Worksheet_Calculate() Dim target As Range Dim Cell As Variant
Set target = Range("мой столбец") For Each Cell In target.Cells If Cell.Offset(0, 1).Value = "" Then Cell.Offset(, 2) = Format(Now, "hh:nn") End If Next Cell
End Sub
[/vba]
Ща попробую
чет никак не выходит каменный цветок..... может кто нить поможет, а, плиииииз.........sver4ook
Сообщение отредактировал sver4ook - Пятница, 15.08.2014, 20:21
При изменении любой ячейки в строке(диапазон c1;r1) нужно чтобы в ячейку(s1) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c2;r2) нужно чтобы в ячейку(s2) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c3;r3) нужно чтобы в ячейку(s3) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c4;r4) нужно чтобы в ячейку(s4) вставлялось сегодняшняя дата ............................................................................................................................................ .................... При изменении любой ячейки в строке(диапазон c1000;r1000) нужно чтобы в ячейку(s1000) вставлялось сегодняшняя дата
Вот как мог обяснил, файлик приклеил
При изменении любой ячейки в строке(диапазон c1;r1) нужно чтобы в ячейку(s1) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c2;r2) нужно чтобы в ячейку(s2) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c3;r3) нужно чтобы в ячейку(s3) вставлялось сегодняшняя дата При изменении любой ячейки в строке(диапазон c4;r4) нужно чтобы в ячейку(s4) вставлялось сегодняшняя дата ............................................................................................................................................ .................... При изменении любой ячейки в строке(диапазон c1000;r1000) нужно чтобы в ячейку(s1000) вставлялось сегодняшняя дата
Парни по томуже файлу есть вопросец.......... Путем суточного сидения родился такой вот кодец. [vba]
Код
Sub Controll() Dim rr As Range Application.ScreenUpdating = False x = Worksheets("опыт").Range("k2").Value 'прочитали из ячейки ThisWorkbook.Worksheets("история").Activate 'переходим на другой лист Set rr = Columns(1).Find(What:=x, lookat:=xlWhole) 'определяем ячейку в которой нужное значение If rr Is Nothing Then MsgBox "нету ничего", vbCritical 'если не нашлось Else
i = rr.Offset(0, 1).Value ' запоминаем что было в ячейке сначала If i >= 1 Then If MsgBox("Уже касили " & i & " раз, уверен что перекрас, а может 2 раза покрасили", vbYesNo, "Контроль выполнения") = vbYes Then rr.Offset(0, 1).Value = 1 + i i = i + 1 MsgBox "Подтвержден " & i & " перекрас для " & x & " покраски" ElseIf vbNo Then End If Else rr.Offset(0, 1).Value = 1 + i MsgBox "Подтверждена " & x & " покраска" End If
End If ThisWorkbook.Worksheets("опыт").Activate Range("k2").Activate Application.ScreenUpdating = True End Sub
[/vba]
Так вот в чем вопрос,код находится в модуле, запускается кнопкой, Что я хотел бы, после изменения ячейки "К2" передать фокус на кнопку, а далее ентер и погнал.
Пробовал процедуру Worksheet_Change(ByVal Target As Range), на листе, так он собака некорректно работает... Может кто подскажет
ЗЫ..... кракозябры встали я тут рисуночек прколочу
Парни по томуже файлу есть вопросец.......... Путем суточного сидения родился такой вот кодец. [vba]
Код
Sub Controll() Dim rr As Range Application.ScreenUpdating = False x = Worksheets("опыт").Range("k2").Value 'прочитали из ячейки ThisWorkbook.Worksheets("история").Activate 'переходим на другой лист Set rr = Columns(1).Find(What:=x, lookat:=xlWhole) 'определяем ячейку в которой нужное значение If rr Is Nothing Then MsgBox "нету ничего", vbCritical 'если не нашлось Else
i = rr.Offset(0, 1).Value ' запоминаем что было в ячейке сначала If i >= 1 Then If MsgBox("Уже касили " & i & " раз, уверен что перекрас, а может 2 раза покрасили", vbYesNo, "Контроль выполнения") = vbYes Then rr.Offset(0, 1).Value = 1 + i i = i + 1 MsgBox "Подтвержден " & i & " перекрас для " & x & " покраски" ElseIf vbNo Then End If Else rr.Offset(0, 1).Value = 1 + i MsgBox "Подтверждена " & x & " покраска" End If
End If ThisWorkbook.Worksheets("опыт").Activate Range("k2").Activate Application.ScreenUpdating = True End Sub
[/vba]
Так вот в чем вопрос,код находится в модуле, запускается кнопкой, Что я хотел бы, после изменения ячейки "К2" передать фокус на кнопку, а далее ентер и погнал.
Пробовал процедуру Worksheet_Change(ByVal Target As Range), на листе, так он собака некорректно работает... Может кто подскажет
ЗЫ..... кракозябры встали я тут рисуночек прколочу
в новую тему, при чём тут по тому же файлу вопрос то другой.
Цитата
Worksheet_Change(ByVal Target As Range)
Использовать проверку для изменяемого диапазона [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("K2")) Is Nothing Then MsgBox "изменяй меня полностью!" End If End Sub
[/vba]
Цитата
ЗЫ..... кракозябры встали
При копировании из редактора vba следите чтобы раскладка клавиатуры в браузере и редакторе была RU.
Цитата
Парни
А если девушки ответят?
Цитата
есть вопросец
в новую тему, при чём тут по тому же файлу вопрос то другой.
Цитата
Worksheet_Change(ByVal Target As Range)
Использовать проверку для изменяемого диапазона [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("K2")) Is Nothing Then MsgBox "изменяй меня полностью!" End If End Sub
[/vba]
Цитата
ЗЫ..... кракозябры встали
При копировании из редактора vba следите чтобы раскладка клавиатуры в браузере и редакторе была RU.wild_pig
Сообщение отредактировал wild_pig - Воскресенье, 17.08.2014, 19:21
Не работает этот код с листа, не знаю почему......пробовал уже, и так и так.......... ну не хочет он Работает корректно только с модуля листа и запуск кнопкой.......
у меня файлик 104 кило, в 100 кб ну никак...... как пример, то прикрепить, на внешнее хранилище низя...... Абидно, не ну абидно же
Добрый день, wild_pig
Если девушки помогут, буду только рад.
Поправил кракозябры, спасибо за совет..........
Не работает этот код с листа, не знаю почему......пробовал уже, и так и так.......... ну не хочет он Работает корректно только с модуля листа и запуск кнопкой.......
у меня файлик 104 кило, в 100 кб ну никак...... как пример, то прикрепить, на внешнее хранилище низя...... Абидно, не ну абидно жеsver4ook
Сообщение отредактировал sver4ook - Воскресенье, 17.08.2014, 21:18
Пробовал процедуру Worksheet_Change(ByVal Target As Range)
Вы ужо определитесь, запоминаем, или изменяем. То то как то странно - сначала поменяли, а потом пытаемся запомнить, что было до изменения. если очень хочется, то нужно использовать совместно [vba]
Пробовал процедуру Worksheet_Change(ByVal Target As Range)
Вы ужо определитесь, запоминаем, или изменяем. То то как то странно - сначала поменяли, а потом пытаемся запомнить, что было до изменения. если очень хочется, то нужно использовать совместно [vba]
Код
Worksheet_Change() Worksheet_SelectionChange()
[/vba] и какую нибудь переменную уровня модуля.RAN