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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 530 След.
Построение диаграмм на основе отфильтрованных данных
 
Цитата
ВовавВова написал:
все время выползает Студент  на автомобиле возрастом 25 годиков
потому что в таблице присутствует функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Excel считает, что последняя строка - строка итогов и не фильтрует её. Если добавить ещё одну "фейковую" строку в конец таблицы(без всяких функций) - то все будет фильтроваться как ожидается.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Запретить изменение ячейки в определенном диапазоне
 
Цитата
romlel написал:
Можно как-то написать в коде, чтобы смог скрывать и раскрывать строки/столбцы?
Цитата
Sanja написал:
Только снимать защиту листа перед скрытием строк и восстанавливать ее потом
ну блин...Ведь нет же :)
Код
Sub Макрос1()
  With ActiveSheet
    .Unprotect Password:="0000"
    .Cells.Locked = False
    .Columns("A:A").Locked = True
    .Protect Password:="0000", AllowFormattingRows:=True, AllowFormattingColumns:=True
  End With
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Не вставляется из буфера в Excel
 
Вы бы файл приложили на всякий случай. Мало ли что там найдется...Раз проблема только с этим файлом - вдруг и на форуме найдется кто-то с такой же проблемой. Зависеть ведь может и от версии офиса.
Изменено: Дмитрий(The_Prist) Щербаков - 10.04.2026 12:18:56
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
макросы в файле формата .xls, возможно ли?
 
Цитата
PetrA-555 написал:
как это сделано?
вопрос плохо понятен. Формат xls - это, можно сказать, уже старый формат бинарного типа, который использовался до 2007 офиса. Тогда был только один формат файлов - именно xls. И в нем можно было хранить и модули VBA, и формулы и т.п. Но! Ваш вопрос сильно размыт. Возможно, там не классический VBA, а листы макросов(это такие листы, в которых на языке функций макросов написаны команды в строках в строгой очередности).
А может быть еще хуже - в одной из версий до 97 Excel была возможность создавать DLL на основе файлов Excel с макросами.
Так что прежде, чем сказать как "сделать такое же" - нужно видеть и точно понимать, что именно сделать.
Изменено: Дмитрий(The_Prist) Щербаков - 10.04.2026 12:14:28
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Получить данные, отображаемые во всплывающей подсказке (ToolTips) для полей Сводной таблицы
 
А можно попробовать и напрямую из сводной данные получить:
Код
Sub Test_GetPTTooltip()
    Debug.Print GetPTTooltip(ActiveCell)
End Sub
'---------------------------------------------------------------------------------------
' Author : Щербаков Дмитрий(The_Prist)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          https://www.excel-vba.ru
'          info@excel-vba.ru
' Purpose: Получение подсказки из ячейки сводной таблицы
'---------------------------------------------------------------------------------------
Function GetPTTooltip(rCell As Range)
    Dim optc As PivotCell
    Dim pf As PivotField
    Dim pi As PivotItem, pc, pp As Object
    Dim s$, spiv$, sOut$
    Dim lp&
    
    On Error Resume Next
    Set optc = rCell.PivotCell
    Err.Clear
    If Not optc Is Nothing Then
        sOut = optc.PivotField.Caption & vbLf
        Select Case optc.PivotCellType
        Case xlPivotCellValue 'любая ячейка в области значений
            If optc.RowItems.Count Then
                sOut = sOut & "Строка: "
                For Each pi In optc.RowItems
                    spiv = pi.LabelRange.Value
                    If Len(spiv) Then
                        sOut = sOut & " - " & spiv
                    End If
                Next
            End If
            If optc.ColumnItems.Count Then
                sOut = sOut & "Столбец: "
                For Each pi In optc.ColumnItems
                    spiv = pi.LabelRange.Value
                    If Len(spiv) Then
                        sOut = sOut & " - " & spiv
                    End If
                Next
            End If
        Case xlPivotCellPivotItem 'любая ячейка в области строк или столбцов
            Set pp = optc.PivotRowLine
            If Not pp Is Nothing Then
                If pp.PivotLineCells.Count Then
                    sOut = sOut & "Строка: "
                    For Each pc In pp.PivotLineCells
                        spiv = pc.PivotItem.LabelRange.Value2
                        If Len(spiv) Then
                            sOut = sOut & " - " & spiv
                        End If
                    Next
                End If
            End If
            Set pp = Nothing
            Set pp = optc.PivotColumnLine
            If Not pp Is Nothing Then
                If pp.PivotLineCells.Count Then
                    sOut = sOut & "Столбец: "
                    For Each pc In pp.PivotLineCells
                        spiv = pc.PivotItem.LabelRange.Value2
                        If Len(spiv) Then
                            sOut = sOut & " - " & spiv
                        End If
                    Next
                End If
            End If
        End Select
    End If
    GetPTTooltip = sOut
