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

Страницы: 1
Удаление элементов управления с листов из списка
 
Добрый день!

Друзья, нужна помощь в отладке кода, а именно в части формулировки команды на удаление элемента управления формы - флажок.
Код
Sub Clear()
    Dim BazaWb As Workbook 'отчет
    Dim BazaList As Range 'список проверяемых листов
    Dim iNameSht As String ' имя проверяемого листа
        Set BazaWb = ThisWorkbook
        Set BazaList = BazaWb.Worksheets("Адрес").Range("F2:F6") 'устанавливаем список листов
            For Each n In BazaList 'для каждого листа из списка удаляем элементы управления
                iNameSht = n
                If iNameSht <> "" And iNameSht <> "КТТ" Then 'исключаем из проверки один из листов в списке и пустые позиции
                With Sheets(iNameSht)
                    Rows.Hidden = False   'отменяем все скрытия строк
                    Columns.Hidden = False   'отменяем все скрытия строк
                    .Shapes.Delete
                End With
                End If
            Next
End Sub
Вызов именованной формулы по условию, Нужен пользовательский аналог ДВССЫЛ для работы с именованными формулами.
 
Добрый день!

Созданы именованные формулы ИНДЕКС() для определения значения норматива из баз по регионам. По коду региона, с помощью формулы "НБ_"&Регион генерируется имя именованной формулы, которая должна быть вызвана. Но вызвать именованную формулу способом ниже не удается, подскажите, ошибку.
Код
Function UseThisName(iName As String)
    UseThisName = Name(iName).Value
End Function
Пользовательская функция Индекс
 
Добрый день!

В файле имеется сводная техн. карта и техн. карты по культурам, в которых пользователем указывается техника. Задача в том, чтобы в сводную техн. карту собрать технику со всех тематических карт. В столбце "B" в значении ячеек есть косвенное указание в виде аббревиатуры на тематический лист, в котором необходимо произвести поиск, а также уникальный код ТО.

Подскажите в какой части кода пользовательской функции мной допущена ошибка:
Код
Вариант 1:
Function wbFind(IDRange As Range, iNumberColumn As Long, StCell As String, Number1 As Integer, Number2 As Integer)

    wbFind = Thisworkbooks.Sheets("ТК_" & Left(IDRange.Value, 3)).Columns(iNumberColumn) _
            .Find(IDRange.Value, Range(StCell), xlValues, xlWhole, xlByRows, xlNext).cell.Offset(Number1, Number2).Value

End Function

Вариант 2:
Function WbIndex(IDRange As Range, iRangeValue As String, iRangeCri As String)
    
    WbIndex = Application.WorksheetFunction.Index(Thisworkbooks.Sheets("ТК_" & Left(IDRange.Value, 3)).Range(iRangeValue), _
            WorksheetFunction.Match(IDRange, Thisworkbooks.Sheets("ТК_" & Left(IDRange.Value, 3)).Range(iRangeCri), 0))

End Function
Консолидация данных листов из списка в книгах из списка
 
Добрый день!

Друзья, нужна ваша помощь. Стоит задача консолидировать данные листов, приведенных в списке, из 21 книги, адреса которых приведены также в списке и расположенных в разных папках, в соответствующие листы общего файла. На форуме нашел наиболее подходящий макрос, но знаний его модифицировать не хватает.
Код
Sub consolidation()
    Dim BazaWb As Workbook 'консолидирующая книга
    Dim BazaAdress As Range 'список адресов месторасположения файлов
    Dim BazaList As Range 'список консолидируемых листов
    Dim BazaSht As Worksheet 'консолидирующий лист
    Dim iTempFileName As String 'путь к файлам-источникам
    Dim iLastRowBaza As Long 'последняя заполненная строка в общем файле по столбцу
    Dim iLastRowTempWb As Long 'последняя заполненная строка в по-очередно открываемом файле по столбцу
    Dim iNumFiles As Long 'количество открываемых источников
    With Application
       .ScreenUpdating = False
       .DisplayAlerts = False
       .Calculation = xlManual
       Set BazaWb = ThisWorkbook
       Set BazaAdress = BazaWb.Worksheets("Адрес").Range("D2:D23")
       Set BazaList = BazaWb.Worksheets("Адрес").Range("F2:F6")
       For Each i In BazaList
            iLastRowBaza = BazaWb.i.Cells(Rows.Count, 2).End(xlUp).Row + 1
                    .Range(.Cells(5, 2), .Cells(iLastRowBaza, "*")).Clear
       i = i + 1
       Next
       For Each i In BazaAdress
       iTempFileName = i
            Do While iTempFileName <> ""
               With .Workbooks.Open _
                    (Filename:=iTempFileName, UpdateLinks:=False, ReadOnly:=True)
                    iNumFiles = iNumFiles + 1
                    'Рабочая книга не должна быть защищена паролем
                    For Each i In BazaList
                    With .i
                         iLastRowTempWb = .Cells(Rows.Count, 3).End(xlUp).Row
                         iLastRowBaza = BazaWb.i.Cells(Rows.Count, 2).End(xlUp).Row + 1
                         .Range(.Cells(4, 1), .Cells(iLastRowTempWb, "*")).Copy
                         BazaWb.i.Cells(iLastRowBaza, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                         :=False, Transpose:=False
                    End With
                    i = i + 1
                    Next
                   .Close saveChanges:=False
                End With
              End If
        i = i + 1
        Next
       Loop
       .Calculation = xlAutomatic
       .DisplayAlerts = True
       .ScreenUpdating = True
   End With
   MsgBox "Информация собрана из " & iNumFiles & " файлов!", vbInformation, "Конец"
End Sub
Дополнительно хотелось бы предусмотреть:
- возможность автоматического создания листа в консолидирующем файле, если в списке листов он есть, но фактически не создан;
- вставки буквенного обозначения предприятия, которому принадлежит информация.
Изменено: Александр - 26.07.2018 08:32:42 (Замечание модератора)
Пользовательская функция для консолидации данных из разных книг
 
Добрый день!

Друзья, пытаюсь написать пользовательскую функцию ИНДЕКС() для консолидации данных закрытых книг:
Код
     Function MyIndex(Range1 As Range, Range2 As Range, X As Integer)
          MyIndex = Application.WorksheetFunction.Index(Range1, Application.WorksheetFunction.Match(X, Range2, 0))
     End Function

где Range1 и Range2 представляют собой склейки адреса расположения книги и просматриваемых диапазонов, указанных в виде текста в ячейках.

Подскажите, где допущена ошибка?
Добавление или удаление строки по условию
 
Добрый вечер!

Друзья, очень нужна ваша помощь.
На листе "Инвойс" в зависимости от значений ячеек F2 и F8 необходимо увеличивать (с копированием формул) или уменьшать кол-во строк в полях G2:Q3 и G9:Q24 соответственно.
Макрос скрытия и отображения строк по значениям в столбце
 
Добрый день!  
Подскажите как дополнить макрос, чтобы его исполнение проихсодило каждый раз как изменятся значения в столбце 32.  
 
Sub DeleteEmptyRowsColumns()  
LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count  
Application.ScreenUpdating = False  
For r = LastRow To 1 Step -1  
If Application.Rows®.Columns(32).Value = "" Then Rows®.Hidden = True  
If Application.Rows®.Columns(32).Value = "1" Then Rows®.Hidden = False  
Next r  
End Sub
Страницы: 1
Наверх