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

Страницы: 1 2 След.
Всплывающая подсказка с результатом вычисления части формулы, Как включить всплывающую подсказку
 
После обновления офиса с версии 2019 до версии 2021 пропала всплывающая подсказка, в которой отображался результат вычисления части формулы.
Подскажите пожалуйста как её включить обратно.
Раньше было так: когда наводишь на формулу с множеством разных вложенных формул - над выделенной частью формулы всплывала подсказка с результатом вычисления этой самой части формулы. Не могу понять, как обратно включить эту подсказку. Без неё очень неудобно разбираться со сложными формулами, помогите плз найти где эта самая подсказка включается.
Автоматическая перенумерация после удаления строк, Макрос удаляет произвольную строку, в этом же макросе после удаления необходимо перенумеровать ячейки в столбце №п/п
 
Полезная тема, применил описанное выше у себя в файле :)
Извлечь числа до и после дефиса и произвести с ними вычисляния
 
Ігор Гончаренко, работает для ячейки A2.
Спасибо за наводку на правильную мысль)

Сделал для последней заполненной ячейки вот так:
Рабочий макрос с примером прилагаю, может кому пригодится.
Код
Sub test()
Dim I As Long
Dim I2 As Long
Dim IE As String


I = Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row 'номер последней заполненной строки
IE = Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp) 'значение, которое содержит последняя заполненная строка
I2 = I + 1 'наша целевая ячейка (последняя пустая ячейка), в которую надо вставить требуемое число

Range("A" & I2) = Val(Split([IE], "-")(0)) + 1 & "-" & Format(Month(Now), "00")
End Sub
Изменено: Yuriy575 - 17.01.2022 09:21:18
Извлечь числа до и после дефиса и произвести с ними вычисляния
 
Ігор Гончаренко,
ну что-то тоже не хочет, ошибку выдает) может быть потому что я своими кривыми руками не туда вставляю))
в посте #6 пример обновленный выложил, там обозначил как должно получаться при каждом нажатии на кнопку
Изменено: Yuriy575 - 16.01.2022 20:07:45
Извлечь числа до и после дефиса и произвести с ними вычисляния
 
Цитата
_Igor_61 написал:
Не стыдно?
Стыдно)
Но не в синтаксисе вроде дело. Поправил на ["a" & iLastRow] - тоже не работает :(

Цитата
Ігор Гончаренко написал:
не понимаю о чем вы спрашиваете, но...Код ...
Тоже попробовал но не получается, прилагаю файл примера, в который попробовал вставить эту строку.
Изменяет ячейку А1, а должно вставлять число в А2, она идет следующая пустая за А1.
Изменено: Yuriy575 - 16.01.2022 19:38:58
Извлечь числа до и после дефиса и произвести с ними вычисляния
 
Ігор Гончаренко, работает, только меняет не в A2, а в A1.
Код
NextNum [a2] 
- так ставит в А2.

Я бы хотел чтобы номер подставлялся в самую последнюю незаполненную ячейку столбца A.
Думал что смогу воспользоваться методом Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
Но это не работает:
Код
Sub NextNum(rg As Range)
  Dim c As Range
  For Each c In rg
    c = Val(Split(c, "-")(0)) + 1 & "-" & Format(Month(Now), "00")
  Next
End Sub
 
Sub test()
Dim iLastRow As Long

iLastRow = Worksheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (iLastRow)
iLastRow = iLastRow + 1
  NextNum [a&iLastRow] 'тут ошибка, на этой строчке стопорится
End Sub

Подскажите, как сделать чтоб номер подставлялся в ячейку, ниже последней заполненной в стобце А?
Изменено: Yuriy575 - 16.01.2022 18:11:24
Извлечь числа до и после дефиса и произвести с ними вычисляния
 
Добрый день!
Исходные данные: В ячейке А1 содержится число в текстовом формате: "5014-01". Дефис выступает разделителеим.
Задача:
1. Нужно чтобы в ячейку А2 прописалось "5015-01" (т.е. инкрементировать первую часть числа на 1).
2. Вторую часть числа (после дефиса) - прописать в зависимости от текущего месяца. Январь - 01, Февраль - 02, и т.п.
Обратиться к книге, зная лишь часть названия, Как обратиться к книге, не зная полного названия файла
 
Евгений Смирнов, Jack Famous, Дмитрий(The_Prist) Щербаков, спасибо за подсказку, буду пробовать. Теперь вроде в голове картинка складывается, как сделать.
Обратиться к книге, зная лишь часть названия, Как обратиться к книге, не зная полного названия файла
 
Ігор Гончаренко, Спасибо за обратную связь, уточняю: КП обычно открыто. И из него надо запускать макрос.
Хочу сделать макрос, который будет открывать книгу учёта, и заносить туда данные из определенных ячеек КП.
Как открыть книгу учета и занести данные - мне понятно.
А вот как обратиться к ячейкам из книги "КП....." по неполному названию - не понимаю пока.  
Изначально перед выполнением макроса - книга "КП...." уже является открытой. Из неё запускаем макрос, который будет переносить некоторые данные из неё в книгу учёта. Надо как-то перемещаться между этими двумя книгами.

Если всё-таки обязательно нужен путь к книге, то вариант - сначала можно обязать пользователя положить книгу КП по пути "C:\" например, и оттуда к ней обращаться.

Может как-то можно идентифицировать название открытой книги и занести его в переменную? А уже потом перемещаться между книгами, используя название файла "КП....", которое мы занесли в переменную?  
Изменено: Yuriy575 - 14.01.2022 08:43:27
Обратиться к книге, зная лишь часть названия, Как обратиться к книге, не зная полного названия файла
 
Добрый день!
Можно ли как-то обратиться к книге, зная лишь то, что её название всегда начинается с букв "КП"?
После букв "КП" может быть что-угодно (например: "КП 7210121-92 для..."), известно лишь то что название книги всегда начинается с "КП".
Вставка формулы с переменными макросом
 
, спасибо) проанализировал - нашел у себя две ошибки. Не поставил знак "=" перед SUM, и не поставил & перед предпоследними кавычками.
да уж, с синтаксисом надо быть внимательнее
Вставка формулы с переменными макросом
 
