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

Страницы: 1 2 След.
Фильтр таблиц с разных листов на третий по условию
 
Всем привет
Подскажите пожалуйста как можно из одного массива сделать другой по условию т.е. есть таблица которая находится в массиве (лист2) и таблица которая тоже находится в массиве (лист1) с условием в столбце 2 (статус) - нужно сформировать новый массив из листа2 при этом чтобы статус равен 1 т.е. итоговый результат находится в таблице (лист результат) который тоже в массиве.
Изменено: vikttur - 25.11.2021 13:56:42
Добавление уникальных данных в словарь с ключом VBA
 
Доброго времени. Подскажите пожалуйста только начинающему постигать тонкости VBA можно ли добавить в словарь уникальные значения (ключ) из разных источников.
Есть  "рабочая книга"  в ней лист "рабочий" и нужно из столбца С "код" добавить словарь и столбец D "имя" это элементы при этом если в столбец С содержит не код а ГР_ тогда открываем файл группы и добавляем код и имя как ключ и элемент соответственно

Во вложении пример и на листе "Что должно получиться" итоговая таблица которая должна быть записана в самом макросе
Скопировать данные конкретных столбцов из одной таблицы в другую
 
JayBhagavan почему то не работает И (and) при таком условии - выбирает только первое значение
К примеру в строке:
Код
If Not arrData(i, CriteriaColumn) Like "Калу*" And "Иж*"
все равно итогом выводит все значения кроме Калуга

Пробовал без Like и через переменные все равно не работает
Добавление строк в конце таблицы с комментарием VBA
 
МатросНаЗебре спасибо большое, но можете пожалуйста немного прокомментировать макрос чтобы можно было менять сцепку по которой сравниваются таблицы и столбец где нужно записать комментарий
Добавление строк в конце таблицы с комментарием VBA
 
Доброго времени, подскажите пожалуйста можно ли как то автоматически добавлять строки из одной таблицы (лист Старая) на лист (новая) по условию что их не было в листе новая - как должно быть привел на листе 1(новая)

Заранее благодарю
Скопировать данные конкретных столбцов из одной таблицы в другую
 
New, JayBhagavan. Aiden_ko можете пожалуйста подсказать как поставить фильтр для условий чтобы к примеру регион выбирал только в том случае если к примеру  столбец created_date(где год) написан был равен нынешнему году(переменная величина), и время с 10.00 до 18.00?  
Добавление строки по условию в таблицу c помощью VBA
 
Доброго времени. Подскажите пожалуйста можно ли доработать макрос чтобы если при сравнении нет в одной таблицы переносил всю строку с ее данными в новую в той же последовательности(очередности) что и была с комментарием в соседнем столбце "позиция удалена"

Исходные данные - есть в книги (листа) старые данные и новые данные - макрос по сцепке проверяет данные и при нахождении расхождении записывает комментарий, но что ли как обратно его скорректировать (запустить) на проверку не пойму
Код
Sub mrshkei()


Dim sh As Worksheet, sh2 As Worksheet, arr, arr2, arr3
Dim i As Long, n As Long, k As Long, lr As Long, lr2 As Long
   
    Set sh = Worksheets("Íîâàÿ_ïàðòèÿ"):
    Set sh2 = Worksheets("Ñòàðàÿ_ïàðòèÿ")
   
    lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
    lr2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
   
    arr = sh.Range("A1:J" & lr)
    arr2 = sh2.Range("A1:I" & lr2)
        ReDim arr3(1 To UBound(arr), 1 To 2)
 
        For i = LBound(arr) + 1 To UBound(arr)
        k = 0
        For n = LBound(arr2) + 1 To UBound(arr2)
        If arr(i, 1) = arr2(n, 1) Then
        k = k + 1
        If arr(i, 7) - arr2(n, 7) <> 0 Then
            arr3(i - 1, 1) = "èçìåíåíèå îáúåìà"
            arr3(i - 1, 2) = arr2(i - 1, 7)
            Exit For
        Else
            arr3(i - 1, 1) = Empty
            arr3(i - 1, 2) = Empty
        End If
        End If
        If k = 0 Then
            arr3(i - 1, 1) = "äà"
            arr3(i - 1, 2) = "íîâàÿ ïîçèöèÿ"
        End If
    Next n
