Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Заливка цветом ячеек учитываемых формулой в расчете
 
Доброго всем времени.

Возможно ли каким-то способом залить каким-либо цветом ячейки участвующие в расчете формулы? К примеру: =ОКРУГЛ((G62+G66+G67+G72+G73)*G86*1,02;2).Понятно, что при нажатии F2 на ячейке с формулой, все ячейки расчета подсвечиваются. Но бывает, что надо проверить учтена ли вот эта ячейка в формуле? Значит надо переместиться в ячейку с формулой, жать  F2, скролить лист в поисках нужной строки/ячейки, и при этом ни в коем случае не выходя из режима редактирования итоговой ячейки. А так, раскрасил - и сразу видно, где и что надо поправить.
Выделение диапазона аналогично предыдущему в соседнем столбце или строке
 
Доброго времени.
Возможно ли каким-то образом повторно использовать выделение диапазона, но у же в соседнем столбце или строке? Например, для какого-то группового действия выбран диапазон B4:B11, после выполнения действия надо выбрать такой же диапазон в другом столбце,к примеру D4:D11, затем M4:M11. В каждом из диапазонов выполняется свое действие, скажем - изменение формулы. Понятно, что это делается каждый раз новым выделением нужных ячеек. А нет ли чего-то вроде копирования формата, что-то наподобие копирования набора?
Фильтрация сразу по нескольким столбцам по цвету текста.
 
Доброго времени всем.
Подскажите, возможно ли отфильтровать сразу по нескольким столбцам строки, в которых присутствуют значения выделенные красным шрифтом? Реальная таблица имеет бОльшее количество строк и столбцов, необходимо проанализировать данные нуждающиеся в уточнении, поэтому и желательно отобразить только красные, но все сразу. Понятно, что если в строке помимо красных значений будут отображены и черные, но хотелось бы скрыть те строки, в которых только черные значения. Ведение дополнительных столбцов с каким-либо маркером вместо выделения цветом очень нежелательно, т.к. их (доп. столбцов) потребуется значительное количество, и это усложнит таблицу.
VBA Печать набора файлов разного типа с выбором принтера
 
Доброго дня, уважаемые знатоки екселя. Обращаюсь за помощью или разъяснением т.к. мои навыки в VBA начальные.
В продолжение темы Не сквозная нумерация озаботился написанием макроса печатающего набор файлов разного типа, в нужном мне порядке, для формирования комплекта документации. Обычно в комплектах бывают файлы ворд, ексель и пдф, количество и состав файлов разный. Первым макросом формируется список файлов на листе, за основу взял код из примера https://www.planetaexcel.ru/techniques/12/45/. Затем получаю список принтеров доступных компьютеру, хотелось бы иметь возможность направления на печать на определенный принтер, а не только на тот, что по умолчанию, но пока не понимаю как это сделать не для еселевских файлов.
Дело еще не завершено, но столкнулся вот с таким моментом: во время отладки кода по F8 весь код печати нормально отрабатывается, все файлы из списка распечатываются. В отладочном примере был использован список из 3-х файлов, один ексель и два - ворд. При полноценном же запуске этого же кода, на печать выводятся только 2 файла ворд. Что я делаю не так? Подозреваю что это связано с процедурой печати, но почему при отладке всё срабатывает?
Код
Sub ListPrnt()
Dim lprnt(), t As Single
'Dim vTimeout
Const vTimeout = 3
k = [C4].Value ' кол-во экземпляров
Pt = [C8] ' Принтер
    With Selection
    ReDim lprnt(1 To Selection.Count)
    For x = 1 To k ' кол-во экземпляров
        For i = 1 To Selection.Count
'            lprnt(i) = Selection(i) ' это я хотел через массив оформить, передумал
            CreateObject("Shell.Application").ShellExecute _
            Selection(i), "", "", "Print", 0&
            t = Timer + vTimeout
            While Timer < t
              DoEvents
            Wend
        Next
        Next
    End With
End Sub 
Не сквозная, раздельная нумерация страниц при печати нескольких листов
 
Доброго дня.
Возможно ли настроить при печати всей книги или нескольких выделенных листов не сквозную нумерацию страниц, так чтобы у каждого листа (это отдельные документы) сохранялась своя нумерация страниц, от первой до последней страницы каждого листа? Конечно, можно выводить на печать листы по одному, и всё будет в порядке, но ведь удобнее распечатать всё сразу, особенно если надо несколько экземпляров.
Что случилось с http://msoffice-nm.ru?
 
