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

Страницы: 1 2 3 4 5 6 След.
Создать вертикальный график (как вариант - повернуть обычный на 90 градусов)
 
Привет.
На помощь уповаю )

В столбце с текстами в объединенных ячейках информация о телепрограммах (это так, для понимания, на график не влияет). Над этими данными нужно расположить кривую, которая отражает какие-то данные.
Где-то так:

Сейчас кривая строится в коде - последовательно, от точки к точке... А таких диапазонов (кривых) 17-20. В каждой линии по 1430 точек... А еще в каждом диапазоне ячейки объединять... медленно это все.

Что подумалось? Над каждым из 20 диапазонов расположить прозрачный график с видимой линией. Данные для графиков собрать (это из других файлов выбирается) и выгрузить в один диапазон на служебный лист. Вж-ж-жик - и линии выстроены. Красота!
Но эту "красоту" пока что ломает проблема: графики-то построить можно, но как их расположить вертикально?
Пробовал применить точечную диаграмму, но там коэффициенты подбирать надо, пока не осилил. Картинкой (камерой) нельзя - закроет данные.

Вот такая заковыка...
Чемпионат Мира по Excel
 
YouGreed поделился ссылкой. Показываю здесь
Оптимизация использования типов переменных Integer, Long и проч.
 
По данным разведки, Integer занимает ровно столько же места, сколько и Long :)

Я тоже отдаю предпочтение скорости.
Сообщение #8, там ссылка на статью, в которой отмечается, что Integer все равно преобразовывается в Long.
Откуда много копий открываемой книги?
 
Попалась в руки книжечка. По словам хозяина, первоисточнику (или этой книге) больше 10 лет. Калькулятор там был, топорно сделанный  с помощью простых формул и макрорекодера еще на 2003, как я понимаю... Три листа с таблицами и данными, с десяток битых имен. Все удалил, но вопрос остался.

Открываем книгу.
Смотрим в диспетчере задач - запущено два процесса. Как я понимаю, само приложение и книга
Смотрим в редактор VBA - открыта одна книга.
Смотрим заголовок открытой книги: 52_копии.xls:1 Уже интересно - что за единичка прицепилась?
А теперь заглянем глубже: Файл-Параметры-Дополнительно-Параметры для книги, открываем список... ба-а-атюшки! 52 книги.

Откуда столько радости?
Странная сортировка тем в общей ветке
 
У всех или только у меня так?

Почему на первой странице основной ветки темы 2012 года? В других ветках нормально.
Была сортировка (как в личных сообщениях), но сейчас не отображается? Не обращал внимания... Возможности настроить сортировку не вижу.
Практика или самообучение, упражняемся в софистике )
 
Цитата
buchlotnik написал: щас как придет мелконемягкий...
Сам хотел написать о практике... ну да ладно :)
Предупреждение о том, что книга открыта другим пользователем
 
Книга НЕ в общем доступе (вкладка Рецензирование-Доступ к книге, снята галка "Разрешать изменять файл нескольким пользователям").
Если такая книга открыта, то другой пользователь, открывающий книгу, видит сообщение:

Пользователь игнорирует его, меняет/форматирует, через какое-то время пытается сохранить свою работу... не тут-то было! А спешить надо медленно.. Надо внимательно читать предупреждение. И такая ситуация не выдуманная - обратились с просьбой решить проблему.

Для таких вот быстрых придумалась простенькая доработка. Авось кому-то еще понадобится.
Возможный недостаток: автосохранение книги при закрытии (не всегда это нужно). Имена пользователей должны быть разные.
Скрытый текст

Смысл такой.
Ячейка для сообщения. При закрытии книги пользователем, который открыл ее первым, ячейка очищается, т.е. в закрытой книге ячейка пустая.
Открывается закрытая книга. Макрос проверяет ячейку. Там пусто, в ячейку заносится сообщение "В книге работает Вася", книга сохраняется.
Открывается открытая книга. Макрос проверяет ячейку. Ячейка заполнена, значит, менять там ничего не нужно.