Магия какая-то)
Это работает! Спасибо большое))

Цитата
Диапазон динамичный, а ячейка для формулы (D10) статична
ячейка D10 тоже динамична, старался не усложнять пример)

Цитата
Но зачем вычислять первую строку?
Первая строка тоже в динамическом диапазоне, она всегда разная, поэтому её тоже приходится вычислять и заносить в переменную iFirstrow :)  
Вставка формулы с переменными макросом
 
Доброго времени суток!
Есть две переменные, в которых содержится номер первой строки - iFirstrow и номер последней строки - iLastrow.
Задача - вставить формулу суммирования плавающего диапазона столбца F....

Должно получиться что-то на подобии:
Код
Range("D10").Formula="SUM("&"F"& iFirstrow & ":F"& iLastrow")"
Этот вариант не работает.
Перебрал кучу вариантов, не могу разобраться с синтаксисом, постоянно выдает разные ошибки.
Ввод формулы макросом в плавающий диапазон
 
RAN, да, циклом мне показалось удобней, т.к. диапазоны плавающие у меня
Изменено: Yuriy575 - 06.01.2022 16:58:22
Ввод формулы макросом в плавающий диапазон
 
gling, спасибо) использовал второй вариант в цикле For Each.
Прилагаю на всякий случай файл с решением, может кому пригодится.
Изменено: Yuriy575 - 27.12.2021 09:02:14
Нет "движка", с помощью которого можно передвигаться по листу вправо-влево.
 
, Аххах))) отличная тема, создала новогоднее настроение))) С наступающим, приколисты! :)
Ввод формулы макросом в плавающий диапазон
 
Добрый день!
Задачка вроде не сложная, но не знаю как решить: есть три столбика - цена, кол-во, стоимость.
В этих столбика последняя строка - неопределенная и плавает.
Нужно макросом (циклом) внести формулу перемножения цены на количество - в каждую ячейку "стоимость".
Пример прилагаю.
То что должно получиться - в примере на листе №2.
Суммирование динамического диапазона с пропусками, Суммирование динамичной колонки
 
Kuzmich,Спасибо, подошел способ. Всё работает!
Суммирование динамического диапазона с пропусками, Суммирование динамичной колонки
 
Можно ли присоединиться к Вашей теме?
У меня похожая задача, но мне надо чтобы в ячейку (обязательно при помощи макроса) забивалась именно формула, а не её результат вычисления.

Требуется макрос, который будет вписывать в ячейку G238 ФОРМУЛУ суммирования всех ячеек выше. (Нужно чтобы формула была типа =СУММ(............) - а в скобки указывались значения диапазона. Диапазон всегда разный, так как кол-во строк всегда разное.
В данном случае требуется просуммировать диапазон G6:G237, но в таблице всегда разное кол-во строк и получается что диапазоны всегда разные.

P.S. Нужно вписывать макросом именно формулу, а не её результат вычисления. Как это можно сделать?
Пример прилагаю.
VBA. Протянуть формулу до крайней заполненной ячейки
 
то что нужно)
Нужно объединять ячейки с сохранением текста
 
МатросНаЗебре, да) спасибо)) изучил свойство Resize и догнал вроде)) Пошел изучать VBA дальше))
Нужно объединять ячейки с сохранением текста
 
skais675, применил этот код, всё как надо работает теперь :)
Спасибо большое)
Но немного не понял как работает, почему в этой строке
Код
Cells(rww, 1).Resize(, 5).Merge

не указано число перед запятой... Попробую разобраться на выходных.

Нужно объединять ячейки с сохранением текста
 
skais675, проверил, что-то не работает
Приложил пример, как должно получиться.
Изменено: Yuriy575 - 04.04.2020 18:22:36
Нужно объединять ячейки с сохранением текста
 
