Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Сортировка автомобилей по госномеру
 
AndreTM, вопрос, что называется, не в бровь а в глаз. Номера вносят в таблицу разные сотрудники и делают это у кого как получится. Ну с этим я что-нибудь придумаю. Будем считать, что перед первой буквой длинных номеров (типа А 315 МО 57) есть два пробела, перед буквами коротких номеров (типа АР 315 57) пробелов нет, разделитель во всех номерах - один пробел. И повторюсь, нужен именно макрос. Столбцов в таблице много и данные в них, разумеется, тоже должны сортироваться, но в примере макроса можно вставить один с произвольными данными, чтобы был понятен принцип, на остальные столбцы распространю сам.
Сортировка автомобилей по госномеру
 
Есть таблица с данными по автомобилям. Прошу подкинуть идею, как можно в Excel 2003 реализовать макросом сортировку в столбце, содержащем госномер? Стандартная сортировка не подходит. Дело в том, что номера имеют различный формат, например: АР 314 57 или В 653 МО 57, а сортировать (для удобства поиска нужного авто) требуется в первую очередь по возрастанию трёхзначного числа в номере.
При совпадении чисел сначала должны следовать номера с одной буквой перед числом с сортировкой (по алфавиту) по первой букве перед числом, затем по первой букве после числа, затем по второй букве после числа. Далее должны следовать номера с двумя буквами перед числом, соответственно с сортировкой по алфавиту по первой, а затем по второй букве. Регион всегда один и тот же и в сортировке не участвует.

Для наглядности привожу фрагмент требуемой последовательности отсортированных номеров:

 Е 310 ЕА 57
 К 314 РР 57
 А 315 НА 57
 В 315 МО 57
 В 315 МС 57
 В 315 НТ 57
АР 315 57
АТ 315 57
ВК 315 57
 О 317 АА 57

Как временное и сильно упрощённое решение - разбил госномер на два столбца, в первом - одна или две буквы, во втором - всё остальное. Это позволяет использовать стандартную сортировку, но для дальнейшего развития возможностей таблицы (выборки, отчёты), требуется, чтобы госномер был неделимым и содержался полностью в одной ячейке.
Переменная не сохраняет присвоенное значение
 
Да, я догадался. Вообще я, пытался сделать переменную глобальной, но объявлял не в том месте, поэтому не вышло. Кстати c переменной "c" надо поступить аналогично, иначе всем ячейкам возвращается один и тот же цвет.  
Спасибо за помощь.
Переменная не сохраняет присвоенное значение
 
В коде вторая снизу строка лишняя
Переменная не сохраняет присвоенное значение
 
Требуется при клике по ячейке заданного диапазона изменить её заливку на жёлтую. При следующем клике (по другой ячейке) окрасить в жёлтый новую ячейку, а предыдущей ячейке вернуть прежнюю заливку.  
Попытался так:  
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim r As Range  
Dim c As Integer  
If Not Intersect(Target, Range("Q9:AU109")) Is Nothing Then  
If Not r Is Nothing Then  
r.Interior.ColorIndex = c  
End If  
Set r = Target  
c = Target.Interior.ColorIndex  
Target.Interior.ColorIndex = 44  
End If  
End If  
End sub  
 
По замыслу, переменная r должна запомнить первую ячейку, по которой был клик (строка 8) и сохранить это значение до клика по другой ячейке, чтобы произошёл возврат прежней заливки первой ячейке (строки 6,7). Но переменная r при втором проходе кода почему-то очищается. Как этого избежать?
Сортировка с игнорированием области заголовков
 
Попробовал  
 
Range("A5:DB20").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:= _  
xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _  
DataOption1:=xlSortNormal  
 
Говорит, надо, чтобы ячейки имели одинаковый размер. Не понимаю. Ведь указываю конкретно, в каком диапазоне надо произвести сортировку данных. Какое Экселю дело до того, какие у меня ячейки выше указанного диапазона - объединённые или нет?
Сортировка с игнорированием области заголовков
 
Область заголовков таблицы включает в себя 4 строки с объединёнными ячейками. Можно ли каким-либо образом (посредством VBA) заставить Excel 2003 сортировать данные ниже области заголовков, игнорируя наличие объединённых ячеек в "шапке"?
Разделение строковой переменной
 
Благодарю, желаемый результат достигнут.
Разделение строковой переменной
 