End Function

Можно, конечно, подсократить, причесать(добавить итоги и т.п.) - но времени особо нет на это.
Изменено: Дмитрий(The_Prist) Щербаков - 06.04.2026 12:08:45 (слегка упростил код)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Применение значка # в формулах, У кого есть опыт применения значка хештега # в формулах?
 
Цитата
Владимир Пешков написал:
Также нет возможности писать функции с помощью # - СУММ(А1#) - работать не будет
Все работает без проблем, если есть поддержка динамических массивов.
Цитата
Владимир Пешков написал:
Вот у этой тётеньки работает без динамического массива.
Где? У неё как раз каждая формула со знаком # так или иначе в итоге ссылается именно на первую ячейку динамического массива.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Microsoft Query текстовой формат цифр в число
 
Убедитесь, что поставили правильно сортировку - по номеру поля, а не по имени. Выше я писал об этом.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Разбор этапов вычислений в функуции ПРОСМОТР()
 
На всякий случай выложу. Здесь подробно расписывал логику на примере: Найти в ячейке любое слово из списка
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. При удалении элементов из копии словаря, удаляются соответствующие элементы из словаря-источника
 
Цитата
Sanja написал:
В этом конкретном случае или всегда ClearContents?
смотря что имеется в виду. При попытке присвоения Range = Range без указания свойства и с кол-вом ячеек больше одной - я бы сказал всегда :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. При удалении элементов из копии словаря, удаляются соответствующие элементы из словаря-источника
 
Цитата
МатросНаЗебре написал:
присвоит только значение
тогда доп.уточнение: присвоит свойство по умолчанию. При этом тоже есть свои подводные камни :) Лучше так не делать, потому что свойство по умолчанию VBA может выбрать на свое усмотрение :) Выполните код, но внимательно следите за выполнением - специально добавил Stop:
Код
Sub UnexpectedProperty()
    Range("B1:B2").value = "1"
    Range("A1:A2").value = Range("B1:B2").value
    Stop
    Range("B1:B2") = "1"
    Range("A1:A2") = Range("B1:B2")
End Sub

во второй части свойство не указывается и  VBA применит ClearContents для Range("A1:A2").
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. При удалении элементов из копии словаря, удаляются соответствующие элементы из словаря-источника
 
Цитата
Sanja написал:
Да, я переопределяю ВТОРОЙ объект, но почему изменяется ПЕРВЫЙ?
выше дописал ПыСы :)
Изменено: Дмитрий(The_Prist) Щербаков - 27.03.2026 10:39:59
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. При удалении элементов из копии словаря, удаляются соответствующие элементы из словаря-источника
 
Цитата
Sanja написал:
мы создаеи ДВА НЕЗАВИСИМЫХ объекта
Да. Притом при таком коде второй объект вообще нет смысл создавать через CreateObject, т.к. ты его переопределяешь как раз этой строкой:
Код
Set dicCopy = dic

Вот что будет, когда ты сначала определяешь диапазоны так:
Код
Set r1 = Range("A1")
Set r2 = Range("A2")

а потом сделаешь так:
Код
Set r2 = r1