skais675, Применил этот вариант, работает.
А как сделать чтоб по строкам объединялись смежные ячейки столбцов Fи G? При этом чтоб в них закидывался текст из диапазонов F:M ?
Что нужно поменять в коде?
Нужно объединять ячейки с сохранением текста
 
Всем здравствуйте!
Нужно объединять ячейки с сохранением текста. Строк около 5000.
Нашел пример как объединять, но не могу понять как прописать цикл.... подскажите пожалуйста.
Нужно объединять ячейки в строке в диапазоне A1:E1, и так до A5000:E5000. Причем нужно чтобы при установленном фильтре объединялись только видимые ячейки. Невидимые не нужно объединять.
Макрос нашел в примерах, но не могу с циклом разобраться...
Думаю там всё просто должно быть, но как именно - понять не могу, туплю уже часа 3 над этим)
Пример прилагаю. Помогите плз.
Изменено: Yuriy575 - 04.04.2020 14:58:04
Вставить формулы массива макросом
 
vikttur,  :D
В общем я задачку решил - просто в формуле прописал несколько лишних условий и отошел от макроса, макрос не понадобился в моем случае.
P. S. Но всё-таки интересно почему VBA ругался на кавычки.
Вставить формулы массива макросом
 
vikttur,поправился)
Вставить формулы массива макросом
 
Hugo, выдает ошибку "Нельзя установить свойство FormulaArray класса Range"
Я выяснил методом тыка, что если в формуле заменить кавычки на цифры - то формула вставляется нормально и эта ошибка не выскакивает... Почему так происходит, и как мне всё-так вставить с кавычками, т. к. мне нужно чтобы при определенных условиях формула выдавала "пустоту"

Вот вариант который вставляется нормально. Заменил "" на 777:
Код
=IFERROR(IF(E116=0,777,INDEX(BJ6:BK15,MATCH(MIN(IF(BK6:BK15>E116,BK6:BK15)),BK6:BK15,0),1)),777)

Но как всё-таки вставить с кавычками? Нужно именно чтобы с кавычками вставлялось, никакие другие значения не подходят, иначе дальше у меня вылазят ошибки в расчетах(
Изменено: Yuriy575 - 28.03.2020 19:17:02
Вставить формулы массива макросом
 
Добрый день!
У меня похожая проблема, не вставляется формула массива макросом.
Макрос выглядит так:
Код
If Not Intersect(Target, Range("F106")) Is Nothing Then
        If Range("F106").Value = "Есть" Then Range("D37").FormulaArray = "=1+1+1+1"
    End If

Этот макрос работает норм и вставляет формулу массива, которая выдает результат 4. Нормально вставляет  {=1+1+1+}.
НО нужная мне формула в экселе выглядит так:
Код
=ЕСЛИОШИБКА(ЕСЛИ(E116=0;"";ИНДЕКС(BJ6:BK15;ПОИСКПОЗ(МИН(ЕСЛИ(BK6:BK15>E116;BK6:BK15));BK6:BK15;0);1));"")   

Скорей всего саму формулу надо как-то по другому прописать, чтоб VBA её нормально вставлял в эксель, но я не знаю - как именно. Помогите плз!
Изменено: Yuriy575 - 27.03.2020 21:28:16
Макрос: многоразовая вставка сформированных таблиц на новый лист
 
Mershik, Шикарно! теперь всё работает, как надо)

На всякий случай оставлю получившийся код здесь, вдруг кому пригодится.
Код
Sub СуперКнопка()
Dim i As Double
Dim Mycells As Range
Dim MyRows As Range
Application.ScreenUpdating = False
ilastrow = Worksheets("Лист1").Cells(Rows.Count, 3).End(xlUp).Row
    Worksheets("Лист1").Range("A6:C" & ilastrow).Copy
    Worksheets("Лист2").Activate
ilastrow2 = Worksheets("Лист2").Cells(Rows.Count, 4).End(xlUp).Row
    If ilastrow2 <= 1 Then
    ilastrow2 = ilastrow2
    Else
    ilastrow2 = ilastrow2 + 3
    End If
    Worksheets("Лист2").Cells(ilastrow2, 1).Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Worksheets("Лист1").Activate
    Worksheets("Лист1").Range("D6:D" & ilastrow).Copy
    Worksheets("Лист2").Activate
ilastrow3 = Worksheets("Лист2").Cells(Rows.Count, 4).End(xlUp).Row
    If ilastrow3 <= 1 Then
    ilastrow3 = ilastrow3
    Else
    ilastrow3 = ilastrow3 + 3
    End If
    Worksheets("Лист2").Cells(ilastrow3, 4).Select
    ActiveSheet.Paste
    For Each Mycells In Selection
    If Mycells.Value = "" Then
    If MyRows Is Nothing Then
        Set MyRows = Mycells
        Else
        Set MyRows = Union(MyRows, Mycells)
        End If
        End If
    Next Mycells
    If Not MyRows Is Nothing Then MyRows.EntireRow.Delete
Application.ScreenUpdating = True
End Sub
Страницы: 1 2 След.
Наверх