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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 72 След.
Формат ячейки с необходимыми параметрами, Необходимо задать формат ячейки
 
Цитата
написал:
мне бы подошло именно форматирование ячейки
не подошло бы, т.к. формат ячейки никак не меняет ее значение, которое используется в дальнейших формулах
Подсчет количества записей по месяцам в определенной группе
 
Добрый день.
1. Формулой. Только заголовки с месяцами должны быть такими же, как и в данных. Для ячейки G3 (и растянуть на всю таблицу):
Код
=СЧЁТЕСЛИМН($B:$B;$F3;$C:$C;G$2)
2. Сводной таблицей
запрос ВЕБСЛУЖБА, Получение доли акции в индексе ММВБ
 
Sovasa, лучше пример в excel вставьте (достаточно одной формулы)
запрос ВЕБСЛУЖБА, Получение доли акции в индексе ММВБ
 
Добрый день. Была у меня такая проблема - помогли решить вот в этой теме:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=160299

PS у вас как-то криво картинки вставились
Не работает код в условиях массива, Выдается ошибка Type mismath
 
Замените
Код
If Cells(i, "BM") = Nai Then
на
Код
If Not IsError(Application.Match(Cells(i, "BM"), Nai, 0)) Then

PS и тему лучше переименовать на "Проверка вхождения значения в массив"
Изменено: webley - 29.02.2024 11:37:03
Изменение цвета части текста в ячейке по условию
 
Добрый день. Попробуйте - в модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Len(Target.Value) > 0 Then
        Dim arr() As String, j As Integer, flg As Boolean, st As Integer
        arr = Split(Target, Chr(10))
        st = 1
        For j = LBound(arr) To UBound(arr)
            If flg Then
                Target.Characters(Start:=st, Length:=Len(arr(j)) + 1).Font.Color = RGB(255, 0, 0)
            Else
                Target.Characters(Start:=st, Length:=Len(arr(j)) + 1).Font.Color = RGB(0, 0, 0)
            End If
            flg = Not flg
            st = st + Len(arr(j)) + 1
        Next j
    End If
End Sub
Действия с функцией символа "$" по автоматическому заполнению таблицы числовыми значениями., При заполнении таблицы огромного формата, необходимо прописаную формулу протянуть по строке и заполнить значения, а потом трансформировав формулу (поменять место символа" $") протянуть её по диагонали заполнив все ячейки столбцов.
 
J$41 - закрепленная строка
$J41 - закрепленный столбец
$J$41 - закрепленная ячейка
преобразование выгрузки в excel
 
Добрый день. Добавьте столбец где вам надо, в строке с фамилией вставьте ссылку на адрес (для Иванова это =A6), выделите ячейку с формулой и ячейку под ней и протяните это пару до конца таблицы. Далее - скопировать, специальная вставка - значения. Ну и удалить строки, у которых в новом столбце пустые ячейки  
Текстовая ссылка на ячейку
 
Цитата
написал:
чтобы поменять все диапазоны в формуле разом
Ctrl+h
Суммирование по двум критериям с разнонаправленным (горизонтально/вертикально) положением признаков отбора., Поиск нужной формулы. Выбор значения из массива по двум условиям
 
А если так?
Код
=СМЕЩ(РФ!A1;ПОИСКПОЗ(A4;РФ!$B:$B;0)-1;ПОИСКПОЗ(A1;РФ!$2:$2;0)-1)
Заливка цветом ячейки со значением 1/100, но игнорировать значение 11/100, Залить цветом ячейки со значениями 1/100, 2/100, 3/100 и т.п., но не трогать ячейки 11/100, 12/100 и т.п.
 
Если никакого другого текста нет, то можно в УФ использовать формулу =ПОИСК("/";B2)=2
Разнести данные из сводной ведомости по датам, в отдельные листы
 
Добрый день. Для С3 на листе консультации:
Код
=ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(свод!$A:$AG;ПОИСКПОЗ($A3;свод!$A:$A;0);ПОИСКПОЗ(ТЕКСТ(C$2;"дд.ММ.гггг");свод!$4:$4;0))=1;"К";"");"")

Для D3 на листе тренинги:

Код
=ЕСЛИОШИБКА(ЕСЛИ(ИНДЕКС(свод!$A:$AG;ПОИСКПОЗ($B3;свод!$A:$A;0);ПОИСКПОЗ(ТЕКСТ(D$2;"дд.ММ.гггг");свод!$4:$4;0)+1)=1;"Т";"");"")
Заливка цветом ячеек на листе с данными при выборе из выпадающего списка
 
