Закрытая тема
Показано с 1 по 7 из 7

Тема: Решения, советы, используемые механизмы, инструменты

  1. #1
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию Решения, советы, используемые механизмы, инструменты

    Цитата Сообщение от Avsha
    Идея организации этой темы простая - обмен опытом, у кого что есть - решения, советы, используемые механизмы, инструменты и т.д.,
    Чтобы увековечить свое имя полезным советом, пришлите его Модератору как личное сообщение.

    Т.е. эта тема является ПРЕМОДЕРИРУЕМОЙ (типа как в FIDONet).

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию

    Цитата Сообщение от Avsha
    [1] Очень полезное свойство механизма отладки программ VBA, которое узнал сравнительно недавно -
    это возможность перетаскивать переменные, массивы, объекты в окно Watches. Например, выполнение кода остановилось
    на команде Stop, теперь выделяем мышкой переменную (объект, массив и т.д.), например, "iCell" и тащим в ниже расположенное и заранее открытое окно Watches, в котором можно рассматривать структуру объекта и текущие значения его свойств.

    Код :
    1. For Each iCell In Range
    2.     If iCell.Address = "$C$4" Then abc = 1
    3.       Stop
    4. Next

  4. #3
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию

    Цитата Сообщение от Avsha
    Календарь в Excel с изменяемым годом, кто желает ...

    http://avsha.narod.ru/Date2006.rar

    Примечание:
    в справке по функции КОНМЕСЯЦА написано ...

    Если эта функция недоступна, следует установить надстройку «Пакет Анализа», а затем подключить его с помощью команды Надстройки меню Сервис.

  5. #4
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию

    Цитата Сообщение от Avsha
    Книга Excel для сравнения тарифов при оплате по времени, например для модемного подключения к Internet.

    http://avsha.narod.ru/ExcelTarif.rar

    используются встроенные возможности Excel -
    меню Данные\Проверка\Список
    меню Формат\Условное Форматирование...

  6. #5
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию

    Задача: вывод UserForm в определенном месте экрана с привязкой к координатам ячеек.
    Пример: Привязка к координатам ячейки, где было кликнуто правой кнопкой.

    У UserForm1 свойство StartUpPosition должно быть = 0 (Manual)

    Код :
    1. Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    2.   Cancel = True
    3.   Dim b As CommandBar
    4.   dx = 0: dy = 0
    5.   For Each b In Application.CommandBars
    6.     If b.Visible Then
    7.       Select Case b.Position
    8.        Case msoBarLeft: dx = dx + b.Width
    9.        Case msoBarMenuBar, msoBarTop: dy = dy + b.Height
    10.       End Select
    11.     End If
    12.   Next
    13.   With Target.Application.ActiveWindow
    14.     UserForm1.Left = (Target.Left - .VisibleRange.Left) * .Zoom / 100 + .Application.Left + dx
    15.     UserForm1.Top = (Target.Top - .VisibleRange.Top) * .Zoom / 100 + .Application.Top + dy
    16.     UserForm1.Show
    17.   End With
    18. End Sub

    Тут сначала вычисляется размер области, занимаемой тулбарами (DX,DY)
    Ну а дальше дело техники:
    1) минус .VisibleRange.Top\Left - убирает то что получилось в результате прокрутки листа
    2) * .Zoom / 100 - учитывает масштаб листа (как оказалось это тоже надо учитывать)
    3) и прибавить сдвиг самого окна, а затем размеры тулбаров

    Надо конечно еще чуть-чуть добавить, так как от края окна до тулбаров есть еще толщина границы окна, но ее точное значение надо доставать функциями WinAPI (GetSystemMetrics, или что-то в этом роде, но это уже мелочи - можно пренебречь)

  7. #6
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию Re: Решения, советы, используемые механизмы, инструменты

    Часто используемые шаблоны перечислений листов и ячеек для работы с листами по принципу: данные собираются из n-1 листов на лист n (сводный), либо обратные операции:

    Цитата Сообщение от mc-black

    Код :
    1. Option Explicit
    2.  
    3. ' Перечисление рабочих листов книги
    4. Private Sub EnumSheets()
    5.     Dim wsh As Worksheet
    6.     Dim i As Long
    7.     Dim j As Long
    8.  
    9.     For i = 1 To ThisWorkbook.Worksheets.Count - 1
    10.         Set wsh = ThisWorkbook.Worksheets(i + 1)
    11.         wsh.Activate
    12.         ' Ввод данных в множество листов
    13.         ' wsh.Cells(15, 3).Value = Worksheets(i).Cells(i, 2).Value
    14.         ' Вывод данных, собранных из разных листов
    15.         ' Worksheets(i).Cells(i, 2).Value = wsh.Cells(15, 3).Value
    16.  
    17.         ' Поиск # строки, начиная с 6, во 2 столбце
    18.         j = FindDown(wsh, "Итого", 6, 2)
    19.         If j > 0 Then
    20.             ' Работа со строкой, содержащей искомую строку
    21.             ' wsh.Cells(j, 4).Value = 0.58
    22.         End If
    23.     Next i
    24.  
    25.     Set wsh = Nothing
    26. End Sub
    27.  
    28. ' Поиск значения Вниз
    29. Private Function FindDown(Sheet As Worksheet, Value As Variant, Optional Start As Long = 1, Optional Column As Long = 1) As Long
    30.     Dim j As Long
    31.     FindDown = 0
    32.     j = Start
    33.     Do While Not Sheet.Cells(j, Column).Value = Empty
    34.         If Sheet.Cells(j, Column).Value = Value Then
    35.             FindDown = j
    36.             Exit Function
    37.         End If
    38.         j = j + 1
    39.     Loop
    40. End Function

  8. #7
    Super Moderator system architect Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Naeel Maqsudov is a jewel in the rough Аватар для Naeel Maqsudov
    Регистрация
    20.02.2004
    Адрес
    Moscow, Russia
    Возраст
    44
    Сообщений
    2,551
    Вес репутации
    21

    По умолчанию Как сделать кнопку переключения стиля отображения ссылок A1 / R1C1?

    Как сделать кнопку переключения стиля отображения ссылок A1 / R1C1?
    Цитата Сообщение от mc-black
    Делается все очень просто. Описание по шагам:
    1. Выбираем меню Сервис - Макрос - Начать запись... Появится окно "Запись макроса".
    2. Пишем осмысленное имя макроса "ChangeReferenceStyle", выбираем в списке "Сохранить в:" пункт "Личная книга макросов", жмем "Ok", потом на "Stop" (кнопка в виде квадратика, останавливаем запись макроса).
    3. Нажимаем Alt+F8, в окне "Макрос" выбираем "PERSONAL.XLS!ChangeReferenceStyle" и кнопкой "Войти" попадаем в редактор VBA, там нажимаем "Stop" (кнопка-квадратик в панели инструментов), чтобы прекратить отладку. Убераем из тела процедуры макроса ChangeReferenceStyle все-все и вставляем код:
    Код :
    1. If Application.ReferenceStyle = xlR1C1 Then
    2. Application.ReferenceStyle = xlA1
    3. Else
    4. Application.ReferenceStyle = xlR1C1
    5. End If
    После жмем "Сохранить" и закрываем редактор VBA.
    4. Правой кнопкой мыши щелкаем над панелью инструментов и выбираем пункт "Настройка..." всплывающего меню. Как вариант: меню Сервис - Настройка...
    5. В окне "Настройка" на вкладке "Команды" в списке выбираем пункт "Макросы", во втором списке справа появится пункт "Настраиваемая кнопка" с иконкой в виде смайлика - его и перетаскиваем себе на любую панель, куда нам нравится, где щелкать кнопку удобней.
    6. Правой кнопкой мыши на кнопке со смайликом на выбранной панели и выбираем пункт всплывающего меню "Назначить макрос" - выбираем наш макрос, затем "Ok", закрываем и окно "Настройка".
    7. Для пущей красоты можно изменить иконку или нарисовать свою собственную иконку (как это сделал автор) - для этого в Excel 2003 есть даже редактор иконок! Пока открыто окно "Настройка" щелкаем правой кнопкой мыши на нашей кнопке и выбираем "Изменить значок на кнопке", после чего попадаем в окно "Редактор кнопок".

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