Результат: сообщение всегда показывает имя пользователя, который открыл книгу первым. И если уж при этом товарищ будет терять время - его проблема )

В модуль ЭтаКнига
Код
Private Sub Workbook_Open()
    With ws0
        If .Range("K2").Value = "" Then
            .Range("K2").Value = "В книге работает" & Chr$(10) & Application.UserName
        End If
    End With
    
    Call SaveBook
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ws0.Range("K2:K14").ClearContents
    Call SaveBook
End Sub

В общий модуль
Код
Sub SaveBook()
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.DisplayAlerts = True
End Sub

ws0 - внутреннее имя листа, можно заменить на видимое: Worksheets("лист1")
VBA. Открыть ненадежную книгу (режим Protect View)
 
Взываю к коллективному разуму )

Исходные.
Папка "test". В ней множество папок, в каждой из которых до 30 книг. Книги создавались сторонним приложением, многие из них открываются в режиме защищенного просмотра.
Папка "test" добавлена в исключения защитника системы. Как я понимаю, если папка в исключениях, то и все ее содержимое в исключениях.

Проблема.

Открывание макросом книг с Protect View приводит к ошибке - система считает, что она меня спасает от катастрофы.
Код
Sub test()
    Dim wBook As Workbook
    Dim sPath As String, sFName As String
    
    sPath = "D:\": sFName = "abc.xls"
    Set wBook = Workbooks.Open(Filename:=sPath & sFName, ReadOnly:=True)
    
    Set wBook = Nothing
End Sub

ReadOnly:=True не помогает.
Можно ли обойти защиту?  Нужно только открыть и взять в массив данные.

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

P.S. Изменил переменную (замечание ниже)
Непонятное поведение функций ПОИСК, НАЙТИ при поиске цифры в экспоненциальной записи
 
Решил вынести в отдельную тему (ноги растут из этой темы).

Обнаружил, что в некоторых случаях (строки 17, 20 - там, где порядок Е-05) ПОИСК, НАЙТИ ищут ПО ТЕКСТУ экспоненциальной записи. Почему - не понял.
О модераторе
 
Привет всем.

Последнее время очень мало времени на форум. Поэтому решено - подаю в отставку )
Прошение направлено администратору.
rubberduck - COM-надстройка для VBA
 
Нашли такую вот игрушку резновую (кому интересно - на GitHub выложены коды.)
COM-надстройка, нтегрируется в редактор, закладка на панели, можно вызывать из меню по ПКМ.

На первый взгляд - неплохая вещица: поиск ссылок на процедуру; список, где применяется переменная (вплоть до указания строки и символа); что-то типа редактора-подсказки по регулярным выражениям; выделение строки или блока кода в отдельную процедуру; компиляция (возможно, только для своей работы); подсказки по коду - где что можно улучшить; изменение порядка передаваемых параметров; дерево проекта с процедурами; Unit-тесты писать...

В общем, всех. кто уже видел или попробует,  прошу делиться впечатлениями - а оно надо? :) Может, все это есть в недрах редактора?
Я пока (после получасовых проб) доволен
Работа с другим файлом. Назначенное сочетание клавиш мешает макросу
 
Пришла пора спрашивать совета.

Думалось прицепить обработку в надстройку или Personal. Обнаружил такую неприятность...
Открываем другой файл (расширение не важно), берем данные (в примере ничего не берем), закрываем. Обычная работа с Workbooks.Open:
Код
Sub testtest_()
    Dim sFName As String
    
    With Application.FileDialog(msoFileDialogFilePicker)
        If .Show = False Then
            MsgBox "Файл не выбран!", 48, "Ошибка": End
        Else
            sFName = .SelectedItems(1)
        End If
    End With
    
    ' With Application: .ScreenUpdating = False: .DisplayAlerts = False: End With
    With Workbooks.Open(Filename:=sFName)
        .Close
    End With
    ' With Application: .ScreenUpdating = True: .DisplayAlerts = True: End With
    
    MsgBox "OK", 64, ""