Добрый день. На листе 2 для столбца А добавить условное форматирование с формулой
Код
=НЕ(ЕНД(ПОИСКПОЗ(A1;Лист1!A:A;0)))
Изменено: webley - 09.02.2024 11:16:00
Удаление строк по выбрвнному критерию на всех листах файла., Удаление строк по выбрвнному критерию на всех листах файла.
 
Добрый день. Вот так можно:
Код
Sub Vot_tak_vot()
    Dim sh As Worksheet, r As Long
    For Each sh In ThisWorkbook.Sheets
        For r = sh.Cells(sh.Rows.Count, "I").End(xlUp).Row To 1 Step -1
            If sh.Cells(r, "I") = "Да" Then sh.Rows(r).Delete
        Next r
    Next sh
    MsgBox "Done"
End Sub
Совет - удаляйте строки всегда снизу вверх.
Отфильтровать значения столбца одной таблицы, которых нет во второй таблице, Отфильтровать значения столбца одной таблицы, которых нет во второй таблице
 
Добрый день. Можно в первой таблице сделать дополнительный столбец:
Код
=ЕНД(ВПР(F2;Заливка!A:A;1;0)=F2)
и фильтровать по нему
Копирование АДРЕСА текущей ячейки в буфер обмена, или как быстро создавать внутренние гиперссылки по книге?, Нужно для быстрого создания гиперссылок внутри книги Excel с кучей листов.
 
Цитата
написал:
1. Хоткей на копирование в буфер адреса ячейки с полным путем. Какой?
Макросом можно, который повесить на свое сочетание клавиш:
Код
Sub CopyAddrToCB()
    Dim st As String
    st = "'" & ActiveCell.Parent.Name & "'!" & ActiveCell.Address
    With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .SetText st
        .PutInClipboard
    End With
End Sub
изменение формата данных по date add
 
Вообще все оказалось проще. На вкладке Главная в разделе Стили надо найти Обычный, нажать на нем правой кнопкой, выбрать Изменить и в открывшемся окне нажать кнопку Формат и там выбрать Общий. Должно помочь
изменение формата данных по date add
 
Цитата
написал:
В качестве костыля вставьте пару строк
я бы не стал - если файл начал вести себя странно, то от него лучше избавиться. Неизвестно, что там поломается в следующий раз.

PS вторая строка в "костыле" избыточна, т.к. при вставке даты в ячейку с общим форматом преобразуется автоматически
изменение формата данных по date add
 
Мне кажется, что проблема с самим файлом - на вновь создаваемых листах (причем не важно - руками или макросом) все ячейки имеют такой формат. Выход - создать новый файл, скопировать данные из старого файла (только не лист, а именно данные) и отдельно скопировать макрос
изменение формата данных по date add
 
Добрый день. Поменяйте на листе формат ячеек. А макрос тут вообще ни причем (как уже заметили выше)
Формула поиска и сопоставления значения с последующим формированием ссылки., Формула поиска и сопоставления значения с последующим формированием ссылки.
 
Добрый день. Как-то так (для ячейки B2):
Код
=ГИПЕРССЫЛКА("#"&АДРЕС(1;ПОИСКПОЗ(A2;'BoQ List'!$1:$1;0);1;1;"BoQ List");A2)
Удаление макросом всего текста с ячейки после заданного слова
 
Цитата
написал:
Сколько будет слов после нужного неизвестно
ну так все и удалятся:) Вы попробуйте сначала
Удаление макросом всего текста с ячейки после заданного слова
 
Добрый день. Без макроса (через замену):
Найти: слово*
Заменить на: слово
Excel не видит открытую книгу сохраненную из другой программы
 
a43,  а заголовок окна вот такой 01.xlsx - Excel? может у вас это как-то по другому выглядит...
Excel не видит открытую книгу сохраненную из другой программы
 
Цитата
написал:
не знаком с функционалом api,
я тоже не большой специалист,  но в свое время мне доводилось писать что-то подобное.  Под вашу задачу это может выглядеть как-то так (вызов Close01xls закроет книгу 01.xlsx без сохранения независимо от того как и где она открыта). Одно ограничение - это для 32-битной версии excel, но судя по вашему скрину - у вас именно такая.
Код
Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "USER32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Declare Function IIDFromString Lib "ole32" (ByVal lpsz As Long, ByRef lpiid As GUID) As Long
Private Declare Function AccessibleObjectFromWindow Lib "oleacc" (ByVal Hwnd As Long, ByVal dwId As Long, ByRef riid As GUID, ByRef ppvObject As Object) As Long