Next i
 
sh.Range("I2").Resize(UBound(arr3), 2) = arr3


End Sub
Скопировать данные конкретных столбцов из одной таблицы в другую
 
New спасибо большое!
Динамические массивы и словари для новичка
 
Доброго времени суток!

Подскажите пожалуйста можно ли сформулировать шаблонный алгоритм (код) для задачи:

Есть книга1(источник данных) и книга 2(куда будем переносить данные).
Цель - перенести некоторое количество N столбцов и M строк из книги1 в книгу2 по разным условиям

к примеру - только столбцы 1,4,10,6,78,210 при условии что в столбце 110 содержится фильтр не равно "ПП"
или - по сцепке (столбец1,2,5,7) за 40 и 42 неделю

Как я понял нужно загрузить данные в динамический массив с условием, потом создать словарь с ключом и по нему выгрузить в книгу 2, но VBA только начинаю постепенно осваивать, поэтому не совсем пойму как это записать.

Или есть более экономичный способ так как в книге1 от 500 тыс строк
Скопировать данные конкретных столбцов из одной таблицы в другую
 
New огромное спасибо!!! то что нужно, только убрал MsgBoxы
Изменено: vikttur - 17.09.2021 09:44:34
Скопировать данные конкретных столбцов из одной таблицы в другую
 
Доброго времени планетяни!

Подскажите пожалуйста можно ли доработать макрос чтобы он копировал не все столбцы а конкретные. которые заданы  на листе Result
В источнике более 200 тыс. строк
Код
Sub Макрос3()
    Dim arrData(), arrResult(), fRegion
    Dim CriteriaColumn As Integer
    Dim CurrentRow As Long, i As Long, j As Long
    
    fRegion = "Калининград"
    CriteriaColumn = 5
    
    arrData = Sheets("Data").Cells(2, 1).CurrentRegion.Value
    ReDim arrResult(1 To UBound(arrData, 1), 1 To UBound(arrData, 2))
    
    i = 1
    CurrentRow = 1
    For j = 1 To UBound(arrData, 2)
        arrResult(CurrentRow, j) = arrData(i, j)
    Next j
    CurrentRow = CurrentRow + 1
    
    For i = 2 To UBound(arrData, 1)
        If arrData(i, CriteriaColumn) = fRegion Then
            For j = 1 To UBound(arrData, 2)
                arrResult(CurrentRow, j) = arrData(i, j)
            Next j
            CurrentRow = CurrentRow + 1
        End If
    Next i
    
    With Sheets("result")
        .Cells.Clear
        .Range(.Cells(1, 1), .Cells(CurrentRow, UBound(arrData, 2))).Value = arrResult
    End With
  
End Sub

И как можно его же запускать если это разные книги, а не листы?

Указание активной книги/листа через команду  Workbook("Имя книги").Activate не работает
Изменено: vikttur - 16.09.2021 21:04:22
Сравнение стоимости товаров в рамках одного периода и категории
 
Доброго времени суток.

Подскажите пожалуйста как можно решить вопрос сравнения 2 значений и разных таблиц через vba или где можно посмотреть/почитать. Макросы только начинаю изучать и буду рад любому пинку/подсказке.

Смысл такой - есть 2 таблицы за разные периоды. необходимо их сравнить по Колонке - Количество и рядом указать причину изменения если такая есть

Файл во вложении где процедуру идею сформулировал формулами.

Заранее благодарю
Изменено: vikttur - 15.09.2021 10:23:32
Перенос данных из одной таблицы в другую по названию столбцов
 
Загрузил файл при + скрин ошибки если запускаешь макрос с новыми листами.

