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

Страницы: 1 2 3 4 След.
Автоматическое транспонирование для сводной, Не срабатывает условие, если есть пустые поля
 
БМВ, данные дальше используются. Построение для сводной - это скорее способ представить конечный вариант. В рабочем документе наименований много (около 30), и если в одной строчке будет по 2 значения, то это уже 60 строк. Таблица будет "расползаться" очень быстро. Поэтому, конечно, необходимо, чтобы были только нужные наименования (то есть не нулевые)
Автоматическое транспонирование для сводной, Не срабатывает условие, если есть пустые поля
 
Приветствую!
Есть отлично работающий механизм, по транспонированию из таблицы с данными в плоскую таблицу. Вот только если в данных есть пустые ячейки (выделил красным в примере), то последние значения из таблицы выпадают (выделил желтым в примере). Помогите пожалуйста разобраться и поправить условия, чтобы выводились только заполненные значения, вне зависимости от наличия пустых ячеек в строке.
Автоматическое транспонирование для сводной, Необходимо транспонировать часть данных таблицы для построения сводной
 
Мне, в данном случае, было достаточно знаний чтобы понять алгоритм, но, видимо, не достаточно, чтобы его придумать. Поэтому, комментарий благодарности относился не к текстовому содержанию сообщения а к его вложению. Я, честно, даже и не обратил внимания что там было что-то написано )
Автоматическое транспонирование для сводной, Необходимо транспонировать часть данных таблицы для построения сводной
 
Спасибо Вам огромное за помощь! Благодаря Вам и этому форуму освоил навыки VBA кода, значительно продвинулся в использовании формул. А вот Power Query как-то стороной обошел. Надо будет изучить повнимательнее. Судя по всему, штука могучая
Автоматическое транспонирование для сводной, Необходимо транспонировать часть данных таблицы для построения сводной
 
artyrH, это... просто.... гениально....
Автоматическое транспонирование для сводной, Необходимо транспонировать часть данных таблицы для построения сводной
 
Добрый день! Есть исходная таблица, в которой данные заполняются по столбцам (пример прикреплен). Эту таблицу нужно преобразовать в базу для сводной таблицы. При изменении значений в исходной таблице (добавление/удаление новых строк, количества в пустых ячейках) база для сводной должна меняться. Пробовал разные варианты, не могу придумать в какую сторону копать. Помогите пожалуйста с поиском варианта решения?
Скрипт Гугл Таблицы, Помогите изменить алгоритм определения ячейки зависимых выпадающих списков
 
doober, СПАСИБО ОГРОМНОЕ!!! Самое крутое решение выпадающих списков!!!
Скрипт Гугл Таблицы, Помогите изменить алгоритм определения ячейки зависимых выпадающих списков
 
Добрый день, уважаемые! Извините, что прошу помощи по совершенно другому инструменту, но думаю Ваших знаний должно быть достаточно, чтобы мне помочь. Есть документ Гугл Таблиц, в нем написан скрипт, который при выборе выпадающего списка в столбце "А" на листе "Выход", где в качестве значений из диапазона выбран именованный диапазон "ОСНОВНАЯ", в столбце "В" выводит выпадающий список с соответствующим именованным диапазоном, выбранным в столбце "А".
Мне Оооочень нужна Ваша помощь сделать так, чтобы диапазоны были зафиксированы и предопределены. Выводить список из именованного диапазона "ОСНОВНАЯ" в ячейке "А17", а зависимый список с соответствующим именованным диапазоном был в "А19".
Пожалуйста, не откажите в помощи!
Ссылка на файл с доступом на редактирование: Ссылка
Текст скрипта:
Код
function depDrop_(range, sourceRange){
  var rule = SpreadsheetApp.newDataValidation().requireValueInRange(sourceRange, true).build();
  range.setDataValidation(rule);
}
function onEdit (){
  var aCell = SpreadsheetApp.getActiveSheet().getActiveCell();
  var aColumn = aCell.getColumn();
  
  if (aColumn == 1 && aCell.getValue() == "") {
    var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    range.clearDataValidations();
    range.clearContent();
    return;
  }
  
  if (aColumn == 1 && SpreadsheetApp.getActiveSheet()){
    var range = SpreadsheetApp.getActiveSheet().getRange(aCell.getRow(), aColumn + 1);
    var sourceRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(aCell.getValue());
    depDrop_(range, sourceRange);
  }
}
Скрыть/отобразить строки по условию, С помощью кода VBA скрыть/отобразить строки на листе
 
