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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2011, 07:38   #1
AMRAAM
 
Регистрация: 11.05.2009
Сообщений: 4
По умолчанию Копирование данных из ячеек при изменении параметров и переход на следующую строчку.

Здраствуйте.
Вот собственно вопрос: в книге Excel в листе 2 есть данные в ячейках А1, С1, Е1, G1, I1. При изменении значений этих данных они копируются в соответвующие ячейки листа 1 данной книги. Причём если значения ячеек изменились в листе 2 они пишутся в новой строчке соответсвующих столбцов (А, С, Е, G, I соответственно) листа 1.
Как можно реализовать данную программу в VBA Excel.
Благодарю за помощь.
AMRAAM вне форума Ответить с цитированием
Старый 23.04.2011, 13:56   #2
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

реализовать не сложно (нахождение чистой строки и копирование), но событие записи на лист1 должно быть привязано не к изменению ячеек (раз их целых 5), а , например, к щелчку по кнопке...
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 23.04.2011, 15:02   #3
AMRAAM
 
Регистрация: 11.05.2009
Сообщений: 4
По умолчанию

Цитата:
реализовать не сложно (нахождение чистой строки и копирование),
если не трудно можно листинг написать, а то я с программированием на ЯВУ не дружу
AMRAAM вне форума Ответить с цитированием
Старый 23.04.2011, 15:35   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от was3110 Посмотреть сообщение
( но событие записи на лист1 должно быть привязано не к изменению ячеек (раз их целых 5), а , например, к щелчку по кнопке...
Не согласен
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Static A: Static C: Static E: Static G: Static I
Dim CL As Byte, C_Rw As Long
CL = 0
If Target.Row = 1 Then
If A = "" Then A = [A1]: If C = "" Then C = [C1]
If E = "" Then E = [E1]: If I = "" Then I = [I1]
If G = "" Then G = [G1]
Select Case Target.Column
Case 1
CL = IIf(A = [A1], 0, 1)
A = [A1]
Case 3
CL = IIf(C = [C1], 0, 3)
C = [C1]
Case 5
CL = IIf(E = [E1], 0, 5)
E = [E1]
Case 7
CL = IIf(G = [G1], 0, 7)
G = [G1]
Case 9
CL = IIf(I = [I1], 0, 9)
I = [I1]
End Select
End If
If CL > 0 Then
C_Rw = Лист1.Columns(CL).SpecialCells(xlCellTypeConstants).Rows.Count + 1
If C_Rw = 0 Then C_Rw = 1
 Лист1.Cells(C_Rw, CL) = Me.Cells(1, CL)

End If
End Sub
учитывая
Цитата:
а то я с программированием на ЯВУ не дружу
Смотрите вложение
Вложения
Тип файла: rar Ява.rar (9.7 Кб, 22 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.04.2011, 16:14   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно чуть проще:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A1,C1,E1,G1,I1]) Is Nothing Then _
        Sheets("Лист1").Cells(Rows.Count, Target.Column).End(xlUp).Offset(1) = Target
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 23.04.2011, 16:30   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я исходил из
Цитата:
если значения ячеек изменились в листе 2
смотря что автор подразумевает под этим
Если значение повторилось,то данные не пишутся
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.04.2011, 21:57   #7
AMRAAM
 
Регистрация: 11.05.2009
Сообщений: 4
По умолчанию

Всем спасибо за помощь!!!
AMRAAM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход в следующую ячейку в StringGrid artemavd Общие вопросы Delphi 3 25.12.2010 23:20
Транспортировка (из столбца в строчку) данных по цвету ячеек 1018663 Microsoft Office Excel 2 28.06.2010 17:44
Ошибка выполнения sql запроса при изменении данных XATAB БД в Delphi 4 28.02.2009 15:44
Потеря данных при изменении рамера раздела Drandulet Софт 5 06.07.2008 07:52
Мнимое сообщение окну/компоненту об изменении параметров дисплея Megabotan Win Api 5 08.01.2007 13:54