End Sub
Запуск из редактора или кнопкой - без проблем, код отрабатывет полностью.
Если запускать назначенными клавишами (Ctrl+Shift+q) - вываливается после открытия другого файла.

Set wBook = Workbooks.Open(Filename:=sFName), отключение обновления экрана, окно выбора файла в отдельной процедуре, небольшая задержка перед/после открытия файла  - то же самое, без изменений - файл открылся и процедура завершилась (без ошибок).

Почему и как обойти проблему?
Прошу помощи.
Win10, Office2010
О байтах
 
Цитата
БМВ написал: надо бережно относится к ресурсам даже если это пара байт :-)
Даже если один!
Цитата, взятая из одной из тем, обязала меня поделиться. Это не на высокоуровневых блоками штамповать. Проникнитесь филигранностью работы )
История одного байта
Определение границ цикла for/next
 
При разборе кода возник вопрос и поставил под сомнение то, что границы цикла определяются перед первым шагом и не изменяются.

Удаляем лишние листы (цикл1):
Код
    For i = Sheets.Count To 2 Step -1
        Sheets(i).Delete
    Next i

А вот прямым ходом (цикл2):
Код
    For i = 2 To Sheets.Count
        Sheets(2).Delete
    Next i

Теперь вместо Sheets.Count подставим переменную. Первому циклу все равно, второй, естественно, вывалится в ошибку  (цикл3):
Код
    k = Sheets.Count
    
    For i = 2 To k
        Sheets(i).Delete
    Next i

Вот и вопрос: как работает прямой цикл (цикл2) при уменьшении количества листов? Переопределяется верхний предел?

Ноги растут отсюда
DblClick в ListBox вызывает выделение другого элемента списка
 
Какая-то непонятка, прошу помочь разобраться.

Вызов формы - DblClick на первой строке.
На форму в  ListBox выводится список наименований столбцов (шапка таблицы). DblClick на элементе списка - соответствующий столбец на листе скрывается/отображается
Это работает.

Но при этом кавардак с выделениями в списке, хотя список каждый раз пересматривается.
Например, скрываем столбец  3 - галка на нем не ставится, но ставится на первом. Показываем третий - на нем ставится галка (хотя должа быть снята).
Если форму переоткрыть - выделены все нормально.
Код
' скрыти/отображение столбцов
Private Sub lbList_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Long
    With lbList
        i = .ListIndex: If i = -1 Then Exit Sub
        If .ListCount = 0 Then Cancel = True
        
'        Application.ScreenUpdating = False
        rRng(i + 1).EntireColumn.Hidden = Not rRng(i + 1).EntireColumn.Hidden
'         Application.ScreenUpdating = True
    End With
    
'    Application.Wait Time:=Now + TimeValue("0:00:01")
    Call ChangeList ' к перезаписи списка
End Sub 

На 14 строке (вызов Call ChangeList) поставить точку  останова. Если запустить процедуру и  после остановки продолжить по F5 - список отображается корректно. Уже и задержку ставить пробовал, и  перезапись rRng  -  не помогает.
Не вижу какой-то мелочи или действительно проблема?


Полный код формы
Жесткий диск умер. А ведь он предупреждал!
 
Повествование о небольшой глупости.

С месяц тому на ноуте появилась проблема. Перестал определяться винт. Головка несколько секунд чего-то пытается найти (слышно прощелкивания), потом сообщение о том, что нет диска, с которого систему загрузить. Прогреется, подумает, решит, что достаточно повредичал, и через несколько перезагрузок запускается.
Видя такое дело, сохранил всю информацию на внешний накопитель. Получил новый диск, загрузил систему. Потом определил, что немного поднятая задница диска  (старого) позволяет ему работать без напряга и система загружается с пол-оборота.
До субботнего вечера работал со старым HD, временами - backup. Иногда - попытки включения несколько раз... Почему не перешел сразу на новый? Со временем, как обычно, появляется мусор, файлы раскиданы не там и не те... В общем, нужно в порядок приводить. А это время...