Private Const IID_IDispatch As String = "{00020400-0000-0000-C000-000000000046}"
Private Const S_OK As Long = &H0
Private Const OBJID_NATIVEOM As Long = &HFFFFFFF0

Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
End Type

Sub Close01xls()
    Dim hWinXL As Long, hWinDesk As Long, hWin7 As Long
    Dim obj As Object
    Dim iid As GUID
    Dim xlApp As Object ' Excel.Application
    
    hWinXL = FindWindow(vbNullString, "01.xlsx - Excel")
    If hWinXL = 0 Then Exit Sub
    
    Call IIDFromString(StrPtr(IID_IDispatch), iid)
    hWinDesk = FindWindowEx(hWinXL, 0&, "XLDESK", vbNullString)
    hWin7 = FindWindowEx(hWinDesk, 0&, "EXCEL7", vbNullString)

    If AccessibleObjectFromWindow(hWin7, OBJID_NATIVEOM, iid, obj) = S_OK Then
        Set xlApp = obj.Application
    End If

    xlApp.Workbooks("01.xlsx").Close False
End Sub
Excel не видит открытую книгу сохраненную из другой программы
 
Цитата
написал:
если правильно смотрю диспетчер задач, то открывается в одном экземпляре Excel
Да, в одном.
Цитата
написал:
пробовал сделать макрос для автоматического закрытия и открытия файлов - столкнулся с аналогичной проблемой - макрос не видит файл и не может его закрыть.
Но, думаю, если добраться до файла по имени окна (то о чем я писал выше) - закрыть его получится
Excel не видит открытую книгу сохраненную из другой программы
 
Добрый день. Скорее всего, этот файл открывается в другом экземпляре Excel (убедиться можно в диспетчере задач). Если это так, то алгоритм примерно следующий:
1. Найти открытый файл с определенным именем (через api)
2. Через Application этого файла обратиться к Книге и сохранить ее на диск с указанием пути, после чего закрыть
3. Из основного макроса по известному пути открыть файл.

PS Если нужен пример кода - найти смогу вечером
Как ускорить макрос с проверкой условия, Как ускорить макрос с проверкой условия
 
Добрый день. Вот так  можно:
Код
    Dim LO As ListObject, n As Long
    Set LO = ActiveSheet.ListObjects("СВОД")
    
    LO.Range.AutoFilter Field:=3, Criteria1:="=0", Operator:=xlOr, Criteria2:="="
    
    On Error Resume Next
        n = LO.DataBodyRange.SpecialCells(xlCellTypeVisible).Rows.Count
    On Error GoTo 0
    
    If n = 0 Then
        LO.Range.AutoFilter Field:=3
    Else
        LO.DataBodyRange.SpecialCells(xlCellTypeVisible).Select
    End If
Не совсем понятно два момента:
1. Вы проверяете на два условия - пусто или 0, но в любом случае ставите фильтр только на 0. Это ошибка? добавил фильтр на оба условия.
2. Зачем вообще в цикле ставить фильтр? Если нулей будет много - вот вам и потеря производительности. Тут два варианта - либо как сделал я (сразу ставить фильтр и смотреть что получилось). Либо если все-таки использовать цикл - ставить фильтр при первой нашедшейся пустой/нулевой ячейки и выходить из цикла.

И, кстати, а какая конечная цель? Может можно как-то проще
Изменено: webley - 29.12.2023 17:53:59
Проблема при протягивании формул из именованных диапазонов
 
Добрый день. Это особенность сводных таблиц - при использовании в формуле ячейки из сводной таблицы по умолчанию подставляется ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ. Самый простой способ решения проблемы - выбрать не нужную ячейку в сводной, а любую соседнюю (рядом со сводной) и за границу перетащить ее на нужное значение в сводной. Ну или просто с клавиатуры прописать
Некорректное отображение исходных данных в сводной таблице, Некорректное отображение исходных данных в сводной таблице
 
Добрый день. Насколько я понимаю, при построении сводной используются данные из кэша, а там эта запись похоже есть:
Код
?ActiveWorkbook.PivotCaches.Item(1).RecordCount
 112 
Выход - просто обновите сводную и "лишняя" дата исчезнет
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 72 След.
Наверх