ivanok_v2, нужна помощь с адаптацией Worksheet_Change() к имеющемуся коду. Запускаем макрос при изменении значений в G30:G40
Пробовал переделать, но не выходит. Что не так:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngRows As Range
    Dim rngSrc As Range
    Dim arr()
     
    Application.EnableEvents = False
     
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("G30:G40")) Is Nothing Then
        PosStr = Cells.SpecialCells(xlCellTypeLastCell).Row
        Set rngSrc = Cells(1, 1).Resize(PosStr)
        rngSrc.EntireRow.Hidden = False
     
        arr = rngSrc.Value
         For r = 1 To PosStr
               If arr(r, 1) = 2 Then
                   If Not rngRows Is Nothing Then
                       Set rngRows = Union(rngRows, Rows(r))
                   Else
                        Set rngRows = Rows(r)
                    End If 'Not rngRows Is Nothing
               End If 'arr(i, 1) = 2
        Next
    End If
    End If
    If Not rngRows Is Nothing Then rngRows.EntireRow.Hidden = True
     
    Application.EnableEvents = True
End Sub
Скрыть/отобразить строки по условию, С помощью кода VBA скрыть/отобразить строки на листе
 
Ігор Гончаренко, можно попробовать. Пользователь выбирает тип производства и производительность из выпадающих списков, в зависимости от этого выводится доступные варианты комплектующих. Выбирая нужные комплектующие пользователь отмечает их галками, при выборе галкой комплектующих выводится список характеристик каждого из них. Если комплектующее не нужно, снимает галку, характеристики скрываются.
Визуализация процессов разной длительности в фиксированном количестве ячеек по строке
 
Может вариант Диаграммы Ганта подойдет? https://www.planetaexcel.ru/techniques/4/108/
Скрыть/отобразить строки по условию, С помощью кода VBA скрыть/отобразить строки на листе
 
ivanok_v2, с этим тоже проблема. По идее нужно только при изменении определенных значений (выборе комплектующих, изменении производительности, или типа). Но это можно в следующие улучшения, а вот то, что он на минуту вываливается при выполнении кода - это напрягает
Скрыть/отобразить строки по условию, С помощью кода VBA скрыть/отобразить строки на листе
 
Убрал пока Application.ScreenUpdating = False, True. С ним данные в таблице не дергаются, но по времени выполнения особо ничего не меняется
Скрыть/отобразить строки по условию, С помощью кода VBA скрыть/отобразить строки на листе
 