Что случилось с http://msoffice-nm.ru/
Хостинг сайта временно приостановлен. Очень жаль, я туда регулярно обращался в поисках решений.
VBA Отбор данных из Listbox из определенного столбца при множественном выборе
 
Добрый день.
Никак не соображу, как мне из Listbox отобрать данные из четвертого столбца по выбранным строкам. Всего столбцов четыре, в первых трех находятся справочно-описательная информация, собственно данные - в четвертом. Числовые значения.
Вот этот код работает, но только для первого столбца:
Код
Private Sub ButtonSetKoef_Click()
' ///////////формула коэф-тов
    Dim Msg As String
    Dim i As Integer

    If ListBoxKoef.ListIndex = -1 Then
        Msg = "Ничего не выделено"
    Else
        Msg = ""
        For i = 0 To ListBoxKoef.ListCount - 1 '  работает
            If ListBoxKoef.Selected(i) Then _
              Msg = Msg & ListBoxKoef.List(i) & vbCrLf '  работает, но выводит толькой 1-й столбец
             
        Next i
    End If
    MsgBox "Вы выбрали: " & vbCrLf & Msg
End Sub
Пытался прописать так, но во все отобранные позиции загружается значение последнего из выбранных:
Код
             If ListBoxKoef.Selected(i) Then _
              Msg = Msg & ListBoxKoef.List(ListBoxKoef.ListIndex, 3) & vbCrLf
Потом уже вычитал, что при мультивыборе ListIndex так и должен работать.
В дальнейшем выбранные данные предполагается использовать при расчете в формуле:
Код
Selection.FormulaR1C1 = "=1+(1.02-1)+(1.04-1)" 'образец
где, 1,02... 1,04 и есть данные, которые надо выгрузить из 4-го столбца. Данных может быть от одного до нескольких значений. Но думаю с формулой то я справлюсь. Было бы что в неё подставлять.
VBA. Заполнение формы данными при её повторном вызове из другой формы, Не получается заполнить форму при её повторном вызове
 
Доброго всем здоровья.
Подскажите, как правильно заново подгрузить данные из массива в форму при её повторном вызове после закрытия? Проблема такая: в первую форму (так получилось что это UserForm2) загружается список справочников, после выбора справочника вызывается вторая форма (UserForm1), в которую подгружается содержимое выбранного справочника. Решил добавить кнопку возврата к форме со справочниками, для возможности выбора другого справочника, но форма открывается пустой (я так понимаю, при закрытии формы её данные очищаются?). Не долго думая, вставил в код кнопки вызова формы копию кода её заполнения данными из массива из модуля инициализации формы, но ничего не получилось. Пытался объявить переменную массива глобальной - тоже не помогло. Постоянно выдает разного рода ошибки, т.к. я не спец в VBA, понял далеко не всё.
Как поправить код, чтобы повторно вызываемая форма так же заполнялась перечнем справочников?
Найти максимальное значение цифро-символьного кода в отфильтрованном диапазоне
 
Всем здравствуйте.
Необходимо в отфильтрованном диапазоне найти максимальное значение цифро-символьного кода.

В пределах диапазона первые пять символов каждого значения одинаковые, представляют собой две пары чисел разделенных знаком тире(минус), дальше могут быть варианты:
1. всего лишь эти пять символов и больше ничего,
2. после этих пяти символов стоит точка и число. Число может быть однозначным или двузначным.
Очень желательно сделать это формулой, и без дополнительных столбцов.
Отключить преобразование содержимого ячейки в дату при редактировании
 
Всем здравствуйте.
Вроде этот вопрос обсуждался, но что-то не смог отыскать. Суть вопроса: в ячейках, отформатированных как текст, содержатся текстовая информация типа "СР 02-01-04" или "смета 02-01-03". Набор чисел может быть разный, но всегда шестизначный с разделение пар чисел знаком тире, т.е. напоминает дату. При замене через Ctrl+H, к примеру "СР " на "" , 02-01-04 преобразуется в дату 02.01.2004. Каким-то образом можно это отключить, чтоб цифровая составляющая осталась без изменений? При редактировании каждой такой ячейки вручную такой замены не происходит. Данные ниоткуда не подгружаются, были в свое время введены в таком виде.
Изменено: cuprum - 8 дек 2019 19:18:33
VBA Сбор данных из разных файлов на один лист, Копирование информации из нескольких файлов на один лист
 
