Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/37: Рейтинг темы: голосов - 37, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 5

Счетчик открытия xls файла

27.09.2010, 19:58. Показов 7915. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть xls шаблон, с параметрами "только для чтения" (открыли, вбили данные, произошли вычисления, закрыли). Нужно что-бы при открытии, в какой-либо ячейке отображалось кол-во открытия данного файла.
Думаю решить это с помощью txt файла.
Открываем xls, срабатывает макрос (открывает txt-файл, считывает число, вставляет его в ячейку, прибавляет к нему +1, записывает и сохраняет txt), в ячейку вносится число.

Нашел такой код, что-то исправил, правильно?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
 
Private Sub Workbook_Open()
Dim txtFile As String, MyNumb As Single
  txtFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name & "_log.txt" 'путь к файлу
  If ActiveWorkbook.ReadOnly Then 'только чтение?
    Open txtFile For Input As #1
     MyNumb = Input(LOF(1), #1)
    Close #1
 ActiveWorkbook.Names("Счётчик").Value = Trim(MyNumb)
  Else 'если доступен:
    Open txtFile For Output As #1 'открываем текстовик для записи
    Print #1, MyNumb + 1 'записываем число
    Close #1 'закрываем
  End If
End Sub
Добавлено через 18 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
Dim txtFile As String, MyNumb As Single
  txtFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name & "_log.txt"
    Open txtFile For Input As #1
     MyNumb = Input(LOF(1), #1)
   Close #1
    ActiveWorkbook.Names("Счётчик").Value = Trim(MyNumb)
  Open txtFile For Output As #1
    Print #1, MyNumb + 1
  Close #1
End Sub
Данный код работает. Увеличение в TXT файле - происходит. А вот ячейке значение не присваивается...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2010, 19:58
Ответы с готовыми решениями:

Как исправить ошибку «Формат файла xls не соответствует разрешения файла»?
В общем задача такая: Создать на стороне пользователя средствами JS excel файл. Сразу оговорюсь, что на стороне сервера это сделать...

Макрос для открытия и преобразования файла .csv в .xls
Всем доброго дня. Перелистал кучу вопросов на форуме и не смог найти ответа на свой вопрос, но уверен, он где-то уже всплывал. Может...

Файл xls - запрет открытия файла, если он уже открыт
Привет! Вот столкнулся с проблемой (для меня очень серьезной): Есть программа, которая хранит свои данные в файле xls. Есть...

9
437 / 144 / 9
Регистрация: 12.01.2009
Сообщений: 678
Записей в блоге: 1
27.09.2010, 21:07
А что мешает использовать другую книгу?
О_о
0
 Аватар для Serge 007
980 / 596 / 11
Регистрация: 11.06.2010
Сообщений: 1,345
28.09.2010, 10:03
Цитата Сообщение от Lvenok1987 Посмотреть сообщение
Нужно что-бы при открытии, в какой-либо ячейке отображалось кол-во открытия данного файла.
Code
1
2
3
Sub Auto_Open()
Worksheets(1).Range("A1") = Worksheets(1).Range("A1") + 1
End Sub
Можно вообще без макросов, если включить итерации.
Вложения
Тип файла: xls Счётчик.xls (28.5 Кб, 2613 просмотров)
0
437 / 144 / 9
Регистрация: 12.01.2009
Сообщений: 678
Записей в блоге: 1
28.09.2010, 10:33
[QUOTE=Serge 007;988706]
Code
1
2
3
Sub Auto_Open()
Worksheets(1).Range("A1") = Worksheets(1).Range("A1") + 1
End Sub
Так шаблон только для чтения!
0
0 / 0 / 0
Регистрация: 24.09.2010
Сообщений: 8
28.09.2010, 11:47
Цитата Сообщение от Serge 007 Посмотреть сообщение
Code
1
2
3
Sub Auto_Open()
Worksheets(1).Range("A1") = Worksheets(1).Range("A1") + 1
End Sub
Можно вообще без макросов, если включить итерации.
Интересный вопрос Это всё хорошо но интересен факт другого плана присваивать количество открытий независимо будет человек сохранятся или нет, макрос нужен точно Я думаю такой счётчик в этом случае более нужен ???
0
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 5
28.09.2010, 18:47  [ТС]
Serge_007: у меня данный способ не работает. Ну и если я правильно понял, он работает только при сохранении файла...
analyst: про другую книгу не понял.

Данный код полностью рабочий. Проблема была в том, что ячейке не присвоил имя Test. А так задача выполнена.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
Dim txtFile As String, MyNumb As Single
  txtFile = ThisWorkbook.Path & "\1.txt"
    Open txtFile For Input As #1
     MyNumb = Input(LOF(1), #1)
   Close #1
    ActiveWorkbook.Names("Test").Value = Trim(MyNumb)
  Open txtFile For Output As #1
    Print #1, MyNumb + 1
  Close #1
End Sub
0
437 / 144 / 9
Регистрация: 12.01.2009
Сообщений: 678
Записей в блоге: 1
28.09.2010, 18:54
analyst: про другую книгу не понял.

Открываем xls, срабатывает макрос (открывает xls-файл, считывает число, вставляет его в ячейку, прибавляет к нему +1, записывает и сохраняет xls), в ячейку вносится число.
Точно так же можно использовать и БД, но проще excel и обратится к нему через ADO. Благодаря этому эксель не нужно будет открывать.
0
0 / 0 / 0
Регистрация: 18.02.2010
Сообщений: 5
28.09.2010, 20:06  [ТС]
Ага, понятно. Ну тут уже смотря что нужно. В данном случае мне хватило одного txt и одного числа, записанного в нем.
0
1 / 1 / 0
Регистрация: 07.05.2012
Сообщений: 17
05.06.2012, 10:05
так понравился способ
Visual Basic
1
2
3
Sub Auto_Open()
Worksheets(1).Range("A1") = Worksheets(1).Range("A1") + 1
End Sub
но у меня выходит ошибка 13 в типе. В чем может быть ошибка?
0
1302 / 404 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
05.06.2012, 11:47
ElenaTELE,
  1. чтобы записать что-то в ячейку или прочитать, явно указывайте свойство, с помощью которого это хотите сделать, т.к. у ячейки нет свойства и метода по умолчанию. После Range поставьте свойство Value;
  2. нужно посмотреть, что находится в ячейках, потому что нельзя проводить вычисления не с числами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2012, 11:47
Помогаю со студенческими работами здесь

Процедура открытия файла (xls/doc) и записи данных в таблицу SQL
Мне нужно создать процедуру в программе для открытия файла *.xls(x) или *.doc(x) и записи данных из файла в таблицу SQL. OpenDialog...

Счётчик открытия приложения
Интересна, а можно сделать такой счётчик который считает сколько раз было открыто моё приложение на других компьютерах которые подключены к...

Написать счетчик открытия для одной страницы
Лаба Web-программирование Написать счетчик открытия для одной страницы. Количество открытий страницы сохраняется в txt-файле в виде...

Счетчик-накопитель, определяющий время-дату открытия книги
Здравствуйте, программисты. Помогите улучшить код, если не сложно. Код представляет собой - счетчик-накопитель в столбце -...

Программа открытия файла, редактирования файла и сохранения файла
Здравствуйте! Нужна ваша помощь! Есть программа, но мне не удается реализовать ее код. Графическая часть приложена


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru