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

Страницы: 1 2 3 4 След.
Копирование рисунков в Excel с сохранением пропорций
 
К сожалению я просто не дома. На рабочем месте нет возможности выкладывать что либо в инет. Сразу же выложу пример с описанием что делаю.
Копирование рисунков в Excel с сохранением пропорций
 
Дело в том, что это легко сделать самому и вопрос не конкретно в моем файле, а такое может быть у всех.
А вот как сохранить пропорции не знаю. Он перемещает обекты рисунки, но не запоминает место расположение и пропорции.
Копирование рисунков в Excel с сохранением пропорций
 
Всем привет!

Подскажите, кто сталкивался со следующей ситуацией и как ее решить.
В книге Excel есть лист, на котором есть рисунок созданный с помощью Camera (функции Excel). Рисунок определенного размера (ширина и высота).
Есть необходимость перемещения данного листа в другую книгу.
При копировании листа теряются пропорции. Как правильно скопировать лист, чтоб абсолютно все рисунки с пропорциями сохранились? В моем случае на листе около 20 рисунков и все пропорции "слетают".

Выложить файл к сожалению не могу. Проверить это не сложно. В Excel выделить диаапазон с помощью Camera, а потом скопировать этот лист с рисунком в другую книгу.

Спасибо за ответы.
SQL запрос из EXCEL (выбор дат)
 
Добрый день!

Подскажите, что не так в запросе, а именно в BETWEEN и AND ?
Выдает ошибку "Дата содержит ошибку в выражении date BETWEEN #" & d1 & "# AND #" & d2 & "# "
Код
  d1 = Format("01" & "." & Month(Right(Range("B5").Value, 10)) & "." & Year(Right(Range("B5").Value, 10)), "dd/mm/yyyy")
  d2 = Format(Right(Range("B5").Value, 10), "dd/mm/yyyy")  

  Set Conn = CreateObject("ADODB.Connection")
  Set rs = CreateObject("ADODB.Recordset")
    
  sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & Report & ";HDR=Yes';"
  Conn.Open sconnect
  sSQLString = "SELECT date, Variable2, Variable3, Variable3 [выборка$]" & _
  "WHERE date BETWEEN #" & d1 & "# AND #" & d2 & "# "

  rs.Open sSQLString, Conn
  Set QT1 = Worksheets("1").QueryTables.Add(rs, Range("A1"))
  QT1.Refresh
  
  rs.Close
  Conn.Close
Автофильтр дат VBA
 
Разобрался сам.
Надо было добавить.
Код
Period = CStr(Period)
Автофильтр дат VBA
 
Всем привет!

Подскажите что может быть неверно при установке автофильтра для столбца с датами?
Имеются следующие данные:
Код
Dim Year As Long, Month As Long, Date_oper As Long
Dim Period As Date

Period = Format(Date_oper & "." & Month & "." & Year, "dd.mm.yyyy")
                    If IsEmpty(Date_oper) = False Then
                        ActiveSheet.Range("Фильтр").AutoFilter Field:=3, Criteria1:=Period
                    Else
                        ActiveSheet.Range("Фильтр").AutoFilter Field:=3
                    End If
Фильтрует, а выборки по фильтру нет, соответственно что-то не так с форматом Period мне кажется.
Кто подскажет в чем может быть проблема?
Максимальное значение даты в столбце VBA
 
Дмитрий, круто, спасибо.
Код работает.
Максимальное значение даты в столбце VBA
 
Сейчас попробую, потом отпишусь) файл выложить не могу, на работе.... был бы дома выложил
Максимальное значение даты в столбце VBA
 
Лист "Отчет", столбец "С". Формат ячейки общий, отображается как дата.
Возможно он воспринимается как текст? Тогда как корректно сделать выборку? И найти макс значение?
Дата
01.08.2017
02.08.2017
Итог
01.08.2017
05.08.2017
Итог
04.08.2017
Максимальное значение даты в столбце VBA
 
Всем привет!
Помогите решить задачу по нахождению максимального значения даты в столбце с помощью кода.
Проблема заключается в том, что использовать функцию MAX не предоставляется возможным, т.к. в этом столбце есть текстовые значения.
Формат даты если подвести курсор к значениям - общий.
Нашел на зарубежных форумах код. Перебирает значения, формирует массив дат, и потом там находит максимальное значение.
Но мне выдает 0. Подскажите почему?
Буду признателен за помощь.
Код
Sub test()
Dim Date_Array() As Date, i As Long, j As Long
With Sheets("Отчет")
    For i = 12 To 3479
        If IsDate(.Range("C" & i).Value) Then
            j = j + 1
            ReDim Preserve Date_Array(1 To j)
            Date_Array(j) = .Range("C" & i).Value
        End If
    Next
