Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 14:04   #1
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию Копирование строки формул при добавлении записи в ячейку

Столкнулся с такой проблемой - если завести формулы в таблицу из 5000 строк тормоза при пересчете ячеек

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

Файл исх прилагаю
Вложения
Тип файла: rar Добавление формул при записи.rar (9.5 Кб, 15 просмотров)
Uralmaster вне форума Ответить с цитированием
Старый 30.01.2011, 14:38   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Наверное можно сделать по такому принципу
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Column = 3 Then
          [g11].Copy Destination:=ActiveCell.Offset(0, 4)
          [h11].Copy Destination:=ActiveCell.Offset(0, 5)
     End If
End Sub
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 30.01.2011, 18:09   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

я бы сделал так

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
 If Target.Value = "" Then Exit Sub
    If Target.Column = 3 Then
          Range(Cells(Target.Row, 7), Cells(Target.Row, 8)) _
          = [g11:h11].Formula
     End If
End Sub
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 30.01.2011 в 18:14.
R Dmitry вне форума Ответить с цитированием
Старый 30.01.2011, 18:46   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
я бы сделал так
я бы ваще ничего не делал, правильно организованные данные сами заполняются формулами. допишите в строку 7 значения катетов, гипотенуза посчиталась? заполняйте следующую строку...
Вложения
Тип файла: rar Книга550.rar (5.8 Кб, 20 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.01.2011, 19:04   #5
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

Код R Dmitry

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Value = "" Then Exit Sub
If Target.Column = 3 Then
Range(Cells(Target.Row, 7), Cells(Target.Row, 8)) _
= [g11:h11].Formula
End If
End Sub

как переделать чтоб не срабатывал на числовые значения типа 0 а срабатывал только на текст при заполнении исх данных

Последний раз редактировалось Uralmaster; 30.01.2011 в 19:11.
Uralmaster вне форума Ответить с цитированием
Старый 30.01.2011, 19:54   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Uralmaster Посмотреть сообщение
Код R Dmitry

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Value = "" Then Exit Sub
If Target.Column = 3 Then
Range(Cells(Target.Row, 7), Cells(Target.Row, 8)) _
= [g11:h11].Formula
End If
End Sub

как переделать чтоб не срабатывал на числовые значения типа 0 а срабатывал только на текст при заполнении исх данных
числовые значения типа 0 ? это как?
т.е вы хотите что бы только на текст?, тогда добавьте 3 строкой
If IsNumeric(Target.Value) Then Exit Sub
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 30.01.2011, 20:01   #7
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

дело в том что исх ячейки с данными заполняются по формуле = с др листа и если там ничего нет в исх ячейках значение 0

Последний раз редактировалось Uralmaster; 30.01.2011 в 21:43.
Uralmaster вне форума Ответить с цитированием
Старый 30.01.2011, 21:42   #8
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

еще блин задача усложнилась в 3 колонки надо копировать попробовал так

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If IsNumeric(Target.Value) Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Column = 3 Then
Range(Cells(Target.Row, 7), Cells(Target.Row, 9)) _
= [g11:i11].Formula
End If
End Sub


не получилось ....

файл что поправить положил
Вложения
Тип файла: rar Добавление формул при записи v2.rar (11.5 Кб, 12 просмотров)
Uralmaster вне форума Ответить с цитированием
Старый 30.01.2011, 23:39   #9
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Код:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
lr = Cells(Rows.Count, 7).End(xlUp).Row
Range(Cells(lr + 1, 7), Cells(lr + 1, 9)) _
          = [g11:i11].Formula
Application.EnableEvents = True
End Sub
попробуйте вот этот код, хотя лучше привязать код к конкретному событию там где происходит ввод данных
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 30.01.2011 в 23:42.
R Dmitry вне форума Ответить с цитированием
Старый 31.01.2011, 00:42   #10
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

код както странно работает стираю все значения начиная со строки 12 не стирает 12-ю при принудительном очищении 12-й строки добавляет запись в 13 строку и тд ( образцы формул находятся в 11 строке)
Вложения
Тип файла: rar Добавление формул при записи v2.rar (11.5 Кб, 13 просмотров)

Последний раз редактировалось Uralmaster; 31.01.2011 в 00:45.
Uralmaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отображается автоинкрементация при добавлении записи vuzhakov БД в Delphi 10 27.04.2010 14:44
делфи ругается при добавлении записи Cannibal БД в Delphi 8 23.04.2010 15:49
Событие при добавлении записи в BDGrid Alexeyss БД в Delphi 2 19.08.2009 23:37
Проверка при добавлении записи Tanya2008 БД в Delphi 3 22.04.2009 10:07
Изменение формул при добавлении строк EducatedFool Microsoft Office Excel 4 02.12.2008 14:39