{quote}{login=Юрий М}{date=29.08.2011 04:17}{thema=}{post}kukushkin, а как Вы, не предприняв дополнительных мер, продолжаете ввода данных в TextBox после нажатия на Enter?{/post}{/quote}  
 
В свойствах TextBox включен MultiLine и EnterKeyBehavior=True. Кстати, предложенный вариант не работает. При попытке вывести переменную через MsgBox, Excel говорит: Type Mismatch.
Разделение строковой переменной
 
Это если брать данные сразу из TextBox'а. А если нужно сначала всё слить в переменную, а потом брать из неё, будет ли работать этот механизм?  
Как отделить первую группу данных, из примера понятно, а вторую и т.д.?
Разделение строковой переменной
 
В TextBox вводятся данные, группы данных разделяются только нажатием Enter. По окончании ввода всё содержимое TextBox присваивается одной переменной.  
Как можно (если можно) с помощью макроса выделить из этой единственной переменной отдельные группы данных и загнать каждую группу в отдельную переменную.
После выполнения макроса не видно лист
 
Благодарю за помощь
После выполнения макроса не видно лист
 
Есть книга А с нехитрым макросом. Макрос книги А получает в качестве объекта книгу B, выборочно копирует из книги B в книгу А данные, производит их обработку и отсылает результат обратно в книгу В, после чего сохраняет книгу В. Если после выполнения макроса вручную открыть книгу В, то в ней ничего нет, точнее не видно листа с данными, хотя до выполнения макроса всё было видно. При этом, если обратиться к книге В через макрос, то видно, что данные там всё-таки есть, они накапливаются в соответствии с алгоритмом и никуда не исчезают. Почему лист может стать невидимым,при том, что в макросе практически нет никаких команд кроме GetObject, Copy, Paste, Sort и Save?
Переменная в имени элемента управления
 
Спасибо, помогло.
Переменная в имени элемента управления
 
Задача.  
В UserForm имеется 11 TextBox'ов. Несколько первых TextBox'ов могут быть заполнены. Нужно взять содержимое 11-го TextBox'а и вставить в следующий за последним непустым TextBox. Попытался так:  
 
Private Sub ()  
Dim n As Integer  
n = 1  
Do Until TextBoxn.Value Is Empty  
If TextBoxn.Value Is Empty Then  
TextBoxn = TextBox11.Value  
Else  
n = n + 1  
End If  
Loop  
End Sub  
 
Но Эксель отказывается признавать объект с лишней буквой в конце. Есть ли способы прикрутить переменную к номеру TextBox'а?
Альтернатива автофильтру
 
{quote}{login=webley}{date=10.08.2011 04:31}{thema=}{post}можно скрывать строки по условию{/post}{/quote}  
Сначала так и хотел, только условие больно мудрёное. Смысл такой: необходимо проверить значения всех ячеек заданного столбца от первой строки до последней непустой строки столбца "A". Если проверяемое значение соответствует одному из трёх заданных значений, то всю строку надо скрыть. В принципе, не сильно сложно, но проблема в том, что столбец, в котором проверяются ячейки нельзя указать прямо, его номер вычисляется формулой. Range не хочет принимать столбец в виде числового значения, только в виде буквы, а как обойтись без Range пока не представляю.
Альтернатива автофильтру
 
В макросе имеется строка:  
 
Cells(6, 3 + User).AutoFilter Field:=(3 + User), Criteria1:="<>Выполнено", Operator:=xlAnd, Criteria2:="*"  
 
Чем можно заменить эту строку, чтобы выполнялась та же самая фильтрация, но в строке заголовков не появлялись кнопки выпадающего списка автофильтра?
Зависание при попытке закрытия приложения макросом
 
Да, если  после End If сразу поставить End Sub, то всё работает. Но у меня после End If программа продолжается, там есть цикл Do Until, внутри которого идёт обращения к книге Tasks, и этот кусок программы каким-то мистическим образом препятствует выполнению Application.Quit, хотя находится ниже. В общем после долгих мучений нашёл выход, вставив Exit Sub после Application.Quit, хотя причину зависания так и не понял.
Зависание при попытке закрытия приложения макросом
 
К сожалению, и в этом случае приложение виснет вместо того, чтобы закрыться.
Зависание при попытке закрытия приложения макросом
 
Замысел следующий. При открытии книги пытаемся получить в качестве объекта другую книгу.  
Если получается, производим с ней некоторые действия. В случае ошибки выдаём сообщение пользователю и закрываем только книгу, если у пользователя имеются другие открытые книги  (этот вариант работает) либо приложение целиком, если других открытых книг нет (в этом случае виснет). Код приведён ниже. Подскажите, в чём ошибка.  
 
