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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2014, 22:54   #1
Pirks
 
Регистрация: 21.06.2014
Сообщений: 4
По умолчанию Как связать ячейки на двух листах?

Добрый день!
Прошу помочь. Есть файлик обзвонки клиентов.

На лист Список заносятся данные. С этого листа на лист Для обзвонки делается выборка.

Задача в том чтобы при заполнении ячейки Комментарий на листе Для обзвонки, этот комментарий копировался в соответствующую ячейку на первом листе Список.

Для знающих людей задача элементарна, а моих знаний в VBA пока не хватает. Буду очень благодарен за помощь!
Вложения
Тип файла: rar Журнал_обзвонки_клиентов_(Final2).rar (23.9 Кб, 12 просмотров)

Последний раз редактировалось Pirks; 28.10.2014 в 16:43.
Pirks вне форума Ответить с цитированием
Старый 28.10.2014, 11:24   #2
Mutarix
 
Регистрация: 10.03.2010
Сообщений: 4
По умолчанию

Добрый день, Pirks

Эту задачу можно попробовать решить стандартными средствами Excel

=ИНДЕКС('Для обзвона'!$H$2:$H$9;ПОИСКПОЗ(Список! C4;'Для обзвона'!$F$2:$F$9;0);1)
Mutarix вне форума Ответить с цитированием
Старый 28.10.2014, 14:46   #3
Pirks
 
Регистрация: 21.06.2014
Сообщений: 4
По умолчанию

К сожалению такой подход не подходит.
В данном случае на листе Список отображаются как бы ссылки на комментарии с листа Для обзвона, сами комментарии не копируются.
Поэтому как только мы закроем файл и откроем снова, лист Для обзвона будет создан заново и комментариев там уже не будет...(

Нужен скрипт который будет именно копировать значения из ячейки листа обзвона в лист Список
Pirks вне форума Ответить с цитированием
Старый 28.10.2014, 21:17   #4
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Pirks Посмотреть сообщение
К сожалению такой подход не подходит.
В данном случае на листе Список отображаются как бы ссылки на комментарии с листа Для обзвона, сами комментарии не копируются.
Поэтому как только мы закроем файл и откроем снова, лист Для обзвона будет создан заново и комментариев там уже не будет...(

Нужен скрипт который будет именно копировать значения из ячейки листа обзвона в лист Список
Дык перенесите формулу в макрос - рекодером
Код:
Sub Макрос1()
    ActiveCell.FormulaR1C1 = _
        "=INDEX('Для обзвона'!R2C8:R9C8,MATCH(Список!R[3]C[2],'Для обзвона'!R2C6:R9C6,0),1)"
End Sub
valerij вне форума Ответить с цитированием
Старый 28.10.2014, 21:47   #5
Pirks
 
Регистрация: 21.06.2014
Сообщений: 4
По умолчанию

Друзья, так не получится.
Комментарии будут исчезать после закрытия документа.
Лист для обзвона каждый раз формируется заново.

Нужно чтобы все что мы написали в комментариях на листе для обзвона физически скопировалось на лист Список. Тогда это можно будет сохранить при закрытии. Это формулой не сделать.
Pirks вне форума Ответить с цитированием
Старый 28.10.2014, 23:36   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Валера "порожняк" гнать не будет
сказал надо использовать макрорекордер - используйте макрорекордер. с Валерой тут спорить никто не решиться, судьба Вам использовать макрорекордер...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.10.2014, 01:48   #7
Pirks
 
Регистрация: 21.06.2014
Сообщений: 4
По умолчанию

Всем спасибо, разобрался сам.=)
Сделал через событие Workbook_SheetChange (Валерий, без обид)

Кому надо результат во вложении, код ниже.
А вообще стыдно должно быть товарищи Знатоки=). Заставили меня самого разбираться. Теперь и я понимаю что эту задачу опытному человеку решить 2 минуты, а мне без опыта в VBA вечер пришлось тратить.
Код HTML:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Для обзвона" Then
    If Target.Column = 8 Then
        If Target.Count > 1 Then
            MsgBox "Нельзя заполнять комментарии перетаскиванием!"
            Application.EnableEvents = False
            Application.Undo
            Application.EnableEvents = True
        Else
            Dim avData
            Dim sFIO As String
            Dim Lr As Long
            With Sheets("Список")
                Lr = .Cells(.Rows.Count, 2).End(xlUp).Row
                avData = .Cells(1, 2).Resize(Lr, 3).Value
                sFIO = Target.Offset(0, -7).Value
                If sFIO = "" Then Exit Sub
                For Lr = 4 To UBound(avData, 1)
                    If avData(Lr, 1) = sFIO Then
                        .Cells(Lr, 8).Value = Target.Value
                     End If
                Next Lr
            End With
         End If
     End If
 End If
End Sub
Вложения
Тип файла: rar Журнал_обзвонки_клиентов_(Final3).rar (25.6 Кб, 12 просмотров)

Последний раз редактировалось Pirks; 29.10.2014 в 01:58.
Pirks вне форума Ответить с цитированием
Старый 29.10.2014, 02:09   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

то, что Вы потратили время на свою задачу, это так же нормально как и то, что "знатоки" не захотели этого делать

очень сомневаюсь что кто-то из них испытывает чувство стыда за несодеянное. тут нет военнообязанных - интересно и хотят помочь - помогают, не интересно и не хотят - не помогают
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как связать значения на разных листах при добавлении строк? onitro Microsoft Office Excel 4 25.01.2013 14:54
Как осуществить автоматическую запись в ячейки трех таблиц,находящихся на разных листах. Alex745 Microsoft Office Excel 1 12.07.2012 16:04
Связать изменения на листах Wertugo Microsoft Office Excel 5 05.02.2012 19:19
как связать ячейки в двух книгах? Доктор Microsoft Office Excel 8 03.03.2011 12:01
Как связать ячейки на разных листах? BobBarker Microsoft Office Excel 9 13.03.2010 01:33