Так вот. Субботний вечер. Срочная работа и сложная. При тестировании файл зависает надолго. Сначала бы backup'уть.. Но так как до этого боролся с зацикливанием, грешил на программу.  Два часа убил в поисках бесконечных циклов - нет! Поздно, но догадался отправить на проверку. Результат обработки - 20 секунд.
Понятно. Диск в предсмертных судорогах. Надо бы сохранить последние дни, а он, негодник, зажал информацию и сам зажался - все виснет. Выключение. Диск гарячущий. Немного остыл - опять его в ноут. Пробы запустить. А он только беззлобно щелкает. Умраю, мол. Или умер.

Беда небольшая. 4 или 5 дней восстанавливаю из почты, Скайпа. Но все-таки что-то потеряно.
Первое. Всем.
Зная о полезности и нужности создания архивов и видя проблемы, не нужно надеяться на "авось пронесет".
Второе. Мне.
Вдруг кто чего посоветует. Отдавать спецам - не стоит оно тех затрат. Пока что обнаружил потерю одной работы. Не успел отправить и пол-дня пропало. Надо с нуля сделать. Какие-то записи, какие-то файлы...  Не очень болезненная потеря. Взять увесистый молоток - так не настолько я расстроен. Советы типа "остудить в холодильнике" или "прогреть в микроволновке" читал :)  
Мне бы его реанимировать на 10 минут. Ну, не получится - и ладно.

На всякий случай: место работы - ноут Lenovo G580, фамилия его -  ST 1000 LM024. С 2012 года трудился, светлая ему память :)
Randomize + Rnd генерирует одинаковые числовые последовательности
 
Здравствуйте. Разрешите обратиться? Спасибо, обращаюсь :)

Реальная задача: покер, раздача карт на 2 или более игроков, количество вариантов (строк) любое (задается).
На основе задачи состряпал пример - 10 случайных уникальных чисел в строке. Два доп. столбца (A:B) - для помощи в подсчете повторов. Повторы (все дублированные) считаются в L2. Третий доп. столбец (справа, M) показывает позицию дубля строки. Галка - условие запуска ГСЧ (вкл/выкл)
Для уменьшения размера файла формулы в доп. столбцах удалены. Растянуть на нужное количество строк.

Обнаружил непонятное поведение Randomize: генератор случайных величин помогает создавать одинаковые числовые последовательности! и хочу понять причину этой ошибки

Варианты 1-2.
UDF не используем. Случайные значения получаем в основном макросе, Randomize  есть/нет.
Результат - повторов не обнаружено.

Вариант 3.
UDF используем. Без Randomize
Результат - повторов не обнаружено.
-------------- дальше интереснее --------------------------------------------------------------------------------
Вариант 4.
UDF используем. Randomize включаем напрямую, без условия Randomize вкл/выкл.
Результат - повторы строк зашкаливают. На 1000 вариантов строк с дублями - более 800

Вариант 5.
UDF используем. Randomize включаем через условие "Randomize вкл/выкл."
Результат - повторы есть, но на порядок меньше - не более 80

Еще наблюдение (проверять на варианте 4, там нагляднее).
Количество дублей одной строки зависит от количества строк. Это понятно - больше вариантов, больше вероятность повтора. Интересно другое: дубли повторяются через определенный промежуток. Количество строк в промежутке зависит от количества выводимых значений в одной строке! 10 значений - дубль через 26 строк, 6 значений - через 47-49 строк, при 4 значениях - через 81-82 строки...

Вопросы. Как объяснить такое нехорошее поведение генератора (вар. 4 и 5)?
1. Почему при включении генератора отдельной UDF последовательности дублируются?
2. Почему при включении Randomize через If дублей гораздо меньше?
3. Почему дубли повторяются через определенный промежуток?
код

Win7, Office-10, 32-bit
Работа с массивами. Размерности массивов
 
Если размерность массива не задана при объявлении, то  ее можно менять при использовании.
О вредном GoTo
 