Смысл такой что есть - таблицы источник (множество столбцов) и таблица Получатель куда копируются данные с N столбцами.
Задачи автоматически обновлять данные  в таблицу Получатель из таблицы Источник по столбцам шапки не зависимо в каком месте они находятся на листе.

Т.е. сейчас ошибка при добавлении листа и если шапка таблицы Источник находится не на первой строке
Перенос данных из одной таблицы в другую по названию столбцов
 
Доброго времени суток. Подскажите пожалуйста как можно оптимизировать макрос? Изучаю vba недавно и не знаю всех тонкостей.
Сейчас макрос работает корректно и все обновляет, но если добавить листы то происходит ошибка. Как я понял нужно убрать цикличность и как то указать лист источник и лист куда вставляем (с чем сравниваем)
Код
Sub CopyData()
              
                
        Dim wbkX As Workbook                        'книга
        Dim shtSv As Worksheet, shtX As Worksheet   'листы
        Dim rngSv As Range, rngX As Range           'диапазоны
  
        Dim NrowSv As Long, NrowX As Long           'число строк
        Dim NcolSv As Integer, NcolX As Integer     'число столбцов

        Dim TitleSv, TitleX         '"будущие" массивы заголовков
        Dim i As Long, j As Long    'счетчики циклов

        Dim rngCopy As Range, rngPaste As Range     'что копировать и куда вставить


            Set wbkX = ThisWorkbook
  
  '= 1 == для листа "лист1" ======================
  Set shtSv = wbkX.Worksheets("Лист1")
  Set rngSv = shtSv.Range("A1").CurrentRegion
  NrowSv = rngSv.Rows.Count
  NcolSv = rngSv.Columns.Count
  TitleSv = rngSv.Rows(1)
  
  '= 2 == Цикл по всем листам, кроме "Лист1" ======================
  For Each shtX In wbkX.Worksheets
    Select Case shtX.Name
      Case "Лист1"   'для листа "реестр" - ничего не делаем!
      Case Else       '-- 3 -- для прочих листов ---------
        Set rngX = shtX.Range("A1").CurrentRegion
        NrowX = rngX.Rows.Count
        NcolX = rngX.Columns.Count
        TitleX = rngX.Rows(1)
        '-- 4 -- поиск совпадающих заголовков ---------
        For i = 1 To NcolSv
          For j = 1 To NcolX
            '-- 5 -- если заголовки совпали, то ...
            If TitleSv(1, i) = TitleX(1, j) Then
  '- 6 - что копировать ----
  Set rngCopy = Range(rngX.Cells(2, j), rngX.Cells(NrowX, j))
  '- 7 - куда вставить  ----
  Set rngPaste = rngSv.Cells(1 + 1, i).Resize(NrowX - 1, 1)
  '- 8 - копирование через буфер обмена -----
     rngCopy.Copy
     rngPaste.PasteSpecial
             End If
          Next j
        Next i
        '-- 9 -- определить новые размеры диапазона на листе "Лист1"  ---
        Set rngSv = shtSv.Range("A1").CurrentRegion
        NrowSv = rngSv.Rows.Count
    End Select
  Next shtX   '== конец цикла по листам ========================================
                
End Sub
Изменено: vikttur - 14.09.2021 13:05:01
Перенос данных из одной книги в другую с помощью VBA, Перенос определенных данных по совпадению имени заголовка с условими
 
Цитата
vikttur написал:
Комплексно - в разделе платных заказов. Здесь же - тема по конкретному вопросу
Принял, спасибо большое!
Перенос данных из одной книги в другую с помощью VBA, Перенос определенных данных по совпадению имени заголовка с условими
 
Здравствуйте, помогите пожалуйста подкорректировать макрос для переноса данных из одной книги в другую.