?
Здесь абсолютно тоже самое.

P.S. Не знаю, даст ли эффект, но попробую технически это описать более-менее просто.
При создании любого объекта в памяти ОС выделяется под него кусочек памяти. Если точнее - ссылка на этот кусочек. Это мы все знаем.
Код
Set dic = CreateObject("Scripting.Dictionary")          'создали новый объект, ОС выделила под него ссылку на кусочек памяти
Set dicCopy = CreateObject("Scripting.Dictionary")  'создали новый объект, ОС выделила под него ссылку на кусочек памяти

Да, у каждого объекта свой кусочек. Пока что эти кусочки памяти живут отдельной жизнью, т.к. не было никаких команд, которые бы говорили о другом.
Заполнили dic. Его кусочек памяти расширился. У dicCopy пока остался прежним - мы же его не заполняли.
А теперь мы переопределяем dicCopy, делая ссылку на dic:
Код
Set dicCopy = dic

и вот здесь вступает в роль такая штука как оптимизация памяти. Зачем заполнять еще один кусок памяти одними и теми же данными? Незачем. Поэтому ОС не копирует все данные dic в ячейку памяти, выделенную под dicCopy - а создает там указатель на ячейку памяти dic. И теперь они связаны. По сути у них теперь одна ячейка памяти на двоих. И в итоге невозможно изменить один объект, не изменив второй.
Изменено: Дмитрий(The_Prist) Щербаков - 27.03.2026 10:39:34
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
VBA. При удалении элементов из копии словаря, удаляются соответствующие элементы из словаря-источника
 
Цитата
Sanja написал:
'копия основного словаря
Set dicCopy = dic
очень правильно написано - КОПИЯ. А для объектов - не просто копия, а ссылочная копия. Т.е. dicCopy это ссылка на dic, а не аналог CopyFile. Т.е. делая так ты не создаешь новый словарь со своими элементами, а просто ссылаешься на созданный ранее. С его элементами. Потому что ссылка идет на один и тот же участок памяти, что у исходного dic. Т.е. ты даже не ссылаешься, а "связываешь" два объекта.
Это как ссылка на ячейки на листе - поставил =A1 и та ячейка, в которой эта ссылка полностью повторяет значение ячейки, на которую ссылается. Со всеми вытекающими. Только в случае с Set dicCopy = dic эта связь двустороння. Измени что-то в одном - изменится в другом.
В общем-то, часто используемые конструкции типа:
Код
Set rr = Range("A1") 

ведут себя так же. и это же никого не удивляет :)
Изменено: Дмитрий(The_Prist) Щербаков - 27.03.2026 09:38:00
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поиск среднего значения при разбитом диапазоне, Среднее значение без учёта 0, при условии что диапазон состоит из разных адресов ячеек
 
Вот такой еще вариант:
Код
=СУММПРОИЗВ((F3:F18)*{0:0:0:1:0:0:0:0:1:0:0:0:0:0:0:1})/СУММПРОИЗВ(--(((F3:F18)*{0:0:0:1:0:0:0:0:1:0:0:0:0:0:0:1})>0))

но если строк много - то лучше через доп.столбец делать. 1 - это желтые ячейки. Но если делать доп.столбец - то там уже можно и СРЗНАЧЕСЛИМН применить по этому доп.столбцу :) Кстати, может так будет и оптимальнее - на отдельном листе просто проставляете единички(1) или иной признак в тех же строках, которые желтые на рабочем листе. А в СРЗНАЧЕСЛИМН одним из условий ссылаетесь на него. Вроде того:
Код
=СРЗНАЧЕСЛИМН(F3:F18;Лист2!A3:A18;1;F3:F18;"<>0")

вполне гибко получится и при изменении структуры или адресов ячеек можно будет просто на этом доп.листе изменить привязки строк.
Изменено: Дмитрий(The_Prist) Щербаков - 25.03.2026 11:48:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Поиск среднего значения при разбитом диапазоне, Среднее значение без учёта 0, при условии что диапазон состоит из разных адресов ячеек
 