С добрым днем! Нужна помощь специалистов, кто сталкивался или может помочь решить проблему с очень медленным выполнением кода. Общая задача такая - при выборе галкой комплектующего показываются его параметры, при снятии галки - скрываются. Реализовал через заполнение по формуле каждой строчки столбца "A", если в ячейке значение "2", то она скрывается, если нет, то отображается. В оригинале файла все данные заполняются по формулам, комплектующих не 4 а 70, параметров у каждого комплектующего по 20. Короче все настолько жутко медленно работает, что боишься что-то лишнее нажать, потому что обработка уходит в цикл. Пожалуйста, помогите, подскажите, может быть я выбрал не верную методику, может из-за того, что в столбце "А" формулы и при каждом движении формулы пересчитываются заставляя пробегать цикл скрытия строк по несколько раз? Очень жду Вашей помощи.
Использован код:
Код
Private Sub Worksheet_Calculate()
    Dim rngRows As Range
    Dim rngSrc As Range
    Dim arr()
     
    Application.EnableEvents = False
     
    PosStr = Cells.SpecialCells(xlCellTypeLastCell).Row
    Set rngSrc = Cells(1, 1).Resize(PosStr)
    rngSrc.EntireRow.Hidden = False
     
    arr = rngSrc.Value
        For r = 1 To PosStr
            If arr(r, 1) = 2 Then
                If Not rngRows Is Nothing Then
                    Set rngRows = Union(rngRows, Rows(r))
                Else
                    Set rngRows = Rows(r)
                End If 'Not rngRows Is Nothing
            End If 'arr(i, 1) = 2
        Next
     
    If Not rngRows Is Nothing Then rngRows.EntireRow.Hidden = True
     
    Application.EnableEvents = True
End Sub
Вставка 2х изображений на нескольких листах с разным размером
 
RAN, все в полном порядке. Структура и картинки остаются на своих местах
Вставка 2х изображений на нескольких листах с разным размером
 
Ігор Гончаренко, From i=1 to n, где n = результат!
Вставка 2х изображений на нескольких листах с разным размером
 
Ігор Гончаренко, я эмпирическим путем установил, что если второй аргумент Shapes.AddPicture установить True, то качество картинки сохраняется:
Код
Set sha = MyCell.Worksheet.Shapes.AddPicture(sAddress, TRUE, True, MyCell.Left + 1, MyCell.Top + 1, -1, -1)    With sha
        .LockAspectRatio = msoFalse
        .Height = 85
        .Width = 107
    End With
Вставка 2х изображений на нескольких листах с разным размером
 
RAN, Ігор Гончаренко, Юрий М, коллеги! в процессе эксплуатации возникли сложности. Картинка загружается качественно, благодаря:
Код
Set sha = MyCell.Worksheet.Shapes.AddPicture(sAddress, False, True, MyCell.Left + 1, MyCell.Top + 1, -1, -1)
    With sha
        .LockAspectRatio = msoFalse
        .Height = 85
        .Width = 107
    End With
Но вот после сохранения документа, качество картинки резко падает, и обновляется связанная с ней большая картинка, все расплывается в пикселях. Скажите, как-то можно настроить параметры так, чтобы при сохранении качество картинки не изменялось?
Вставка 2х изображений на нескольких листах с разным размером
 
Юрий М, Ігор Гончаренко,ДА, спасибо большое за помощь!
Вставка 2х изображений на нескольких листах с разным размером
 
Юрий М, параметр определился как ".Placement". Не могу никак прикрутить его именно к вставляемому объекту. Макрорекордером он определился как "Selection.Placement = xlMoveAndSize". Как прикрутить этот кусок к имеющемуся коду? )
Вставка 2х изображений на нескольких листах с разным размером
 
RAN, Ігор Гончаренко, слушайте, ну в принципе круто работает! Такой еще момент, как можно при вставке объекта Shapes.AddPicture в свойствах картинки установить "Перемещать и изменять объект вместе с ячейками"?
Вставка 2х изображений на нескольких листах с разным размером
 
Ігор Гончаренко,
Цитата
Ігор Гончаренко написал:
а) где брать файлы с изображениями?
Файлы с изображениями будут находиться в папке "Банк изображений", рядом с документом Excel. Как и сейчас в примере.
Цитата
Ігор Гончаренко написал:
б) как каждая строка связана и именем файла с изображением?
Пока никак, каждое изображение сейчас загружается вручную с помощью макроса. Вот если можно было бы как-то привязаться к адресу файла, который мы добавили в таблицу Листа1.
Вставка 2х изображений на нескольких листах с разным размером
 