Когда-то, когда макросы были страшные, "GO-TO!!!" звучало как глас из Мордора, макросописцев считал чародеями ), оператор обсуждался то ли в отдельной теме, то ли параллельно с другим вопросом...
Противники, готовьте помидоры (все равно не долетят, разобьются о личное_мнение).

Цитата из темы основного форума:
Цитата
Irregular Expression написал: существуют тонны написанных книг о вреде GoTo
... и относятся они в большей степени к языкам более высокого уровня.
Догмы - они тоже вредны бывают. Тем, у кого "Windows маздай", "GoTo отстой", "Наша Галя круче всех" и проч., без рассуждений и доводов, лучше проходить мимо. Принимается только трезвый взгляд на жизнь (под небольшим градусом тоже допускается :)).

Негатив от безусловного перехода какой? Правильно, нарушается структура, можно потерять нить... Но! Справедливо это для больших процедур, длинных листингов. В макросах, в которых в видимой части экрана наблюдаем и выход, и строку перехода, большой беды от GoTo нет. Или в кодах, где заведомо известно, куда нас понесет (например, к выходу из процедуры).
Второй минус  использования безусловного перехода - человек привыкает его использовать. А это может быть большим препятствием для работы с более продвинутыми язуками (не уверен, только логический вывод из собственных размышлений)

Бесспорно, выходить из одиночного цикла лучше по Exit For.
Кстати, прямо при написании возникла интересная мысль: Exit For по факту - тот же же безусловный переход, но четко привязанный к месту применения и к строке перехода. Из той же песочницы прочие Exit'ы. Получается, что все они - операторы безусловного перехода!
И книжки пишут, и опытные товарищи советуют вложенные циклы применять по минимуму - медленно работают. Но не всегда (даже очень часто) не получается следовать этому правилу. Выходить наружу из внутреннего цикла можно по флагу, но это дополнительная проверка (если три цикла - две проверки). Гораздо удобнее сказать: а пошел бы ты на GoTo :)

Сам не сторонник применения GoTo, но и отказываться от него в VBA не стоит. Это как с летучими функциями листа: если есть замена не хуже, то всякие СМЕЩ, ДВССЫЛ применять не нужно. Но ведь есть случаи, когда без них не обойтись или замена будет хуже.

Использую безусловный переход в двух случаях (больше с ходу не вспомнил):
1. В начале процедуры для выхода из нее при проверках . Т.е. всегда понятно, что GoTo - это завершение и переход следует искать недалеко от End Sub.Да и зачем искать, если понятно? :) Нет, не замена Exit Sub.
Например, нужно открыть другой файл. Отключаем сообщения, обновление экрана, открываем книгу... и тут проверки на наличие листа, корректность данных, поиск таблицы и проч. Просто Exit Sub не получится - нужно включить отключенное. Наставить каскад If - код разрастается и становится менее читабельным. GoTo здорово помогает.
2. В этих самых циклах. Здесь использую очень редко. Тоже применяю флаги или разделение циклов. Но иногда бывает. Если точка перехода - вот она, рядом, и любой другой пользователь увидит ее без напряга. А еще комментарий подвесить и имя понятное дать...

Ага, вспомнил еще одну "штучку" - обработчик ошибок (вообще, его бы тоже пореже задействовать). Куда-то же люди переходят: On Error GoTo.... И это советует кто? Разработчик! (если бы не советовал, придумал бы другой флаг).

Так что книги читать очень полезно, но и думать не запрещается )
Получить номер цвета при градиентной заливке
 
Всем привет.
И у меня созрел вопрос. Обнаружил странность при получении номеров цветов при градиентной заливке.

Залиты две ячейки: одна градиентной, вторая - одноцветной заливкой. Вторая только для сравнения. Нажимаем кнопку "записать" - номера цветов записываются в ячейки:
Код
Sub RecordColor()
    With Range("C5").Interior.Gradient.ColorStops
        Range("D5").Value = .Add(0).Color ' цвет1 градиентной
        Range("E5").Value = .Add(1).Color ' цвет2 градиентной
    End With
    
    Range("D6").Value = Range("C6").Interior.Color ' цвет ячейки