Цитата
zay_senya_z написал:
вместо строк "среднее по набору..." стоят абсолютно разные наименования
так и как понять какие строки нужны для усреднения? есть хоть какой-то критерий?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Применение правил условного форматирования на другие ячейки, Как применять условное форматирование ко многим ячейкам
 
Цитата
написал:
также не нашел ответа, ткните пальцем
м-да...сложно Вам придется :)
Там же написано подробно что сделать(см.вложенный скрин). Закрепляете ссылку на столбец с условием. Остальные ячейки в зависимости от того, что требуется.
Т.е.:
=$A1>B1
только не знаю, насколько корректна это формула, т.к. у Вас
Цитата
salvadoz написал:
B1 или\и в С1  меньше А2
а она будет подсвечивать и В и С, если они меньше. См.вложение.

А если хотите, чтобы на пальцах показали - прикладывайте свой файл Excel, а не картинки.
Изменено: Дмитрий(The_Prist) Щербаков - 24.03.2026 18:18:27
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Применение правил условного форматирования на другие ячейки, Как применять условное форматирование ко многим ячейкам
 
Сборник формул для условного форматирования
там в начале расписывается как распространять условия на всю таблицу.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Закрепленное значение ячейки ($) не переносится при копировании диапазона
 
Цитата
Wergulla написал:
при копировании значение ячейки А$1 не меняется
Так и не должно :) Это основы работы с ссылками.
Знак доллара перед номером строки означает, что при копировании и распространении формулы - ссылка на такую ячейку не смещается. Уберите знак доллара перед номером строки и все будет смещаться.
Наберите в поисковике: относительные и абсолютные ссылки в Excel - чтобы понимать как это работает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос создающий пользовательский формат с подстановкой данных через переменную, Макрос создающий пользовательский формат с подстановкой данных через переменную
 
