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

Страницы: 1
Добавить имя исходного листа при копировании данных макросом, В работающий макрос по копированию листов из других книг в отдельный файл, добавить код для отображения наименования исходных файлов
 
Уважаемые специалисты, подскажите пожалуйста советом.
Есть макрос, который копирует первые листы всех файлов из выбранной папки в отельную книгу.  Нужно чтобы отображалась информация с наименованием исходных листов, откуда был скопирован лист. Не нашёл лучшего, решения, кроме как добавить второе With. Но возможно, есть более красивое решение.
Код
Sub DataCopy()
Dim foldername As String
Dim Source As Workbook
Dim Target As Workbook
Dim counter As Long
Dim strFile As String
Dim fd As FileDialog
Dim i As Long, m As Long, n As Long

Set Target = ActiveWorkbook
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
    .Title = "Выберите папку с отчётами для сохранения."
    If .Show = -1 Then
        strFolder = .SelectedItems(1) & "\"
    Else
        MsgBox "Вы не выбрали папку."
        Exit Sub
    End If
End With
strFile = Dir$(strFolder & "*.xlsx")
counter = 0
While strFile <> ""
    Set Source = Workbooks.Open(strFolder & strFile)
    With Target.Sheets(1).Range("A1")
        i = .CurrentRegion.Rows.Count
        For m = 1 To Source.Sheets(1).Range("A4").CurrentRegion.Rows.Count - 1
            For n = 0 To Source.Sheets(1).Range("A4").CurrentRegion.Columns.Count - 1
                .Offset(i, n) = Source.Sheets(1).Range("A4").Offset(m, n)
            Next n
            i = i + 1
        Next m
    End With
    counter = counter + 1
    Source.Close xlDoNotSaveChanges
    strFile = Dir$()
Wend
MsgBox ("Завершено и обработано " & counter & " файлов")
End Sub
Изменено: Юрий М - 30.05.2022 12:51:48
Выделить диапазон с конкретной строки до последней внутри таблицы VBA
 
Коллеги, добрый вечер. Искал на форуме, но не нашел такой казалось бы простой макрос...
Есть обычная "умная" таблица, в ней нужно выделить диапазон начиная со второй по последнюю строку (не обращая внимания заполнены они или нет)
Подскажите пожалуйста, кто знает. Пример,  прилагаю.

 
Указание источника для сводной таблицы макросом
 
С Новым Годом ))
Подскажите найти ошибку в коде. Создаю макросом сводную таблицу. Но в источник данных попадает лишние данные (первая строка на листе) . Пробовал менять обращение - на обращение к динамической таблице, тогда выдает ошибку в другом месте. Что нужно указать вместо - "Range("a3").CurrentRegion", чтобы обращение было только к динамической таблице "БД". Помогите пожалуйста.
Код
Sub Создание_сводной_итоги_сделка()

Dim rngData As Range, PTCache As PivotCache, PT As PivotTable
Call Удалить_другие_листы

Set rngData = ThisWorkbook.Worksheets("РМ администратора").Range("a3").CurrentRegion
Set PTCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, rngData.Address)
Set PT = PTCache.CreatePivotTable(Worksheets.Add.[a4], "Итоги")
ActiveSheet.Name = "Текущие итоги"

With ActiveSheet.PivotTables("Итоги").PivotFields("Данные способа обращения")
        .Orientation = xlRowField.....
End Sub
Сохранение данных вводимых в таблицу на других листах с разбивкой по столбцам, Создание базы данных с возможностью изымать значения.
 
Товарищи специалисты, помогите пожалуйста в решении одной задачи. Любому совету буду благодарен.
Существует клиентская база с тремя аналитиками - тип клиента, имя клиента и телефон клиента. (три столбца). Администратор вводит значения в эту таблицу.
Типы клиента предустановлены, их можно сделать выпадающим списком. Но имя клиента и телефон будут добавляться новые.
Необходимо :
                       1. Архивировать это базу на другом листе.
                       2. Чтобы была возможность быстро увидеть есть этот клиент уже в базе + если есть подтянуть его номер телефона.  
Динамическое расширение диапазона с сохранением активной ячейки, исправить активные ячейки в макросе
 
Всем добрый вечер. Подскажите, в какую сторону двигаться или реально ли это вообще. Есть программка для расчета стоимости работ. Я представил ее как две таблицы - работа и материал. К обоим записал макрос на добавление новых позиции с сохранением уже существующих. Добавление подразумевалось сверху вниз. т.е. под уже созданной строкой с наименованием работ или материала, вставляю строку копирую вышележащую как значение и макрос завершается. Но при добавлении строк в таблице работа, диапазон для добавления материала спускается ниже и копирует не нужную строку. Как возможно исправить или доработать этот макрос.  
Изменено: Web-Zahar - 05.04.2018 13:38:28
Проверка: включает ли интервал времени нужную дату.
 
Добрый вечер. До этого дня, думал, что я мало, но знаю программу Excel. Подскажите самый простой и быстрый способ определить, входит ли дата например 01.04.2018 в диапазон от 02.20.2018 до 30.05.2018. Спасибо
В макросе конкретную ячейку заменить ссылкой на активную.
 
Здравствуйте. Прошу помощи, так пока еще не изучил язык VBА, а совет спеца очень нужен.

Есть макрос который копирует строку и вставляет ее ниже в определенном кол-ве .
Т.е. есть строка с данными по товару, в ячейrе F2 стоит кол-во этого товара в заказе, например "3", ниже строкой идут другие товары с другим кол-вом. Макрос начинает делать дубликаты по всем строкам начиная с верхней ячейки по кол-ву указанному в столбце F.
После того как макрос выполнен, кол-во товара не обнуляется. Т.е при добавлении новых позиций и использовании макроса - уже созданные ранее дубликаты будут повторно сгенерированы, что уже не нужно.

Вот сам макрос:
Код
Sub Duplicate_Rows()
    Dim cell As Range
 
    Set cell = Range("F2")      'первая ячейка в столбце с кол-вом билетов
    Do While Not IsEmpty(cell)
        If cell > 1 Then
            cell.Offset(1, 0).Resize(cell.Value - 1, 1).EntireRow.Insert    'вставляем N пустых строк
            cell.Resize(cell.Value, 1).EntireRow.FillDown                   'заполняем вниз из первых ячеек
        End If
        Set cell = cell.Offset(cell.Value, 0)
        
    Loop
End Sub
Страницы: 1
Наверх