Ігор Гончаренко, точно, я это понял, когда удалось добавить 2е изображение на другой лист. Нужно подгонять отступом место положение рисунка. И 2я проблема - это то, что при выборе другого изображения в таблице Листа1, на Листе2 оно накладывается на первое изображение. Прошу Вашей помощи, как можно иначе реализовать задачу?
Вставка 2х изображений на нескольких листах с разным размером
 
vikttur, пример он остается. Формулировка задачи тоже - при выборе изображения в таблице на Листе1 в ячейку B3, добавляется изображение формата 100*80 в текущую ячейку, а так же на Лист2 в ячейку С6 более крупного размера 200*160. Дальше, при выборе изображения на Листе1 в ячейке B4 так же появляется более крупный размер в С23.
Вставка 2х изображений на нескольких листах с разным размером
 
Я сейчас понял, что скорее всего не выйдет таким образом решить задачу... Ведь у меня будет не 1 изображение, которое должно быть в таблице на Листе1 и в каталоге на Листе2. Их будет несколько и как-то надо для больших прописывать отдельно куда они должны помещаться. Скажите, сохраняется ли где-то путь к изображению при вставке его с помощью Shapes.AddPicture? Может быть есть вариант уже на Листе2 из нужной ячейки обратить к адресу интересующего изображения и вставить его же, но с другими размерами? Есть такой вариант?
Вставка 2х изображений на нескольких листах с разным размером
 
Ігор Гончаренко, остается вопрос, как указать столбец и ячейку на новом листе, куда должно быть помещено изображение? Как все таки верно, 2 раза прописывать Shapes.AddPicture для каждого изображения, или один раз, но с разными параметрами?
Вставка 2х изображений на нескольких листах с разным размером
 
vikttur, боюсь сказать какую-нибудь глупость, но правильно понимаю, что код должен будет выглядеть примерно так:
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)Dim sAddress As String
Dim MyCell As Range
 
    On Error Resume Next
    Set MyCell = Target.Range
     
    ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name
    sAddress = Application.GetOpenFilename(Title:="Выберите файл")
    MyCell.Font.ThemeColor = xlThemeColorDark1
    'MyCell.Clear
    Shapes.AddPicture _
        sAddress, False, True, MyCell.Left + 5, MyCell.Top + 5, 100, 80 'для вставки в текущее место
        Shapes.AddPicture _
        
        sAddress, False, True, MyCell.Left + 5, MyCell.Top + 5, 200, 160
        with Worksheets("Лист2")
             'тут как-то прописать строку и столбец, куда вставить изображение
        end with

                 
End Sub
Вставка 2х изображений на нескольких листах с разным размером
 
vikttur, а другой лист возможен?
Вставка 2х изображений на нескольких листах с разным размером
 
Добрый день! Нашел отличный пример создания списка изображений для комплектующих. Сам пример во вложении. Проблема в том, что помимо заполнения маленькими картинками (размер 100*80) в таблице на Листе1, нужно еще заполнить каталог в бОльшем масштабе на Листе2 (200*160, например). В итоге, при смене маленького изображения будет меняться и большое изображение. Вот используемый код:

Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)Dim sAddress As String
Dim MyCell As Range

    On Error Resume Next
    Set MyCell = Target.Range
    
    ChDir ThisWorkbook.Path & "\Банк изображений\" & Target.Name
    sAddress = Application.GetOpenFilename(Title:="Выберите файл")
    MyCell.Font.ThemeColor = xlThemeColorDark1
    'MyCell.Clear
    Shapes.AddPicture _
        sAddress, False, True, MyCell.Left + 5, MyCell.Top + 5, 100, 80
                
End Sub
Скрыть строки при условии, Какие следует внести изменения, чтобы работало быстрее?
 
JayBhagavan, Просто отлично работает! Спасибо! Я даже примерно понял разницу в моем и предложенном варианте.
Страницы: 1 2 3 4 След.
Наверх