Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Задача. Для вас это будет просто Добавлено: 23.06.11 00:57  

Автор вопроса:  Deri1
Плз помогите, в универе задание дали:
В локальной сети есть 3 компьютера, на двух из них существует по 1 книге. В книгах данные произвольные и с течением времени они изменяются,дополняются. Нужно реализовать вывод информации с этих двух книг, чтобы на 3ем компьютере иметь возможность постоянно получать свежую информацию с двух книг.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #1
Добавлено: 23.06.11 11:55
попробуй почитать раздел справки "Использование общей книги для совместной работы".
Вот:
Общая книга. Книга, настроенная для одновременного просмотра и изменения по сети несколькими пользователями. Каждый пользователь, сохраняющий такую книгу, видит изменения, внесенные другими пользователями

Ответить

Номер ответа: 2
Автор ответа:
 Deri1



Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 23.06.11 15:53
Проблем в том, что надо иметь именно 3 файла на разных компах (два с данными и 3ий, который эти данные в себя собирает)

Ответить

Номер ответа: 3
Автор ответа:
 Ким Чен Ир



Вопросов: 0
Ответов: 140
 Профиль | | #3 Добавлено: 23.06.11 16:18
Проблем в том, что надо иметь именно 3 файла

Может удосужишься привести полный текст условия задачи, а не выдавливать по частям. О чем вообще идет речь, о каких книгах?
Excel или томик Пушкина, прислоненный к монитору?

Ответить

Номер ответа: 4
Автор ответа:
 Deri1



Вопросов: 1
Ответов: 3
 Профиль | | #4 Добавлено: 23.06.11 19:13
Excel.
На 3х компьютерах, подключенных к одной локальной сети находятся по одной книге Excel. 1ый компьютер имеет книгу "Доходы.xlsx", в которую заносятся источники дохода (поля: Дата, Номер Договора, Наименование, Сумма). 2ой комьютер имеет книгу "Расходы.xlsx", в которую заносятся источники расходов (поля: Дата, Наименование, Сумма). Данные на этих двух компьютерах переодически дополняются (т.е вносятся новые источники доходов и расходов). На 3ем компьютере находится книга "Финансовый результат.xlsx". В ней пользователь должен иметь возможность выбрать дату и получить финансовый результат в этот день (т.е при выборе даты 14.03.2011 должен будет высчитан финансовый результат, полученный путём вычитания суммы всех источников расходов на 14.03.2011 в книге "Расходы.xlsx" от суммы всех источников доходов на 14.03.2011 в книге "Доходы.xlsx". Простите за глупость в первом посте, я больше так не буду. Заранее спасибо.

Ответить

Номер ответа: 5
Автор ответа:
 Ким Чен Ир



Вопросов: 0
Ответов: 140
 Профиль | | #5 Добавлено: 23.06.11 20:38
Ну вот, можешь же..:)
Из разряда непонятного, всё переходит в написание одной процедуры в книге "Финансовый результат".
В ней (процедуре) создать два объекта Workbook, вызвать их метод Open с сетевым путем, применить AutoFilter на листе для отбора данных с критерием по дате, заданной элементом "календарь". Просуммировать массивы дебет/кредит, разницу занести в лист книги "ф.результат". "Для меня это будет просто", но все-таки время ..
Предпочитаешь код на халяву или качество?

Ответить

Номер ответа: 6
Автор ответа:
 Ким Чен Ир



Вопросов: 0
Ответов: 140
 Профиль | | #6 Добавлено: 24.06.11 00:34
  1. ' на халяву так:
  2. Sub FinanceResult()
  3.     Dim wbDebet As Workbook, wbCredit As Workbook
  4.     Dim pthDebet As String, pthCredit As String
  5.     Dim sumDbt As Single, sumCrd As Single
  6.     Dim dtReqwest As Date
  7.  
  8.     ' причина создания нового объекта Application, а не использование текущего, скрыть визуальное открытие книг.
  9.     Dim app As New Excel.Application
  10.    
  11.     dtReqwest = CDate("15.01.2001")
  12.     pthDebet = "\\192.168.101.2\win2000 (С)\Расходы.xlsx"
  13.     pthCredit = "\\192.168.101.33\winxp (F)\Доходы.xlsx"
  14.     
  15.     ' проверить пути на валидность
  16.     If Not IsPathValide(pthCredit) Then MsgBox pthCredit, , "FinanceResult : Invalide path": Exit Sub
  17.     If Not IsPathValide(pthDebet) Then MsgBox pthDebet, , "FinanceResult : Invalide path":   Exit Sub
  18.  
  19.     ' открытие книг в режиме ReadOnly, а правильнее было объявить их публичными и открывать в событии  Workbook_Open этой книги
  20.     Set wbDebet = app.Workbooks.Open(pthDebet, , True)
  21.     Set wbCredit = app.Workbooks.Open(pthCredit, , True)
  22.     'if_wb_is_nothing...?
  23.     
  24.     ' кредит
  25.     With wbCredit.Worksheets(1)  ' предполагается, что данные находятся на первом листе первого столбца и первой строкой идут названия Дата, Номер Договора, Наименование, Сумма
  26.         .AutoFilterMode = False
  27.         .Rows(1).Hidden = True
  28.         .Range("1:1").AutoFilter
  29.         .Range("1:1").AutoFilter 1, "<=" & CLng(dtReqwest)  ' критерий фильтра не дружит с Date?
  30.          sumCrd = .Evaluate("SUBTOTAL(109,D2:D65000)")     ' автосумма нескрытых
  31.         .AutoFilterMode = False
  32.         .Rows(1).Hidden = False
  33.     End With
  34.  
  35.     ' дебет
  36.     With wbDebet.Worksheets(1)
  37.         .AutoFilterMode = False
  38.         .Rows(1).Hidden = True
  39.         .Range("1:1").AutoFilter
  40.         .Range("1:1").AutoFilter 1, "<=" & CLng(dtReqwest)
  41.          sumDbt = .Evaluate("SUBTOTAL(109,C2:C65000)")
  42.         .AutoFilterMode = False
  43.         .Rows(1).Hidden = False
  44.     End With
  45.     
  46.     MsgBox "Сальдо расчета: " & sumCrd - sumDbt
  47.  
  48.     ' все закрыть
  49.     wbCredit.Close False
  50.     wbDebet.Close False
  51.     app.Quit
  52.     Set wbDebet = Nothing
  53.     Set wbCredit = Nothing
  54.     Set app = Nothing
  55. End Sub
  56.  
  57. Function IsPathValide(path As String) As Boolean
  58.     On Error Resume Next 'не пинать, влом писать больше
  59.     IsPathValide = Len(Dir(path))
  60. End Function


Спокойной ночи, Ливия.

Ответить

Номер ответа: 7
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #7
Добавлено: 24.06.11 01:03
Ливия засыпает. Просыпается Мафия...

Ответить

Номер ответа: 8
Автор ответа:
 Deri1



Вопросов: 1
Ответов: 3
 Профиль | | #8 Добавлено: 25.06.11 22:42
Спасибо большое)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам