Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
 
Обсуждаем вопросы только по Excel VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.
 
Вопросы по работе с MS Excel, не относящиеся к программированию, задаем в теме Excel FAQ

 
Обратите внимание, этот топик для помощи в изучении и использовании VBA. Посему запросы типа "Напишите мне такой-то макрос, я VBA не знаю и знать не хочу" не приветствуются.
Древняя мудрость: "Накорми голодного рыбой и он погибнет, научи его ловить рыбу и ты спасешь его."(R)
 
Предыдущие ветки топика: Часть 1, Часть 2
 
Информация общего характера:
  • Список соответствия имен функций в английской и русской версиях Excel
  • Описание Microsoft Excel File Format (eng.)
     
    Рекомендации:
    Если у Вас есть проблема, не решаемая стандартными средствами Excel (об этом можно уточнить здесь) или требующая автоматизации, попробуйте для начала записать макрос самим Excel через меню Сервис (Tools) - Макрос (Macro) - Начать запись (Record New Macro). Подробнее здесь. В большинстве случаев получившийся код (Сервис-Макрос-Макросы-Изменить) Вас не удовлетворит, но подскажет, какие объекты-методы-свойства использовать.  
    Другой Ваш помощник - Просмотр объектов (Object Browser). Ну и встроення помощь (F1), естественно.
     
    Если Вы в тупике, покажите Ваш код (или часть кода) здесь.  Если вылазит ошибка, цитируйте ее полностью. Если код слишком большой, используйте тeг [more].
    Используйте отладчик - Breakpoints (F9), Watches (Shift-F9), Steps (F8 и др.) Сильно облегчает поиск ошибок.

     
    Рекомендуется к прочтению:
  • Первые шаги с Excel VBA
  • Excel VBA: Приёмы программирования
  • WinApi. Лекция из курса "Основы офисного программирования и язык VBA" (для продвинутых)
  • Daily Dose of Excel (eng.) - тематический блог: советы по работе с Excel и прочие материалы
  • Excel Macros & Excel VBA Code Tips, Tricks (eng.) - советы, трюки и уловки
  • Mr. Excel (forum) (eng.) - весьма оживленный форум по Excel&VBA.
  • Приемы, хитрости, трюки и нюансы работы в Microsoft Excel - сайт "Планета Excel", целиком посвященный Excel и всему, что с ним связано.
  • Microsoft Excel: Таблицы и VBA. Справочник. Вопросы и Ответы. Советы. Примеры.  
     
    Родственные топики:
  • Вопросы по работе с MS Excel - Excel FAQ - часть 1, часть 2, часть 3
  • Технические проблемы с MS Office 2003 или Office XP.
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • Книжульки по VBA - книги по программированию с использованием VBA
     
    Конкретные вопросы:
    Форма-заставка
    Как запустить макрос при изменении положения курсора или значения ячейки
  • Пример 1
  • Пример 2
  • Пример 3 (проверка области)
  • Пример 4
  • Пример 5
    Зацикливание в функции Change или SelectionChange
     
    Ранжирование без пробелов (макрос включает функции сортировки массива и удаления дубликатов, работает и в Excel 2007)
  • под Office 97
     
    Добавление в главное меню своего пункта, ассоциированного с макросом
    Создание ярлыка на рабочем столе
    Снятие защиты листа при забытом пароле
    Смена раскладки клавиатуры
    Скролл формы колесом прокрутки мыши
    Оптимизация кода по быстродействию использованием массивов
    Найти "чужое" окно и нажать в нем кнопку (вписать текст в текстовое поле)
    Работа с UNICODE-символами в VBA: запись, чтение из ячейки, перевод в ASС и обратно
    Как программно подключить дополнительные библиотеки (например, "Microsoft Scripting Runtime" или "Microsoft ActiveX Data Objects 2.8 Library) через References
     
    Перечень основных ColorIndex'ов из MSDN
     

    Смежные темы:
    Программы » Microsoft Office 2019 & 365 | 2016 | 2013 | 2010 | 2007 | 2003
    Программы » OneNote | Outlook 2013 & 2016 & 2019 | Outlook 2010 | Microsoft Mathematics & Math Solver
    Программы » Word FAQ | Excel FAQ | Access FAQ
    Прикладное программирование » Word VBA | Access VBA  
    Андеграунд » Microsoft Office 2019 | 2016 | 2013 | 2010 | 2007 | 2003
    Андеграунд » OneNote | Visio | SharePoint Server | Project Server | Exchange Server
    Андеграунд » Надстройки (add-ins) и коммерческие макросы Excel
    Андеграунд » Самостоятельная сборка дистрибутивов Оffice 2007/2010/2013/2016 | MUI для Office 2007

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:16 11-01-2010 | Исправлено: ALeXkRU, 16:42 03-08-2021
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Попробуем и такое чудо сотворить.

     
    Спасибо!, я знал что вы меня в беде не бросите.
     

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

     
    Я и не сомневаюсь что для вас не какой проблемы не составит это всё реализовать, всё дело во мне, я не так объяснил всё с самого начала. Не много расскажу про таблицы, файлов будет примерно 50 и в каждом файле будет эта таблица но с разным количеством клиентов начиная от 1 и заканчивая скажем 200.
     

    Цитата:
    Цитата:
    А если надо с форматом перемещать?
     
    vchobo, этот вариант был представлен в обсуждении выше. Sniper1 его отверг как не отвечающий его задачам.  

     
    Я его не отверг, он у меня хранится на всякий случай, про запас так сказать. Хотя он у меня вроде не сработал по клавишам "CTRL+SHIFT+стрелка вверх или вниз", наверное я не так его присобачил в таблицу. Кстати в этом вашем решение я заметил хорошую штуку, то что когда двигаешь строки и если доходя до конца таблицы сверху или внизу то оно не даёт зашкалить за неё. надо будет попросить об этом Maximus777 что б позаботился и об этом в своём решение.
     
    Вы пока не расслабляйтесь так как вас ждёт очередная задача, но это уже после того как разрешится вопрос с гиперсылками.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 01:19 01-04-2010 | Исправлено: Sniper1, 01:57 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    файлов будет примерно 50 и в каждом файле будет эта таблица но с разным количеством клиентов начиная от 1 и заканчивая скажем 200

    Sniper1, т.е. таблицы будут различаться только количеством клиентов, я правильно понял?

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 01:53 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Цитата:
    файлов будет примерно 50 и в каждом файле будет эта таблица но с разным количеством клиентов начиная от 1 и заканчивая скажем 200
     
    Sniper1, т.е. таблицы будут различаться только количеством клиентов, я правильно понял?  

     
    Пока думаю что да, может когда нибудь потом ещё надумаю чего а может и не надумаю.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 02:01 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sniper1, ещё вопрос: кроме этих таблиц на листах под- и над ними будет какая-либо информация (это нужно знать, чтобы определять границы таблиц)?

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 02:07 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Sniper1, ещё вопрос: кроме этих таблиц на листах под- и над ними будет какая-либо информация (это нужно знать, чтобы определять границы таблиц)?  

     
    Ну пока что не каких планов нету на этот счет. кстати там в таблицах в столбе "F4" и по "F104" у меня макрос на них стоит, если туда что то вводится то выскакивает окошко для ввода номера кассы в "G" я это оставил на случай если таблица будет расти при добавление клиентов. но это вроде вам не будет мешать, я так понимаю.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 02:55 01-04-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    и если доходя до конца таблицы сверху или внизу то оно не даёт зашкалить за неё

    If ActiveCell.Row > 1 Это и есть проверка на выход выше первой строки.  Насчёт нижней границы можно не беспокоиться. У вас же не будет 65535 строк на листе?
     
    Если же вам надо двигать только в пределах таблички, то можно просто условие задать. Отлавливать движение за табличку по каким-то статичным ячейкам.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 08:08 01-04-2010 | Исправлено: Maximus777, 09:06 01-04-2010
    TimoXa_Skot



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Много раз читал об отмене действий макросов, и всегда находил одно и тоже:
    - Сохраните книгу, перед действием макроса, если что то не так  
    - Закройте без сохранения  
    - Заново откройте
     
    Скрипт заставляет excel тормозить при выполнении макроса, что не радует...реализовал для себя может пригодится кому!
    ------------------------------------------------------------------------------------------------------
    Sub comandarall()                                     'Рopup меню для всего листа
        Dim mBar As CommandBar
        Set mBar = CommandBars("cell")
        mBar.Reset
        If Is_sheet_exist("Титул (2)", ActiveWorkbook, xlWorksheet) Then
            x = "Отменить действие макроса"
            mBar.Controls.Add(Type:=msoControlButton, Before:=1).Caption = x
            mBar.Controls(x).FaceId = 868
            mBar.Controls(x).OnAction = "back"
        End If
    End Sub
    ------------------------------------------------------------------------------------------------------
    Sub save()                                            'Функция сохранения _
                                                          (выполняется перед макросами)
     
        Application.DisplayAlerts = False
        If Is_sheet_exist("Титул (2)", ActiveWorkbook, xlWorksheet) Then
            Sheets("Титул (2)").Select
            ActiveWindow.SelectedSheets.Delete
            Sheets("Титул").Select
            Sheets("Титул").Copy Before:=Sheets(5)
        Else
            Sheets("Титул").Select
            Sheets("Титул").Copy Before:=Sheets(5)
        End If
        Application.DisplayAlerts = True
        Sheets("Титул").Select
    End Sub
    ------------------------------------------------------------------------------------------------------
    Sub back()                                            'Функция отмены действия макроса
        Application.DisplayAlerts = False
        If Is_sheet_exist("Титул (2)", ActiveWorkbook, xlWorksheet) Then
            Sheets("Титул").Select
            ActiveWindow.SelectedSheets.Delete
            Sheets("Титул (2)").name = "Титул"
            Sheets("Титул").Select
            Sheets("Титул").Move Before:=Sheets(1)
        End If
        Application.DisplayAlerts = True
    End Sub
    ------------------------------------------------------------------------------------------------------
    Function Is_sheet_exist(Sheet_name As String, book As Workbook, Worksheet_type As Long) As Boolean
    ' Функция проверки листа на существование
     
        Dim current_sheet As Worksheet
        Is_sheet_exist = True
        For Each current_sheet In book.Worksheets
            If current_sheet.name = Sheet_name And current_sheet.Type = Worksheet_type Then Exit Function
        Next current_sheet
     
        Is_sheet_exist = False
    End Function
    ------------------------------------------------------------------------------------------------------
    В итоге получилось быстрое создание резервной копии листа "титул" с возможности вернуть предыдущие состояние по горячей клавише в контекстном меню листа. Замечу что данный метод не заметен при работе (имеется в виду задержки при выполнении макросов).

    Всего записей: 53 | Зарегистр. 16-11-2008 | Отправлено: 10:50 01-04-2010 | Исправлено: TimoXa_Skot, 10:56 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    If ActiveCell.Row > 1 Это и есть проверка на выход выше первой строки.  Насчёт нижней границы можно не беспокоиться. У вас же не будет 65535 строк на листе?  

     
    Не вы не так поняли меня. мне надо что б не заходило за пределы строк "4" и "16".
     

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

     
    Ага это мне и надо. вот только возможно что табличка будет расти по мере добавления клиентов.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 12:18 01-04-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ага это мне и надо. вот только возможно что табличка будет расти по мере добавления клиентов.

    Значит, в функцию смещения строк, надо добавить отлов границ. У меня Офис 2003. То ли он не понимает ваш файл, то ли он у вас не на русском языке, вобщем выглядит вот так:

     
    Ячейку, по которой предлагаю отлавливать низ таблички, я выделил. Хз чего там у вас в оригинале написано, но если этот текст не меняется, то вот вам и решение. В коде я написал EndTable. Замените его на свой текст.

    Код:
    Public Sub Auto_Open() 'Назначаем горячие клавиши
      Application.OnKey "+^{UP}", "RowUp"  'Shift+Ctrl+Вверх
      Application.OnKey "+^{DOWN}", "RowDown"  'Shift+Ctrl+Вниз
    End Sub
     
    Sub Mov(r As Long, dr As Integer) 'Аргументы: Строка, Направление
    r1 = r + 1 * dr
    Dim tmp As Range
      With Rows(r).Worksheet.UsedRange
        Set tmp = .Rows(.Rows.Count).Offset(1).EntireRow
      End With
      Rows(r).EntireRow.Copy tmp
      Rows(r1).Copy Rows(r)
      tmp.Copy Rows(r1)
      Rows(r).EntireRow.Copy
      tmp.PasteSpecial xlPasteFormats
      Rows(r1).Copy
      Rows(r).PasteSpecial xlPasteFormats
      tmp.Copy
      Rows(r1).PasteSpecial xlPasteFormats
      tmp.Delete
      Call Link(Cells(r, 1), Cells(r, 1).Hyperlinks.Count)
      Call Link(Cells(r1, 1), Cells(r1, 1).Hyperlinks.Count)
      Rows(r1).Select
    End Sub
     
    Sub Link(r As Range, s As Variant) 'Аргументы: Ячейка, Стиль
      With r.Font
        If s = 0 Then
          .ColorIndex = 0
          .Underline = False
        Else
          .ColorIndex = 5
          .Underline = True
        End If
      End With
    End Sub
     
    Sub RowUp()
      If ActiveCell.Row > 4 Then Call Mov(ActiveCell.Row, -1)
    End Sub
       
    Sub RowDown()
      For i = 4 To 100
        If Cells(i, 1) = "EndTable" Then n = i - 1: Exit For
      Next i
      If ActiveCell.Row < n Then Call Mov(ActiveCell.Row, 1)
    End Sub

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 13:32 01-04-2010 | Исправлено: Maximus777, 14:18 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sniper1

    Код:
    Private Sub Workbook_Open()
    'остаётся прежний код  
    End Sub
     
    Sub prcRowUp()
    prcMoveRow False
    End Sub
    Sub prcRowDown()
    prcMoveRow True
    End Sub
     
    Sub prcMoveRow(blnDown As Boolean)
    Dim oRow As Range, oTable As Range, oCell As Range
    Dim intLClientRow As Integer, intOf As Integer
     
    intOf = blnDown * 2 + 1
    With ActiveSheet
        intLClientRow = .Columns(1).Rows(.Rows.Count).End(xlUp).Row - 2
        Set oTable = Range(.Cells(4, 1), .Cells(intLClientRow, 9))
    End With
    Set oCell = ActiveCell
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
        With oTable
            If Not Intersect(oCell, oTable) Is Nothing Then
                Set oRow = Intersect(oTable, oCell.EntireRow)
                With oRow
                    If (.EntireRow.Row < oTable.Rows(intLClientRow - 3).EntireRow.Row And blnDown) _
                        Or (.EntireRow.Row > oTable.Rows(1).EntireRow.Row And Not blnDown) Then
                        .Cut
                        .Offset(Abs(blnDown) * 3 - 1).Insert
                        .Offset(blnDown + 1).Insert Shift:=xlDown
                        .Copy
                        .Offset(intOf).PasteSpecial xlPasteFormats
                        .Offset(2 * intOf).Copy
                        .PasteSpecial xlPasteFormats
                        .Offset(intOf).Copy
                        .Offset(2 * intOf).PasteSpecial xlPasteFormats
                        .Offset(intOf).Delete Shift:=xlUp
                    End If
                End With
            End If
        End With
        oCell.Select
        .EnableEvents = True
        .ScreenUpdating = True
    End With
    End Sub

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 13:36 01-04-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vlth,
    ждём госприёмку, Снипера  

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 14:14 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maximus777, о да: это серьёзно

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 14:56 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ячейку, по которой предлагаю отлавливать низ таблички, я выделил. Хз чего там у вас в оригинале написано, но если этот текст не меняется, то вот вам и решение. В коде я написал EndTable. Замените его на свой текст.  

     
    Там у мня на иврите написано, попробовал ввести на иврите в ваш код, так как посоветовали, у меня тоже не получается. Мне кажется может можно вместо этого привязать к цветности заливки? как вы думаете? Странно почему иврит не понимает в кодах VB.
     

    Цитата:
    Sniper1
     
    Код:

     
    Так, попробовал ваш код и в нём действительно не даёт проскочить за рамки. вот тока почему то не фурычит у меня с вашим кодом по клавишам "CTRL+SHIFT+стрелка вверх или вниз", так должно быть или есть какая то ошибочка? в коде от Maximus777 эта функция работает.
     
    Добавлено:

    Цитата:
    vlth,
    ждём госприёмку, Снипера  

     

    Цитата:
    Maximus777, о да: это серьёзно  

     
    Ну думаю это ещё рановато но думаю долго не придется ждать.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 15:05 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    ... почему то не фурычит у меня с вашим кодом по клавишам "CTRL+SHIFT+стрелка вверх или вниз", так должно быть или есть какая то ошибочка? в коде от Maximus777 эта функция работает.  

    Sniper1, это очередной тест на Вашу внимательность :

    Код:
    Private Sub Workbook_Open()  
    'остаётся прежний код  
    End Sub
    У нас с Maximus777 разные названия процедур (RowUp и prcRowUp, например).
    Поскольку сочетание клавиш одно, Вам их нужно переназначать. Или комментить один код во время использования другого (это если Вы назовёте наши процедуры одинаково).

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 15:27 01-04-2010 | Исправлено: vlth, 15:28 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Цитата:
    ... почему то не фурычит у меня с вашим кодом по клавишам "CTRL+SHIFT+стрелка вверх или вниз", так должно быть или есть какая то ошибочка? в коде от Maximus777 эта функция работает.  
     
    Sniper1, это очередной тест на Вашу внимательность :
     
    Код:
    Private Sub Workbook_Open()  
    'остаётся прежний код  
    End Sub
    У нас с Maximus777 разные названия процедур (RowUp и prcRowUp, например).
    Поскольку сочетание клавиш одно, Вам их нужно переназначать. Или комментить один код во время использования другого (это если Вы назовёте наши процедуры одинаково).
     

     
    Вот именно ув. vlth что у меня два разных файла один в котором я провожу эксперименты с вашим кодом а другой для кодов ув. Maximus777
     
    Вот посмотрите сами правильно ли я делаю или у меня руки может быть кривые, что совершенно не отрицаю
    #
     

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 16:15 01-04-2010 | Исправлено: Sniper1, 16:18 01-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sniper1, файлы разные, а сочетание клавиш - ОДНО! Метод Applicaton.OnKey назначает клавишам процедуры в пределах ВСЕЙ Excel. Т.е. клавиши, как я уже говорил, для использования другого кода, нужно переназначать. Или открывать книги в разных экземплярах Excel. Или дать процедурам одинаковые названия, но при этом комментить в данный момент неиспользуемые.
    Проще всего закрыть книгу "Maximus777", и только после этого открыть книгу "vlth".

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 16:54 01-04-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Метод Applicaton.OnKey назначает клавишам процедуры в пределах ВСЕЙ Excel.

    Ага, есть такое. Тут надо аккуратнее действовать.
     
    Цитата:
    Проще всего закрыть книгу "Maximus777", и только после этого открыть книгу "vlth".

    Самое быстрое и точное решение.

    Цитата:
    может можно вместо этого привязать к цветности заливки?

    Без проблем. Особливо если её (заливку) сделать поуникальнее.
     
    А ещё можно комментарий к ячейке добавить и делать отлов через него.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 19:33 01-04-2010 | Исправлено: Maximus777, 19:36 01-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Проще всего закрыть книгу "Maximus777", и только после этого открыть книгу "vlth".
     

     
    Так я так и делаю а попробуйте у себя открыть этот файл и посмотрите у вас это сработает?
     
    Добавлено:

    Цитата:
    Цитата:
    может можно вместо этого привязать к цветности заливки?
     
    Без проблем. Особливо если её (заливку) сделать поуникальнее.  

     
    Поуникальнее это как? я всегда за, так как знаю плохого не посоветуете.
     

    Цитата:
    А ещё можно комментарий к ячейке добавить и делать отлов через него.

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

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 00:45 02-04-2010
    vlth

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Так я так и делаю  а попробуйте у себя открыть этот файл и посмотрите у вас это сработает?  

    Sniper1, процедуру
    Код:
    Private Sub Workbook_Open()  
    'остаётся прежний код  
    End Sub
    нужно вставить в модуль ЭтаКнига
    (Workbook_Open - событие книги, наступающее при её открытии. Соответственно, именно тогда выполняется код, расположенный в процедуре обработки этого события.)
     

    Всего записей: 258 | Зарегистр. 22-01-2008 | Отправлено: 01:33 02-04-2010
    Sniper1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Цитата:
    Так я так и делаю  а попробуйте у себя открыть этот файл и посмотрите у вас это сработает?  
     
    Sniper1, процедуру
    Код:
    Private Sub Workbook_Open()  
    'остаётся прежний код  
    End Sub
    нужно вставить в модуль ЭтаКнига
    (Workbook_Open - событие книги, наступающее при её открытии. Соответственно, именно тогда выполняется код, расположенный в процедуре обработки этого события.)  

     
     
    Так вот где мои ручонки кривые были . Я вижу вы ещё не работали над гиперссылками.
     
    Заметил ещё такое что в вашем решение передвижение строк происходит более плавно (почти совсем не заметно) чем в решение Maximus777, в решение Maximus777 таблица вся аж дрыгается, кто из вас знает почему так?
     
    Maximus777 жду вашей доработки с привязкой к заливке конца таблицы.

    Всего записей: 320 | Зарегистр. 04-08-2003 | Отправлено: 02:28 02-04-2010
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Excel VBA (часть 3)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru