Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] Внешние связи Excel 2007

Ответить
Настройки темы
2007 - [решено] Внешние связи Excel 2007

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Возникла следующая проблема:
Существует основной фаил "1" Excel (в виде календаря) и ежедневно формирующийся фаил "2" (в виде цифровой таблицы), задача сделать связь, обновляющую данные в календаре из ежедневных фаилов "2", соответствующих конкретному дню месяца. Сложность заключается в том что при обновлении связей, например при закрытии фаила "1" или открытии фаила "2", данные по предыдущим дням обнуляются.

Вопрос: Есть ли способ задать условие, при выполнении которого будет обновляться конкретная группа ячеек ? или может другой хитрый способ

Существующая связь построена с использованием:
=СЦЕПИТЬ(ссылка на фаил "2")
=ЕСЛИОШИБКА(ДВССЫЛ(А1);0)

Отправлено: 16:49, 31-05-2013

 

Модератор


Moderator


Сообщения: 16848
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


Vison, приведите часть 2-х файлов.

А вообще почитайте: Как получить данные из закрытой книги?

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 20:18, 31-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg kalendar-test.JPG
(65.5 Kb, 5 просмотров)

Вот кусок файла "1" при одном открытом файле "2", как видно на скрине данные из сегодняшнего файла "обнулены". пока у меня мысли работают в направлении переместить данные из КВ1 в КВ3 при значении КВ1 не равном нулю, но в тоже время так что бы при обнулении КВ1 данные в КВ3 сохранялись, в таком случае не придется постоянно удерживать связь с по сути однодневными файлами

Отправлено: 10:03, 01-06-2013 | #3


Модератор


Moderator


Сообщения: 16848
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


В любом случае вам нужно либо вручную, либо макросом разрывать связь и сохранять только значения, а не формулы.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:15, 01-06-2013 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вобщем в конечном итоге, на скорую руку, получилось сделать следующим макросом:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
Sheets("Календарь").Select
If Range("V27") = 0 Then GoTo Lastline
Columns("V:Z").Select
Selection.Copy
Columns("AJ:AN").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Lastline:
Application.ScreenUpdating = True
End Sub

Отправлено: 17:45, 01-06-2013 | #5


Модератор


Moderator


Сообщения: 16848
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


Зачем выделять?
Код: Выделить весь код
Columns("V:Z").Copy
Columns("AJ:AN").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
 xlNone, SkipBlanks:=False, Transpose:=False

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 01-06-2013 в 20:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:04, 01-06-2013 | #6


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


не знаю, я только вчера узнал что такое VBA, делал при помощи "Запись макроса" потом корректировал

спасибо за поправку : )

Отправлено: 09:43, 02-06-2013 | #7


Модератор


Moderator


Сообщения: 16848
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


Цитата Vison:
я только вчера »
не похоже . Макрорекодер не записывает команду
Код: Выделить весь код
Application.ScreenUpdating
Еще одно замечание. Для сокращения кода параметры, которые и так установлены по-умолчанию, вписывать не обязательно. Я вот о чем:
Код: Выделить весь код
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
 xlNone, SkipBlanks:=False, Transpose:=False
можно заменить на
Код: Выделить весь код
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:43, 02-06-2013 | #8


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата okshef:
не похоже . Макрорекодер не записывает команду »
да это я нагуглил, ну и школьная программа qBasic : )))

вобщем вот чего в итоге получилось:

Код: Выделить весь код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.ScreenUpdating = False
    Sheets("Календарь").Select
    Dim X1, X2, Y1, Y2
    
    X1 = "V"
    X2 = "Z"
    X11 = "AJ"
    X21 = "AN"
    Y1 = 27
    Y2 = 33
    
110: If Range(X1 & Y1) = "x" Then GoTo 120
     Range(X1 & Y1 & ":" & X2 & Y2).Copy
     Range(X11 & Y1 & ":" & X21 & Y2).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
     Application.CutCopyMode = False
120: If Y1 >= 523 Then GoTo 130
     Y1 = Y1 + 16
     Y2 = Y2 + 16
     GoTo 110
130: Range("A1").Select
     Application.ScreenUpdating = True
End Sub

Последний раз редактировалось okshef, 02-06-2013 в 20:39.


Отправлено: 15:31, 02-06-2013 | #9


Модератор


Moderator


Сообщения: 16848
Благодарности: 3247

Профиль | Сайт | Отправить PM | Цитировать


Vison, я, конечно, не корифей VBA, но не понимаю, зачем использовать переменные вместо констант. Как вам такой код:
Код: Выделить весь код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 Application.ScreenUpdating = False
    With Sheets("Календарь")
        For irow = 27 To 523 Step 16
            If .Range("V" & irow) <> "x" Then
               .Range("V" & irow).Resize(7, 5).Copy
               .Range("AJ" & irow).PasteSpecial (xlPasteValuesAndNumberFormats)
            End If
        Next
      .Range("A1").Select
    End With
 Application.ScreenUpdating = True
End Sub
P.S. В следующий раз для выделения кода используйте тэг "Код" - значок # на панели.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Последний раз редактировалось okshef, 02-06-2013 в 22:07.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:37, 02-06-2013 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] Внешние связи Excel 2007

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - Вылетает Excel 2007 chebyrek Microsoft Office (Word, Excel, Outlook и т.д.) 6 02-04-2013 08:46
2007 - примечания excel 2007 dreammk Microsoft Office (Word, Excel, Outlook и т.д.) 3 24-04-2012 20:45
2007 - excel 2007 диаграммы forest66 Microsoft Office (Word, Excel, Outlook и т.д.) 2 21-12-2011 08:25
2007 - Текст в Excel 2007 jazzanova Microsoft Office (Word, Excel, Outlook и т.д.) 5 12-04-2011 22:25
V. 2007 - [решено] Не приходят внешние письма Exchange 2007 workprobe Microsoft Exchange Server 10 16-07-2010 16:24




 
Переход