Всем доброго времени суток. Пришлось собирать данные из нескольких файлов в один, на один лист, последовательно, сверху вниз, сохраняя структуру и формулы. Когда количество файлов перевалило за сотню, озадачился автоматизацией процесса. Сам в VBA не силен, поэтому искал что-то подходящее в тырнете. Многократно предлагаемый вариант сбора листов не подходит, надо собирать на один лист. Наткнулся на задачу похожую на мою, и даже написано что работает, но у меня не завелось. Нашел здесь https://forumvba.ru/index.php?topic=1285.0

При запуске выводится сообщение об ошибке "... User-defined type not defined", и выделяется строка:
Код
Dim fso As Scripting.FileSystemObject
Подскажите пожалуйста, что не так, либо другое решение моей задачи. Копируемый диапазон в разных файлах по количеству строк разный, но шапка одна и та же, везде данные начинаются с одной и той же строки. Количество столбцов одинаковое.
Создание копии файла с изменением расширения VBA, Создание копии файла с изменением расширения xlsm на xlsx
 
Всем доброго времени.
Имеется файл в котором ведется журнал работ. Файл должен храниться доступно на сетевом диске, но т.к. временами случаются сбои сети, веду файл на локальном диске с последующим копированием на сетевой. Обновлять файл приходится часто, поэтому решил облегчить себе жизнь - делать это макросом. Но народ на работе пугливый, макросов боится, поэтому в доступе желательно хранить файл как обычную таблицу xlsx.
Посмотрел образцы в приемах и на https://www.excel-vba.ru/ . На их основе наваял.
Всё получилось, работает, но некоторые моменты не нравятся.
Если использовать ActiveWorkbook.SaveAs то после выполнения кода активной становится книга-копия для всех, и если файл не закрыть, то последующие изменения вносятся в неё, а не в исходный файл, и могут элементарно не сохраниться при перезаписаны исходным файлом, т.е. надо следить за тем, какой файл правишь.
Код
Sub Backup()
    iPath$ = "z:\eee\hhhh\jjjj\"
    iFileName$ = ActiveWorkbook.Name

    ActiveWorkbook.Save

    iFileName$ = Left(iFileName$, Len(iFileName$) - 4) & "xlsx"
    ActiveWorkbook.SaveAs Filename:= _
        iPath$ & iFileName$, FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    
End Sub

При использовании ActiveWorkbook.SaveCopyAs, вроде бы все происходит как надо, но при попытке открыть файл-копию выдается сообщение об ошибке, что расширение не соответствует типу файла, и не открывается.
Код
Sub Backup_Active_Workbook()
    Dim x As String
    strPath = "z:\eee\hhhh\jjjj"     'папка для сохранения резервной копии
    On Error Resume Next
    x = GetAttr(strPath) And 0
    If Err = 0 Then ' если путь существует - сохраняем копию книги, добавляя дату-время
        FileNameXls = strPath & "\" & "AAAA" & ".xlsx"
        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
    Else 'если путь не существует - выводим сообщение
        MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
    End If
End Sub
Что можно сделать со всем этим? Хотелось бы чтоб работало так: вносятся правки в исходный файл, запускается код создающий копию в формате xlsx; вносятся новые правки и, дальше по накатанной.
VBA Вставка кодом формулы использующей значение переменной, Вставка кодом формулы использующей значение переменной
 
Всем доброго дня.
Что-то я делаю не так, но не соображу что именно. Необходимо в формуле, вставляемой на лист макросом, использовать значение переменной (можно считать её постоянной, в течении работы макроса её значение неизменно). На все свои попытки получаю сообщения об ошибке, либо от дебагера, либо уже на листе. Надо значение ячейки разделить на индекс, задаваемый переменной.  Сильно не пинайте, в кодах хромаю на обе ноги, что нужно исправить?
Код
Sub Смета_Ф()
......

Dim Ind2 As Double

Ind2 = 6.9
......
Cells(x + 15, 11).FormulaR1C1 = "=R[-3]C/6.9" ' работает
Cells(x + 15, 11).FormulaR1C1 = "=R[-3]C/Ind2" ' не работает, ошибка #ИМЯ? на листе
Cells(x + 15, 11).FormulaR1C1 = "=R[-3]C/" & Ind2 ' не работает ошибка кода 1004
......
Возможно ли изменение изменение предела счетчика в цикле For Next
 