Цитата
Денис Акулов написал:
хотел получать запись формата в виде 0 "км/ч", как я и писал в первом сообщении
А, т.е. именно с кавычками? Ну тоже как бы странно, что не получилось сразу:
Код
    textPart = "\"" км\/ч\"""
    targetCell.NumberFormat = "0 " & textPart

кстати, учитывайте, что при таком формате:
Код
"?" & """" & textPart & """"

если в ячейку будет введено число "0" - то будет отображаться только " км/ч". Без 0. А если вместо вопр.знака в формате указывать 0 - то при значении 0 в ячейке он будет отображаться вместе с "км/ч" - "0 км/ч".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Прокси для телеграмм, Макрос с прокси для отправки сигналов в телеграмм
 
Попробуйте добавить после oHttp.Open:
Код
oHttp.setProxy 2, "192.168.1.1:port" 'IP и порт, естественно, свои
oHttp.setProxyCredentials "username", "user_password" 'если надо логиниться
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос создающий пользовательский формат с подстановкой данных через переменную, Макрос создающий пользовательский формат с подстановкой данных через переменную
 
Цитата
Денис Акулов написал:
Но было бы интересно реализовать через переменную
а у меня через что? Даже имя переменной Ваше взято :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос создающий пользовательский формат с подстановкой данных через переменную, Макрос создающий пользовательский формат с подстановкой данных через переменную
 
Или так:
Код
targetCell.NumberFormat = "0 км\/ч"

А еще лучше подстраховаться и все символы, которые должны отображаться "как есть", обрамить обратным слешем
Код
    Dim textPart$, x
    textPart = "*км/ч"
    'перечисляем все символы, которые должны отображаться как есть
    'и добавляем к ним левый слеш - спец.сивол,
    'который говорит формату использовать следующий за ним символ "как есть"
    For Each x In Array("/", "*")
        textPart = Replace(textPart, x, "\" & x)
    Next
    targetCell.NumberFormat = "0 " & textPart
Изменено: Дмитрий(The_Prist) Щербаков - 23.03.2026 13:58:08
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос отправки электронного сообщение с текстом, таблицей и переносом информации в общий реестр, Макрос отправки электронного сообщение с текстом, таблицей и переносом информации в общий реестр
 
Если в таблице планируется использование русского текста - в какой-то момент кириллица в письме может "поехать". И поедет она только для таблицы, т.к. для экспорта не будет указана кодировка. Я давал Вам ранее ссылку на статью: Вставить в письмо Outlook таблицу Excel с форматированием
Там этот момент учтен, в функции проставлены все комментарии.
Чтобы кириллица внезапно не отказалась отображаться как надо - перед строкой:
Код
With TempWB.PublishObjects.Add

запишите такую:
Код
TempWB.WebOptions.Encoding = msoEncodingCyrillic
Есть еще момент с адресом - лучше передавать адрес в том стиле, который установлен для приложения(R1C1 или А1) - иначе тоже может быть ошибка.
Изменено: Дмитрий(The_Prist) Щербаков - 19.03.2026 11:21:54
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Выгрузка из Power Query в Excel меняется формат на общий, При выгрузки из power query формат ячейки меняется на общий
 
Установите в таблице на листе нужный формат.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное, Windows 7x32.Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное.
 
Цитата
Msi2102 написал:
общий доступ?
книгу с умными таблицами нельзя сделать общей - это давнее ограничение.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное, Windows 7x32.Excel 2016 режим умной таблицы не переводится в обычный режим, поле "преобразовать в диапазон" не активное.
 
Цитата
написал:
Файл большой
согласен. И таблиц много. Но какая из не хочет становится обычной - Вы не указываете. Предлагаете по всем листам пробежаться и каждую таблицу попробовать? На "Лист1" у меня все таблицы без проблем преобразовались в диапазоны.
А вот на листе "Панов АН-2026" этого уже не сделать, т.к. на лист установлена защита. Чтобы преобразовать таблицу - надо снять защиту с листа. Да и с остальными листами такая же ситуация. Так что ничего необычного.
Изменено: Дмитрий(The_Prist) Щербаков - 18.03.2026 10:18:25
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Макрос отправки электронного сообщение с текстом, таблицей и переносом информации в общий реестр, Макрос отправки электронного сообщение с текстом, таблицей и переносом информации в общий реестр
 
Цитата
написал:
И функция "Display", вставка подписи, не работает
и не будет, если применять так, как в Вашем коде.
Вставить в письмо подпись из Outlook через VBA - здесь описаны способы вставки подписи, в том числе и при помощи Display. Но применять надо правильно. И лучше прочесть статью внимательно, а не просто копировать код - так может хоть понимание происходящего появится.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Построение графика с дополнительными точками независящими от него
 
Цитата
написал:
графики выстроить по картинкам
ну если по картинкам, а не по данным в листе Excel - то это в другой форум. По фотошопу и т.п.
А если все же по данным Excel - прикладывайте файл с данными. Иначе можно посоветовать только использовать точечную диаграмму.
Изменено: Дмитрий(The_Prist) Щербаков - 17.03.2026 18:58:26
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Условное форматирование ячейки в зависимости от наличия в диапазоне отрицательного значения, Условное форматирование ячейки в зависимости от наличия в диапазоне отрицательного значения
 
=СЧЁТЕСЛИ(A1:A10;"<0")>0
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Вычисление первого и последнего значения в столбце за определенный промежуток времени., Вычисление первого и последнего значения в столбце за определенный промежуток времени.
 
1. Лучше разделить интервалы времени на отдельные ячейки ОТ и ДО. Можно сделать при помощи инструмента "Текст по столбцам" -Разделитель тире.
2. В столбце Е у Вас не время, а время, записанное как текст. Чтобы использовать быстрые формулы их надо преобразовать в реальное время(преобразуем даты и числа, записанные как текст, в реальные даты и числа)
Тогда можно использовать вполне простые формулы, которые будут работать быстро и правильно. Во вложении все это уже сделано.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 530 След.
Наверх