Есть файл Источник  "Исходные данные.xlsx" из которого необходимо регулярно обновлять данные в файл "Сохраненые файлы.xlsm"
При этом есть условия выбора:
1. Выбирать только те строки где есть значения, если пусто то пропускаем всю строку во всех столбцах
2.  Чтобы обновление работало если в файле Исходные данные.xlsx заголовок начинается не с первой строки а в файле Сохранённые файлы.xlsm есть другие листы
3. При запуске файл "Сохраненые файлы.xlsm"  должен обновляться заново
4. Необходимо добавить 2 столба в файл "Сохраненые файлы.xlsm" с разницей чисел столбца "Шапка 13"-  - которые вновь обновились от такого же столбца но в другой книге

Подскажите пожалуйста как можно это скорректировать или направьте пожалуйста на источник где можно почитать/посмотреть похожие алгоритмы

Сейчас работает только если в книгах по одному листу и начала данных с ячейки А1:
Код
Sub CopyData()
        Dim wrkSv As Workbook
        
        'Открываем книгу источник откуда будем копировать данные
        Set wrkSv = Workbooks.Open("C:\Users\sega4\OneDrive\Рабочий стол\Первый проект\Исходные данные.xlsx")
                   
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Workbooks("Исходные данные.xlsx").Activate
    Sheets("Лист1").Select
    Sheets("Лист1").Copy After:=Workbooks("Сохраненые файлы.xlsm").Sheets(1)
           
    'Закрываем книгу откуда мы скопировали данные
    Workbooks("Исходные данные.xlsx").Close
        
                
        Dim wbkX As Workbook                        'книга
        Dim shtSv As Worksheet, shtX As Worksheet   'листы
        Dim rngSv As Range, rngX As Range           'диапазоны
  
        Dim NrowSv As Long, NrowX As Long           'число строк
        Dim NcolSv As Integer, NcolX As Integer     'число столбцов

        Dim TitleSv, TitleX         '"будущие" массивы заголовков
        Dim i As Long, j As Long    'счетчики циклов

        Dim rngCopy As Range, rngPaste As Range     'что копировать и куда вставить


            Set wbkX = ThisWorkbook
  
  '= 1 == для листа "реестр" ======================
  Set shtSv = wbkX.Worksheets("реестр")
  Set rngSv = shtSv.Range("A1").CurrentRegion
  NrowSv = rngSv.Rows.Count
  NcolSv = rngSv.Columns.Count
  TitleSv = rngSv.Rows(1)
  
  '= 2 == Цикл по всем листам, кроме "Лист1" ======================
  For Each shtX In wbkX.Worksheets
    Select Case shtX.Name
      Case "реестр"   'для листа "реестр" - ничего не делаем!
      Case Else       '-- 3 -- для прочих листов ---------
        Set rngX = shtX.Range("A1").CurrentRegion
        NrowX = rngX.Rows.Count
        NcolX = rngX.Columns.Count
        TitleX = rngX.Rows(1)
        '-- 4 -- поиск совпадающих заголовков ---------
        For i = 1 To NcolSv
          For j = 1 To NcolX
            '-- 5 -- если заголовки совпали, то ...
            If TitleSv(1, i) = TitleX(1, j) Then
  '- 6 - что копировать ----
  Set rngCopy = Range(rngX.Cells(2, j), rngX.Cells(NrowX, j))
  '- 7 - куда вставить  ----
  Set rngPaste = rngSv.Cells(1 + 1, i).Resize(NrowX - 1, 1)
  '- 8 - копирование через буфер обмена -----
     rngCopy.Copy
     rngPaste.PasteSpecial
             End If
          Next j
        Next i
        '-- 9 -- определить новые размеры диапазона на листе "Лист1"  ---
        Set rngSv = shtSv.Range("A1").CurrentRegion
        NrowSv = rngSv.Rows.Count
    End Select
  Next shtX   '== конец цикла по листам ========================================
              
    'Удаление листа
    Worksheets("Лист1").Delete
         
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
   
End Sub

Заранее благодарю
Отправка письма макросом с прикрепленным файлом нескольким адресатам, Добавить в рабочий код возможность указания нескольких получателей
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
сцепляйте при помощи Chr(10) или Chr(13).
Спасибо большое, так и сделаю, осталось дату меняющую найти
Отправка письма макросом с прикрепленным файлом нескольким адресатам, Добавить в рабочий код возможность указания нескольких получателей
 