End Sub

Странности начинаются, если кнопку нажимать повторно:
         
- второе срабатывание макроса вызывает подсветку цветов градиентной заливки белым и изменение номера первого цвета (ячейка D5) на 16777215;
- третий проход видимых изменений не вызывает;
- четвертый раз макрос меняет номер второго цвета (ячейка E5) на 16777215;
- пятый - подсветка белым пропадает;
- шестой - подсветка появляется;
- на седьмой раз макрос показывает правильный номер первого цвета;
- далее номер опять меняется, при последующих запусках подсветка то появляется, то пропадает, номера цветов могут определиться нормально, а могут как 16777215 (зависимости от чего-либо не обнаружил)
Запись номеров в ячейки другого листа и запуск кода из другого листа на результат не повлияли.

Прошу помочь разобраться. Вопросов два:
1. Правильно ли определяю номер цвета?
2. Что происходит? (на другой машине не проверял)
ZX-Spectrum - сегодня ему 35
 
35 лет назад, 23 апреля 1982, появился ZX Spectrum
Цитата
Все эти игры умещались либо в 48, либо в 128 Кб оперативной памяти.
Даже меньше, ибо система забирала часть по  себя.
А еще можно было писать программы на BASIC

Бум радиолюбительства! В 80-х  на территории Советского Союз первый компьютер с цветной графикой, который можно было собрать в домашних условиях из доступных деталей. У меня до сих пор хранится один из собранных и запаянная плата под планарку (так и не довел до запуска). А вот телевизора и магнитофона уже нет :)
Смещение вставляемого объекта относительно ячейки
 
Случайно обнаружил непонятное смещение картинок при формировании каталога с рисунками.

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

В примеретоко один рисунок, строки копируются до 500-й (в первых строках смещение незаметно). В рабочем файле разные рисунки смещаются на одинаковую величину.
Папка с рисунком должна находиться рядом с файлом-обработчиком.

Есть ли объяснение такому смещению?
код
Тип переменной Byte в цикле с отрицательным шагом вызывает ошибку
 
Обнаружил странность, которую не могу объяснить
Код
Sub DelSheets()
'Dim i As Long
Dim i As Byte
    With ThisWorkbook
        For i = .Sheets.Count To 2 Step -1
            .Sheets(i).Delete
        Next i
    End With
End Sub

Переменная типа Byte. В таком варианте  - ошибка Owerflow. Проверил, листов точно не больше 255 :)
При типе переменной Integer, Long переполнения нет.
Копирование данных из активного листа в другую книгу, код из книги работает, не работает из надстройки
 
Прошу помочь разобраться.
Макрос при запуске из книги работает, при запуске з надстройки - не хочет.

В папке четыре файла.
склад - книга для записи данных.
шаблон - книга с макросом. Данные из активного листа записываются в склад. Код работает.

надстройка - файл надстройки с макросом, идентичным макросу в шаблоне
В рабочем варианте из шаблона создается отдельная книга копия, в ячейку А3 записывается путь к папке. Здесь книга уже создана
копия - из этой книги вызывается код надстройки - Ctrl+Shift+A. Надстройка открывает файл склад и... все, макрос умывает руки и выходит.
В пошаговом проходе (F8) надстройка работает.

Для проверки разархивировать папку и разместить ее на диске С, подключить надстройку.
Возможно, открывать ничего не нужно и ошибка найдется в коде:
[ Закрыто] Дополнение к правилам этой ветки
 
Цитата
kovtunenkoandrey:
Уважаемый модератор,а где написано, что для принятия участия я должен приносить форуму пользу? Считаете мое участие нарушением правил форума, исключите мой ответ или заблокируйте. Как создаются форумы и поддерживаются я в курсе, у вас есть вышеописанная возможность.
1. Вы хотите получить материальную выгоду на этом ресурсе. При этом отняв эту выгоду у тех, кто этого заслужил, кто принес ресурсу пользу, помогая безвозмездно в основных ветках форума. Такое нужно прописывать в правилах?
2. Вас здесь не знают. Какой у Вас уровень подготовки, как Вы выполняете работы - неведомо. Вполне возможно, что такая темная лошадка принесет вред ресурсу.