Всем здравствуйте.
Подскажите, возможно ли изменение изменение предела счетчика в процессе работы цикла For Next? Т.е. в цикле заданном For i=1 To n, возможно ли изменение величины n в процессе исполнения цикла?
Номер места в медальном зачете
 
Доброго времени суток.
Информация поступающая из Кореи подкинула задачку, просто для общего развития хотел разобраться. Как видно из таблицы (столбы A-F заполненны данными взятыми с https://sport.mail.ru/korea/medals/), места определяются по количеству золотых медалей, при их равенстве по серебряным и т.д. Страны набравшие равное количество балов занимают одно место сообща, при этом страна находящаяся на ступеньку ниже них, по странному расчету по факту стоит на 2 ступеньки ниже. Вот как этот скачек через ступеньку и не соображу как просчитать. "Массовую долю" медалей в (C1:E1) взял с потолка.
Выбрать данные из таблицы по нескольким условиям
 
Добрый день, уважаемые.
В целях облегчения работы задался целью создания таблицы подсчета объемов работ. Все вроде получилось более или менее, но готов выслушать предложения по улучшению. Не нравится как я сделал выборку объемов по дверям, формула получилось громоздкая, и если понадобиться добавлять столбцы, надо будет сидеть править. Хотел реализовать то же самое через СУММПРОИЗВ, но что-то я делаю не так. Помогите найти ошибку, пожалуйста. Данные по размерам подтягиваются в основную таблицу с другого листа, в этом примере я их отсек, для облегчения файла.
Вставить формулу в выделенные ячейки VBA, Вставить формулу округления в выделенные ячейки VBA с уже имеющимися формулами
 
Добрый вечер.
Написал макрос для вставки формулы округления в ячейку с уже имеющейся формулой . Не хватает познаний в VBA для того, чтобы сделать то же самое для произвольного количества выделенных ячеек, произвольного расположения. Помогите пожалуйста доработать макрос.
Изменено: cuprum - 7 июл 2017 22:17:54 (По рекомендации завсегдатая форума убрал 2-ой вопрос.)
Извлечь из ячейки цифры разделенные переносом строки, Извлечь числовые значения из ячейки
 
Всем здравствуйте.
Возникла необходимость извлечь из ячейки три числовые значения, записанные с разделением переносом строки, как одно число. У меня получилось их извлечь, первое и второе - как текст, третье - как число. Но мне надо чтобы они все три были числами, т.к. будут участвовать в расчетах. Вариант получить иной вариант исходной ячейки не проходит, данные формируются сметной программой, и на это повлиять невозможно.
VBA. Закрыть PrintPreview программно, Как программно закрыть вызванное окно PrintPreview?
 
Добрый день.
Как программно закрыть вызванное окно ActiveWindow.SelectedSheets.PrintPreview?
Дело в том, что это окно приходится вызывать потому, что команда ActiveWorkbook.Worksheets(1).HPageBreaks.Count + 1 выдает верные данные только после предварительного просмотра. Файл просматривается не один, и хотелось бы избежать ручного закрытия каждого всплывающего окна.
Если есть другие способы узнать количество печатных страниц в листе книги, буду только рад узнать его.
Код
Dim pg As Integer ' кол-во страниц
...
ActiveWindow.SelectedSheets.PrintPreview ' Требуется ручное закрытие предпросмотра
pg = ActiveWorkbook.Worksheets(1).HPageBreaks.Count + 1
VBA: поиск нужного листа с подстановочними символами
 
Добрый день.
Подскажите, как в макросе использовать подстановочные символы типа "*" или "?", используемые при обычном поиске? Никак не соображу, а поиск в инете уводит в такие теоретические выкладки, что мозг закипает.
Задача такая: есть книга (заполняется она другим отделом, и повлиять на этот процесс нет возможности), в ней листы по месяцам, и к сожалению в именах листов встречаются лишние пробелы, например "май ", а есть и без "излишеств". Каким образом отсечь такие лишние пробелы?
Код
Sub General_Work()
Dim dLastRow As Long, sLastRow As Long, sSheet As String, Mounth As String, sPath As String, sFileName As String
Set dbk = Application.ActiveWorkbook
Mounth = Sheets(1).Cells(2, 7) ' ячейка в которой указан необходимый месяц
dLastRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
    sPath = "D:\отдел\"
    sFileName = "реестр.xls"
    Workbooks.Open Filename:=sPath & sFileName, _
        ReadOnly:=True
Set sbk = Application.ActiveWorkbook
sLastRow = Sheets("ВЫП " & Mounth & " ").Cells(Rows.Count, 2).End(xlUp).Row 'работает, нужен подст симв
' sLastRow = Sheets("ВЫП " & Mounth & "*").Cells(Rows.Count, 2).End(xlUp).Row 'не работает

MsgBox " Последняя строка: " & sLastRow
End Sub
Имя другого пользователя, Получить имя другого пользователя, занявшего файл
 
Добрый день.
Знаю, похожие темы поднимались, я старательно изучал что смог найти. И не только на этом замечательном сайте.
Задача состоит в том, чтобы получить имя другого пользователя, открывшего в режиме редактирования книгу excel, расположенную на сетевом диске. Все изученные мной примеры выводят имя пользователя запустившего макрос, т.е. меня самого. Это вообще возможно? Наверное да, ведь в сообщении о том что файл занят пишется кем он занят, правда иногда пишется имя пользователя, а иногда - другой пользователь. Смысл в том, что макрос определения имени надо запускать не из того файла который бывает занят, а из другого.
Дата в пользовательском формате не умещается в ячейке
 
Добрый день всем.
Решил себе несколько облегчить жизнь и подогнал пользовательским форматом отображение даты в нужном мне виде, чтоб не набирать всё это текстом. Всё бы хорошо, но обнаружилось что для отображения этой даты ширина ячейки должна быть значительно больше, чем если то же самое набирать текстом, что не всегда соответствует структуре документа. Есть вариант использовать объединение ячеек, и он визуально даёт хороший вариант, но я не сторонник частого применения объединенных ячеек и стараюсь этого избегать.
На вкладке 1 вариант с объединенной ячейкой, на вкладке 2 - как оно же выглядит без объединения.
Возможно кто-то может предложить иное решение?
Корректное отображение различных итогов, Одновременное двух типов итогов
 
Добрый день, уважаемые.
Подскажите как организовать вывод итогов. В файле примере использовано 2 варианта, у каждого есть свой минус. В 1-ом варианте, если не применены никакие фильтры, в строке "сумма по фильтру" сумма превышает общий итог, для меня как создателя этого файла это не критично, но работать с файлом буду не я один, соответственно будут возникать ненужные вопросы. Во 2-ом варианте, если применен какой-либо фильтр, неверно отображается общий итог.
Каким образом можно устранить эти минусы и организовать правильное отображение обоих итогов, что при применении фильтра, что без фильтра?  
Горячие клавиши (Хоткеи) Excel 2007, Настройка хоткеев
 
Добрый день.
В какой-то момент перестал работать хоткей автосуммы Alt-+. Для этой цели всегда пользовался правым альтом, теперь не срабатывает, но зато срабатывает на левом. С чем может быть связано это изменение, и где можно поменять эти настройки? Движение отработано до автоматизма, и переход на другой альт выбивает из рабочего ритма.
Ну и заодно, на работе текущая дата вставляется по Ctrl-Shift-4, на домашнем компе эта комбинация не срабатывает.
В общем где настраиваются хоткеи? Что-то не смог найти.
Выбор данных из закрытой книги, Не работает формула
 
Добрый день.
Необходимо организовать выборку данных из закрытой книги. Формулу для выборки я сделал, спасибо этому сайту,  и она работает . Хотел её улучшить - и застрял. Хотелось сделать возможность выбора листа, с которого выбирать данные. Не получается реализовать "изменяемую" ссылку на файл. Где я допустил ошибку? Оба варианта выборки расположены в файле "запрос". Во втором файле данные, которые необходимо получить.
Наименование листов закрытой книги, Как узнать наименование листов в книге, не открывая непосредственно файл?
 
Добрый день.
Подскажите, возможно ли получить наименование листов в закрытой книге для вставки в формулу, не открывая при этом сам файл? Расположение самих файлов и их наименование известны. Спасибо приему http://www.planetaexcel.ru/techniques/12/45/. Обычно, в моем случае, книги состоят из одного листа.
Суммирование данных закрытой книги
 
Доброго всем времени суток.
СУММЕСЛИ и  СУММЕСЛИМН замечательно работают если открыты обе книги. В случае же если книга данными для суммирования закрыта, выдаётся сообщение об ошибке - #ЗНАЧ! Каким образом можно обойти это препятствие?
Страницы: 1
Наверх