End With
MsgBox IIf(j = 0, "No date", Application.Max(Date_Array))
End Sub
Выборка уникальных значений из указанного диапазона VBA
 
Спасибо) не везде обновил лист, вот и выдавало ошибку.
Все вышло.
Изменено: Limos - 21.08.2017 12:25:40
Выборка уникальных значений из указанного диапазона VBA
 
Цитата
Dmitriy XM написал:
попробуйте применить блок With для определения переменных на листе Отчет
Блок With не помог
Выборка уникальных значений из указанного диапазона VBA
 
Чекнул, но ошибка в строке "For Each vItem In Worksheets("Отчет").Range(Cells(1, 6), Cells(Cells(Rows.Count, 1).End(xlUp), 6)).Value" - 1004 та же
Понимаю, что ошибка в том же...
Код
Sub Extract_Unique()
    Dim vItem, avArr, li As Long
    ReDim avArr(1 To Rows.Count, 1 To 1)
    With New Collection
        'On Error Resume Next
        For Each vItem In Worksheets("Отчет").Range(Cells(1, 6), Cells(Cells(Rows.Count, 1).End(xlUp), 6)).Value
            'Cells(Rows.Count, 1).End(xlUp) – определяет последнюю заполненную ячейку в столбце А
            .Add vItem, CStr(vItem)
            If Err = 0 Then
                li = li + 1: avArr(li, 1) = vItem
            Else: Err.Clear
            End If
        Next
    End With
    If li Then Worksheets("Test").Cells(1, 1).Resize(li).Value = avArr
End Sub
Выборка уникальных значений из указанного диапазона VBA
 
Да, вы правы. Убрал On Error Resume Next.
Теперь в строке ошибка 1004 Run-time error '1004' Application-defined or object-defined error , что это может быть?
Код
Set rVals = Worksheets("Отчет").Range(Cells(12, 6), Cells(i, 6))
Выборка уникальных значений из указанного диапазона VBA
 
Добрый день!

Помогите решить следующую задачу.
Мне нужно из диапазона выбрать только уникальные значения и вставить полученный результат в определенную область на другом листе.
Код срабатывает без ошибки. Но результат нулевой, пустые ячейки.
Заранее спасибо за ответы.
Код
Sub Extra_Fields()
    Dim x, avArr, li As Long
    Dim avVals
    Dim rVals As Range, rResultCell As Range
    Dim i As Long
    
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    i = ThisWorkbook.Worksheets("Отчет").Cells(Rows.Count, 6).End(xlUp).Row
    On Error Resume Next
    Set rVals = Worksheets("Отчет").Range(Cells(12, 6), Cells(i, 6))
    Set rVals = Intersect(rVals, rVals.Parent.UsedRange)
    avVals = rVals.Value
    Set rResultCell = Worksheets("Test").Range(Cells(1, 1), Cells(1, 1))
    ReDim avArr(1 To Rows.Count, 1 To 1)
    With New Collection
        On Error Resume Next
        For Each x In avVals
            If Len(CStr(x)) Then
                .Add x, CStr(x)
                If Err = 0 Then
                    li = li + 1
                    avArr(li, 1) = x
                Else
                    Err.Clear
                End If
            End If
        Next
    End With
    If li Then rResultCell.Cells(1, 1).Resize(li).Value = avArr
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    
End Sub
Изменено: Limos - 18.08.2017 13:56:36
Поиск максимальной даты в диапазоне (VBA)
 
Добрый день, форумчане.

Подскажите как корректно прописать код для поиска максимальной даты в диапазоне с помощью кода VBA ?
Код
Sub Check()

Dim iMax As Long

iMax = WorksheetFunction.Max(Worksheets("Отчет").Range(Cells(27, 3), Cells(29, 3)))
MsgBox (iMax)

End Sub
Пытался способом выше, но ничего не выходит, в иксель есть еще функция МАКСА, но нигде не могу найти как ее применить в VBA.
Выдает ошибку 1004.

Возможно есть какой другой способ? И да, кстати, в диапазоне не только даты, но и текстовые значения.
Буду признателен за помощь.
Обновление сводной таблицы VBA
 
Цитата
Equio написал:
т.е. вот так всё равно ругается?Код ? 12345Dim S1 as StringS1=DataArea.AddressWorksheets("Свод").PivotTables("СводнаяТаблица3").ChangePivotCache ActiveWorkbook. _PivotCaches.Create(SourceType:=xlDatabase, SourceData:=S1, _Version:=xlPivotTableVersion14)
Аллилуя)) спасибо большое, вот как раз не хватало перевода гребаного диапазона Range в строку, он по идее вставлял не в том формате, хотя парадокс в том, что в ином файле у меня идентичный код работает и без этого.
Обновление сводной таблицы VBA
 