The_Prist, Доброго времени. Подскажите пожалуйста а можно в данном примере (макросе) написать свои текст письма (sBody) на разных строках и с простой формулой даты -
Например:______________________________
Добрый день.
Отчет за 36 неделю во вложении.
Следующее обновление 25.01.2022
___________________________________

Или лучше завести новую книгу и от туда подтягивать данные?

Заранее благодарю
Соединение множества значений через запятую
 
Подскажите пожалуйста существует ли альтернатива формуле сцепить и символу &?
Задача - есть столбец1 в котором много заполненных строк и их необходимо переформировать с строку через запятую.
Во вложении пример где данная задача решается с помощью формулы СЦЕПИТЬ, но это долго и можно ли как то оптимизировать или альтернативно сделать?

Спасибо
Условное форматирование ячеек по двум значениям в ячейках с разным типом данных
 
Здравствуйте, может кто сталкивался (в интернете и на форуме не нашел) как можно подсветить ячейки в зависимости от типа деятельности и времени т.е. если эти два параметра совпадают один цвет, если есть другие параметры то уже другой цвет. В файле то что смог сделать, форматирование только по времени. Спасибо
Вычисление уровня подготовки по нормативам
 
Здравствуйте, подскажите пожалуйста как получить формулу в столбце I чтобы автоматически проставлял исходя из данных листа Нормативы.
Если тема где то встречалась можете пожалуйста дать ссылку
Распределение товара по магазинам согласно наличию на складе
 
Цитата
MCH написал:
Для получения нужной (итоговой) таблицы может помочь "редизайнер" из приемов:  https://www.planetaexcel.ru/techniques/8/55/ или отсюда:  http://www.excelworld.ru/forum/3-15667-1






Сообщение  
E-mail  


вот спасибо большое, то что искал так как очень часто нужно переводить таблицу, только не пойму что значит сроки / столбцы с подписями сверху/слева
Распределение товара по магазинам согласно наличию на складе
 
В любом случае большое спасибо Мартын и Wiss
Распределение товара по магазинам согласно наличию на складе
 
смысл в том что такой шаблон прогружается логистам и далее идёт в работу, поэтому форму нельзя менять
Распределение товара по магазинам согласно наличию на складе
 
Исправил файл + на листе "необходимое количество" мой вариант решения но как из него сделать таблицу вида как на листе "Итоговая таблица" не могу придумать
Распределение товара по магазинам согласно наличию на складе
 
Я думал может можно как через транспортную задачу решить или поиск решения либо чудо формулы какие-то но чёт не докумекал и все в ручную считаю
Распределение товара по магазинам согласно наличию на складе
 
Прошу прощения за опечатки в названиях магазин 1 и магазин1  в итоге это одно и тоже. А логика такая что магазин1 хочет разное количество в зависимости от тариф 1 2 3 4 а далее все как описали
Распределение товара по магазинам согласно наличию на складе
 
Здравствуйте, подскажите, пожалуйста, может кто сталкивался с ситуацией когда есть количество товара на складе и его надо оптимально переместить по магазинам. В файле образец где первые 2 листа данные а третий то что долг получится в итоге. Спасибо за помощь  
Изменено: PMO87 - 19.06.2019 15:39:59
К каждому значению списка 2 приставить значение списка 1
 
Здравствуйте, помогите решить задачу с помощью формулы либо инструментов Excel. Суть вопроса - есть список 1 (1,2,3,4,5 ...) и список 2 (A, B, C, D, E....) как автоматически к каждому значению списка 2 приставить значение списка 1 чтобы было 1A 1B 1C 1E 1D 2A 2B ...
Вроде логика простая, но не могу до думать. На практике списки по 100 и более строк.  
Перемещение товара с одного магазина на другой
 
Подскажите, пожалуйста, а какой алгоритм действий с Power Query?
Страницы: 1 2 След.
Наверх