Sub Workbook_Open()  
On Error Resume Next  
Set Tasks = GetObject("C:\......xls")  
If Err Then  
MsgBox ("Файл базы данных отсутствует. Таблица будет закрыта")  
ThisWorkbook.Saved = True  
If Workbooks.Count > 1 Then  
ThisWorkbook.Close  
Else  
Application.Quit  
End If  
End If  
......  
End sub
Разрешения на защищённом листе
 
Можно ли макросом запретить выделение всех ячеек листа, за исключением указанного диапазона, при этом запретив в этом указанном диапазоне изменение ячеек пользователем? Если да, то как?
Макрос для запрета сохранения
 
Спасибо.
Макрос для запрета сохранения
 
Можно ли макросом запретить сохранение файла так, чтобы попытка сохранения просто игнорировалась?  
Единственный работающий вариант, который пришёл в голову:  
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  
ThisWorkbook.Saved = True  
ThisWorkbook.Close  
End Sub  
 
Проблема в том, что приходится закрывать книгу, а если этого не сделать она сохраняется.
Проверка множества вариантов
 
Допустим, ячейки А1:А10 могут принимать 6 значений, например "РОМА", "ВАСЯ", "ПЕТЯ", "ИРА", "МАША", "ОЛЯ". Требуется проверить, являются ли текущие значения всех десяти ячеек мужскими именами. Если да (в любых возможных комбинациях), то name = True, в противном случае False.  
Подскажите пожалуйста, как наиболее оптимально осуществить такую проверку? Пока в арсенале только If-Then, но, может, есть вариант покороче?
Операции с файлами
 
Весьма признателен! То, что нужно и даже больше. Очень полезные ссылки!
Операции с файлами
 
Подскажите пожалуйста примеры макросов для осуществления нижеследующих действий с произвольным файлом.  
 
1. Создание.  
2. Удаление.  
3. Переименование.  
4. Копирование.  
5. Перемещение.
Скрытый обмен данными между книгами
 
Уточню. Книгой-процессором управляет пользователь. Через интерфейс, основанный на UserForm'ах, он указывает какие данные надо взять и что с ними сделать. Т.е.процесс не полностью автоматический, никакие планировщики не нужны. Данные берутся небольшими порциями, так что проблем с нехваткой памяти не будет. Совсем скрывать Excel нельзя, книга-процессор должна постоянно быть перед глазами. Надо лишь чтобы в процессе работы окошки открываемых макросом книг не показывались и в панели задач их вкладки не мельтешили.
Скрытый обмен данными между книгами
 
Допустим, имеется несколько книг с различными данными (без формул, без макросов, просто хранилища упорядоченной информации) и ещё одна книга-процессор, в которой реализованы алгоритмы обработки данных и соответствующий интерфейс. Книга-процессор должна обращаться к книгам-хранилищам брать из них массивы данных, обрабатывать и отправлять результат обратно. Вопрос: как можно в макросе организовать чтение из книг-хранилищ и запись в них, чтобы визуально этот процесс никак не проявлялся ни в самом Excel (открытием окон) ни, желательно, в панели задач Windows? В диспетчере, так и быть, пусть появляются :)
Вопросы по работе с общедоступными книгами
 
Получается, что параметры доступа к файлу каждый пользователь настраивает для себя сам. А можно ли посредством макроса сделать так, чтобы у любого открывшего файл пользователя он автоматически обновлялся с определённой периодичностью, отображая изменения вносимые другими пользователями и чтобы при этом пользователь, открывший файл не мог отключить автообновление или изменить его периодичность?
Вопросы по работе с общедоступными книгами
 
Два вопроса.  
 
1. На сетевом диске имеется книга с совместным доступом. Допустим, один из пользователей внёс изменения и сохранил их. Увидят ли сразу другие пользователи, у которых эта книга постоянно открыта, внесённые изменения или для этого им нужно закрыть и снова открыть эту книгу у себя?  
 
2. При открытии файла Excel, для которого не настроен совместный доступ, появляется предупреждение о том, что он используется другим пользователем. При этом имя пользователя всегда одно и то же - User. Что надо сделать, чтобы в этом сообщении отображалось уникальное имя пользователя?
Страницы: 1 2 3 След.
Наверх