Цитата
Илья Демид написал:
А на какую он строку то хоть ругается?
Дебагом ругается на : остальное нормально дебажится
Код
            Worksheets("Свод").PivotTables("СводнаяТаблица3").ChangePivotCache ActiveWorkbook. _
            PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataArea, _
            Version:=xlPivotTableVersion14) ' обновление источника сводной таблицы
Обновление сводной таблицы VBA
 
Цитата
Equio написал:
SourceData там точно типа Range должно быть? Попробуйте String туда вставить.
Когда меняю на string - пишет compile error object required

И там кстати,я смотрел на другом примере, в SourceData должно быть по типу "Лист1!R1C1:R10C5"
Может мой Range как диапазон надо преобразовать в текст, чтоб вставился в свойства сводной как текст?
Кто подскажет.... как это сделать
Изменено: Limos - 12.07.2017 17:31:48
Обновление сводной таблицы VBA
 
Цитата
Equio написал:
Activeworkbook на Thisworkbook заменить не пробовали?
Не помогло....
Обновление сводной таблицы VBA
 
Цитата
Equio написал:
Лист не защищён?
Нет(
Обновление сводной таблицы VBA
 
Может есть код для обновления источника сводной, но сделанный как то по другому?
Обновление сводной таблицы VBA
 
да вот тоже думаю, но есть одно но, проверял - имена корректны.
и файл выслать не могу.
Обновление сводной таблицы VBA
 
Выделился нужный диапазон((( почему он тогда не передается на обновление сводной таблицы, и почему его нельзя меседж боксом просмотреть....
Обновление сводной таблицы VBA
 
Если указать, как указано ниже, выдает -  ошибку 13
Код
Dim sh As Worksheet, DataArea As Range
Dim lLastRowPT41 As Long, lLastRowPT42 As Long
 
For Each sh In ThisWorkbook.Worksheets
    If sh.Name Like "Реестр подключ*" Then ' перебор листов для поиска по условию
        Set DataArea = sh.Range("A1").CurrentRegion
        Exit For
    End If
Next sh
            MsgBox (DataArea)

Уже подумал, что именно в этом случае мне поиск не нужен, пытаюсь напрямую указать лист книги, выдает ту же ошибку, код ниже

Код
Dim DataArea As Range
 
Set DataArea = Worksheets("Реестр подключений").Range("A1").CurrentRegion

MsgBox (DataArea)

Что может быть не так?
Обновление сводной таблицы VBA
 
Проблема именно в диапазонах, причем в одном файле код работает, в этом файле нет(
Обновление сводной таблицы VBA
 
Может кто помочь?
Обновление сводной таблицы VBA
 
Вопрос стоит в обновлении источника в сводной таблице. Вопрос, что может неправильно туда проставляться?
Обновление сводной таблицы VBA
 
Все 3 значения совпадают
Изменено: Limos - 12.07.2017 13:55:04
Обновление сводной таблицы VBA
 
да проверено, считает на этом листе количество строк MsgBox, что по Свод, что по Реестру:
Код
Dim sh As Worksheet, DataArea As Range
Dim lLastRowPT41 As Long, lLastRowPT42 As Long
 
For Each sh In ThisWorkbook.Worksheets
    If sh.Name Like "Реестр подключ*" Then ' перебор листов для поиска по условию
        Set DataArea = sh.Range("A1").CurrentRegion
        Exit For
    End If
Next sh
            'Worksheets("Свод").PivotTables("СводнаяТаблица3").ChangePivotCache ActiveWorkbook. _
            'PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataArea, _
            'Version:=xlPivotTableVersion14) ' обновление источника сводной таблицы
             
            'Worksheets("Свод").PivotTables("СводнаяТаблица10").ChangePivotCache ActiveWorkbook. _
            'PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataArea, _
            'Version:=xlPivotTableVersion14) ' обновление источника сводной таблицы
 
lLastRowPT41 = Worksheets("Свод").Cells(Rows.Count, 1).End(xlUp).Row
lLastRowPT42 = Worksheets("Свод").Cells(Rows.Count, 2).End(xlUp).Row
lLastRowPT41 = Worksheets("Реестр подключений").Cells(Rows.Count, 1).End(xlUp).Row
lLastRowPT42 = Worksheets("Реестр подключений").Cells(Rows.Count, 2).End(xlUp).Row
 
MsgBox (lLastRowPT41 & "  " & lLastRowPT42)
Страницы: 1 2 3 4 След.
Наверх