Закрытая тема

Похожие темы

  1. Задачи повышенной сложности по Pascal Очень нужны решения...
    Всем привет, разозлилась на мою подругу преподавательница, и дала самый сложный вариант, вот эти задачки, помогите пожалуйста кто чем может ;) 1....
    от Dr_Grizzly в разделе задачи на Паскале и Delphi
  2. Типовые документы (нужны советы)
    Ситуация такая: имеются данные (грубо скажем фио, название организации, телефон - и их много) 1) Необходимо создание однотипных документов на...
    от OaiT в разделе Вопрошайка
  3. Обновление отчета в VBA(поиск решения)
    После операции «Поиск решения» мне нужно вывести «отчет по результатам». Я создал макрос на поиск решения, все работает, но если несколько раз...
    от Boris_The_Blade в разделе MS Office и VB(A).
  4. Нужны советы!!!!
    И чем больше насоветуете тем лучше.... Взялся за преподование одной особе женского полу преподовать навыки работы с ОС и Internet.... Случай ТЯЖОЛЫЙ...
    от BAHTY3 в разделе Вопрошайка
  5. Требуются советы по написанию программы на Delphi
    Помогите, кому не лень :wink: . Препод с нами почти не занимался, а дал курсовую делать по Delphi :( . Я Delphi занимаюсь первый год, поэтому...
    от modellista в разделе задачи на Паскале и Delphi

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения