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

Страницы: 1 2 3 4 След.
Транспонирование множества горизонтальных таблиц в одну вертикальную
 
Цитата
написал:
Не могу додуматься какую формулу применить, чтобы эти таблицы соединялись в одну, при этом при изменении значений они менялись и в транспонируемой таблице
А зачем все эти движения? Ведите только транспонированную таблицу, а шахматку делаете как сводную таблицу, выбрали скважину- сводная построит по всем месяцам, выбрали месяц - сводная соберет по всем скважинам. Ну и в сводной будет удобно фильтровать.

p.s. Случайно не Усинское месторождение?) Номера скважин похожи.
макрос для открытия выпадающего списка кнопкой, не открывает выпадающий список
 
Цитата
написал:
В примере есть выпадающий список, есть кнопка, есть макрос
В примере нет макросов
Макрос вставляет данные из txt - в виде крякозябр и выделяет его
 
Цитата
написал:
все равно выделяется ячейка А1.
уберите строки
Код
.copy
...
[A1].Select
Изменено: irabel - 25.08.2025 08:56:44
VBA функция, должна разъединять все ячейки на активном листе
 
Цитата
написал:
нужна именно функция
почему именно функция?

Функции не могут изменять форматы ячеек, в т.ч. снимать объединение.
Добавьте этот макрос в личную книгу макросов, запускать горячими клавишами, или добавьте кнопку запуска на панель быстрого доступа.
Извлечение данных, Извлечение данных с сайта в виде таблицы
 
Dmitriy XM, ошибка "Variable not defined" в строке
Код
Set coll = JsonConverter.ParseJson(oHTTP.ResponseText)
Видимо как-то еще нужно подключить JsonConverter
Извлечение изображения с листа (книг) Excel
 
Если распаковать файл как архив, то в папке media будут все изображения в исходном виде.
Или обязательно макрос нужен?
Как выполнить макрос на скрытом листе не переходя на него
 
Цитата
написал:
Чтобы потом выполнить нужный мне макрос
В этом макросе используется ссылка на эту ячейку? ее значение?
Зачем её нужно обязательно выделять?
Как выполнить макрос на скрытом листе не переходя на него
 
Цитата
написал:
то он перейдет на "A101". Но мне нужно выполнить эти действия не переходя на "Лист1"
А зачем переходить на эту ячейку? какой смысл?
Код
Sub Найти_Последнюю_Ячейку()
Dim iLastRow As Long
with sheets("HiddenList") ' Нужное имя впишите сами
    iLastRow = .Cells(Rows.Count, 44).End(xlUp).Row
    debug.print "Значение в последней ячейке " & .Cells(iLastRow + 1, 1).value
end with
End Sub
Изменено: irabel - 04.07.2025 07:54:06
Доработка "экранной лупы" на форме, Необходимо переделать "лупу" так, чтобы в ней отображались метки
 
Доброго времени суток!

На форму загружается рисунок, для которого работает "Экранная лупа"
На поле с рисунком находятся несколько разноцветных меток, и нужно чтобы они тоже отображались в "лупе".

Предполагаю, что это можно сделать через api, при перемещении курсора копировать в память область экрана нужного размера, увеличивать эту область и отображать её в лупе. Но сам сделать такое не могу, в апи не силен.

Может есть еще варианты?
VBA. Медленная работа cells.copy и cells.format, На некоторых компьютерах.
 
Цитата
написал:
чем при прямом копировании.
А прямое копирование разве проходит мимо буфера обмена?


Мои результаты: Excel 2013 (64)
test1: 17,46
test2: 13,71
test3: 0,71

Второй раз:
test1: 30,61
test2: 0,71
test3: 1,17

Третий раз:
test1: 0,48
test2: 0,69
test3: 0,68

Четвертый раз:
test1: 0,5
test2: 1,17
test3: 0,71

В 1м и 2м случае включен журнал буфера обмена, во 3м и 4м- выключен

Тест на рабочем компе (Excel 2016, 32) с антивирусом в параноидальном режиме
включен журнал буфера обмена:
test1: 1,3
test2: 33,36
test3: 3,91

выключен журнал буфера обмена:
test1: 1,56
test2: 32,58
test3: 3,24

включен журнал буфера обмена:
test1: 30,953125
test2: 2,9375
test3: 1,83203125

включен журнал буфера обмена:
test1: 1,09375
test2: 31,96875
test3: 2,01171875

Немного поменял код, очистка перед каждым этапом, результаты копируются в ячейку.
Код
Sub test1()
    Dim n As Integer
    Dim t As Double
    Dim log As String
    Dim calcMode As XlCalculation
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    calcMode = Application.Calculation
    Application.Calculation = xlCalculationManual
    With ActiveSheet
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 1).Copy .Cells(n, 2)
        Next n

        log = "test1: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 1).Copy
            .Cells(n, 2).PasteSpecial
        Next n

        log = log & vbLf & "test2: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 2) = .Cells(n, 1)
            .Cells(n, 1).Copy
            .Cells(n, 2).PasteSpecial xlPasteFormats
        Next n

        log = log & vbLf & "test3: " & Timer - t
        .Columns(2).Clear
        t = Timer

        For n = 1 To 100
            .Cells(n, 2) = .Cells(n, 1)
            .Cells(n, 2).NumberFormat = "0.000"
        Next n

        log = log & vbLf & "test4: " & Timer - t
        'MsgBox log
        .Cells(1, 8) = log
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.Calculation = calcMode

End Sub
Изменено: irabel - 24.04.2025 10:53:46
VBA. Медленная работа cells.copy и cells.format, На некоторых компьютерах.
 
Посмотрите на "медленных" компах, не включены ли программы для слежения за буфером обмена (различные переключалки раскладки клавиатуры типа Punto Switcher и т.п., логирования буфера обмена - ClipBoard или встроенная в винду Win+V) - из-за них тоже могут быть тормоза
Работа в одном файле с несколькими книгами
 
Цитата
написал:
Это возможно?
Да, но нужны файлы с примерами данными, откуда и куда передавать.

p.s. зачем так уменьшать шрифт сообщения?
Как поменять ссылки на данные в графиках
 
Алексей Вячеславович,
Код
Public Sub Change()
    Dim pItem As Object, pSeries As Object, i As Long
    If TypeOf Selection Is DrawingObjects Then
        For Each pItem In Selection
            debug.print pItem.Name
            For i = 1 To pItem.Chart.SeriesCollection.Count
                debug.print pItem.Chart.SeriesCollection(i).Formula 
            Next
        Next
    End If
End Sub
ответы смотреть в окне отладчика Immediate  
Изменение названия при создании архива с определенной ячейки.
 
Вместо
Код
Filename = Format(Now, "DD-MM-YYYY-HH-NN") & ".xlsx"
надо, где А1 - нужная ячейка
Код
Filename = Range("A1").value & ".xlsx"
Происходит зависание макроса без возможности выхода
 
поправил ссылку
Происходит зависание макроса без возможности выхода
 
можно сделать прерывание циклов по такому методу и посмотреть

p.s. без примеров файла или хотя бы примеров макросов трудно подсказывать, а телепатов на форуме мало  ;)  
Изменено: irabel - 03.04.2025 06:45:50
Самопроизвольное уменьшение размеров UserForm со всеми элементами в редакторе VBA., VBA (предположительно баг Excel)
 
asesja, Такая же болезнь и её лечение Редактор пользовательских форм Excel VBA продолжает изменять размер сам по себе - Stack Overflow
Сводная таблица из других книг., создание и сводной таблицы из разных файлов с одинаковыми столбцами.
 
alexdrive, начните с этого: Сборка таблиц из разных файлов Excel с помощью Power Query
Поиск по критериям, сложение диапазонов из сводной таблицы
 
Цитата
написал:
Табличка прилагается
Нет
Причины долгой работы макроса, Причины долгой работы макроса
 
cell = cell   - лишнее
Не успел, ответили выше)
Изменено: irabel - 27.01.2025 13:04:43
Макрос по условному форматированию, Помогите создать макрос по форматированию, не очень в этом понимаю, устала
 
Цитата
написал:
каждый раз как в него добавляется новая строчка создается новое правило
Посмотрите Ад Условного Форматирования
Зависимость скорости вычисления от количества листов в книге
 