Поэтому - сначала проявить себя, а потом иметь возможность выполнять работы платно.
Грустный праздник
 
Был разговор еще до Нового года… Саша наотрез отказался размещать тему о помощи.
Сейчас он редкий гость на форумах.

17 февраля День рождения Саши (ikki)
Считаю, не будет большим преступлением, если обнародую часть преписки в Скайпе. Небольшие зарисовки на тему… Читайте.
Просить помощь ikki отказался, но в День рождения можно ведь сделать человеку подарок? Даже доброе слово – тоже подарок.
Кошелек ikki: Яндекс.Деньги
см. ниже

Скрытый текст
Mac изменил шрифт на пользовательской форме
 
Разработка 2014 года. Работали, не тужили... Пока не отправили файл на Мас.
Там с файлом поработали. Как пользователи (VBA запаролен). Файл вернули. В итоге имеем такую форму пользователя

Шрифт Tahoma остался. Но внешне - совсем не Tahoma

Что с кодировкой?
Такое может случиться не только на Мак'е?
Есть ли пилюля от этой болезни?
Пароль на защиту листа и работа автофильтра
 
На форуме обсуждалось несколько раз, но решения не нашел.
В  коде прописать защиту листа, на котором разрешить работу автофильтра. Это и макрорекодер умеет:
Код
.Protect DrawingObjects:=True, Contents:=True, _
                                Scenarios:=True, AllowFiltering:=True

Проблема в том, что нужна защита с паролем.
.Protect ("пароль") не устанавливает параметры защиты.

Обходной путь1.
До обработки  установить защиту листа с разрешением работы автофильтра, снять защиту. Лист запоминает предыдущие установки и при защите .Protect ("пароль") автофильтр на защищенном листе работать будет.
Обходной путь2.
Лузер советовал устанавливать параметры при открытии книги.

Может, кто знает прямую дорогу?
Инсульт - дело нешуточное
 
Сообщение в личке:
Цитата
У меня очень сложный вопрос. Описать не могу, могу рассказать голосом.
Хочу попросить материальной помощи через сайт, рассказать ситуацию и насколько это позволяет политика сайта.
Связались, поговорили… Просил написать, т.к. сам не может.

Михаил С. Из Пятигорска. Многие знают его по Планете, хороший специалист Excel.
У Михаила в апреле случился инсульт, отнялись ноги. Сейчас разговаривает осмысленно, заикается. Писать-читать не получается – после одного-двух предложений теряется смысл прочитанного.

Живет с матерью 80 лет, доходы на данный момент – пенсия матери. Естественно, для восстановления нужны лекарства. Обратиться за помощью не к кому...

Вот такая-вот грустная ситуация.
Обращаюсь ко всем неравнодушным: если есть возможность, помогите человеку.
Если будут вопросы - ко мне в личку или (у кого есть связь) Михаилу на телефон.

Реквизиты (лучше карта, т.к. электронные деньги еще выводить нужно):
- карта Сбербанка
             4276 8600 1439 0518
- ЯД     41001136675053
- WM   R389613894253
          Z206607432412
          E139368654205
QiWi     9097715387
Ошибка округления ОКРУГЛВВЕРХ?, ГПР (ВПР, ИНДЕКС)+ОКРУГЛВВЕРХ=ошибка
 
Тема-источник
Пример, созданный в чистом файле, прикрепляю здесь. В ту тему можно и не ходить.
=ГПР(ОКРУГЛВВЕРХ(0,71;1);$D$2:$H$3;2;)
Почему ошибка при, казалось бы, правильном округлении?
Если вместо функции округления поставить константу, все работает.
С ВПР и ИНДЕКС та же ошибка
Страницы: 1 2 3 4 5 6 След.
Наверх