Цитата
написал:
на основании случайного числа
Случайное число считается в ячейке листа. Вы делаете копию листа, соответственно при работе макроса случайное число будет считаться два раза.. ну и все остальные расчеты также.
Считайте случайное число в макросе. Можете даже все расчеты делать в макросе, а на лист только выгружать результаты расчета. Тогда хоть 10 копий листов делайте))
Зависимость скорости вычисления от количества листов в книге
 
Цитата
написал:
Так и должно быть?
Если макрос во время работы взаимодействует с листами, то да.
Можно отключить при его запуске автоматический расчет формул, а потом не забыть включить обратно.

Если бы выложили макрос , а еще лучше файл-пример, то ответ был бы подробней, в т.ч. и как его оптимизировать, но увы..
вычисление веса из возможных вариантов
 
Подбор слагаемых для нужной суммы
Слетают форматы при сохранении файла эксель
 
Найдите откуда берутся лишние стили. Это может быть из-за различных локалей офиса (т.к. они там называются по разному, поэтому при копи-пасте дублируются), либо из-за выгрузок из других программ (1С и т.п.)

Если эти стили вам нужно убирать только в этой Заявке, то можно делать их очистку перед каждым сохранением, добавив в модуль Эта книга
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  StyleKiller
End Sub
Только если стилей будет ну очень много, этот код будет выполняться ощутимо долго. Я в таких случаях делаю просто сброс стилей.
Выделить цветом, если сцепленное значение двух соседних ячеек повторяются в этих столбцах.
 
Цитата
написал:
до 250-й строки
Замените
Код
For i = 4 To Cells(Rows.Count, "T").End(xlUp).Row
на
Код
For i = 4 To 250
Слетают форматы при сохранении файла эксель
 
У Вас много одинаковых стилей в книге, очистите их с помощью макроса, тогда не будут слетать форматы при изменении типа файла
Код
Sub StyleKiller()
Dim N As Long, i As Long
With ActiveWorkbook
    N = .Styles.Count
    For i = N To 1 Step -1
        If Not .Styles(i).BuiltIn Then .Styles(i).Delete
    Next i
End With
MsgBox ("Лишние стили удалены")
End Sub
Изменено: irabel - 24.12.2024 06:41:29
Работа макроса с вводом данных и выполнением на двух рабочих листах
 
prohor_9,

Сделайте процедуру с параметрами, потом её вызываете
Код
Sub Macros()
    dim lCol& 
    Dim lMet As Long
    Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
    sSubStr = InputBox("Введите значение для поиска")
    If sSubStr = "" Then lMet = 0 Else lMet = 1
    lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 5))
    If lCol = 0 Then Exit Sub

    Call Для_удаления_на_листе("SKU", 3) ' указываем название листа и с какой строки удалять
    Call Для_удаления_на_листе("другой лист", 4) ' указываем название листа и с какой строки удалять

End Sub

Sub Для_удаления_на_листе(Sh$, N&)
    Worksheets(Sh).Activate
    Dim lCol As Long      'номер столбца с просматриваемыми значениями
    Dim lLastRow As Long, li As Long
    Dim arr
    lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
    arr = Cells(1, lCol).Resize(lLastRow).Value
    Application.ScreenUpdating = 0
    Dim rr As Range
    For li = N To lLastRow 'цикл с третьей строки до конца
        If -(InStr(arr(li, 1), sSubStr) > 0) <> lMet Then
            If rr Is Nothing Then
                Set rr = Cells(li, 1)
            Else
                Set rr = Union(rr, Cells(li, 1))
            End If
        End If
    Next li
    If Not rr Is Nothing Then rr.EntireRow.Delete
    Application.ScreenUpdating = 1
End Sub
Изменено: irabel - 17.12.2024 12:12:58
VBA. Обойти ограничение на длину пути к файлу в 255 символов
 
Сетевую папку \\lan\Архив\ смонтировать как сетевой диск, после того как сформировался реестр, пройтись по нему с заменой имени диска на \\lan\Архив\
Условие: если имя файла содержит определенное имя
 
Код
WB.Name 
Страницы: 1 2 3 4 След.
Наверх