Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование, с листа на лист (по нескольким условиям) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование, с листа на лист (по нескольким условиям) (Макросы/Sub)
Копирование, с листа на лист (по нескольким условиям)
Max16 Дата: Среда, 01.06.2016, 16:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Добрый день уважаемые форумчане!
Вопрос Вам мой покажется возможно глупым, но если кто либо отзовется и поможет, буду благодарен.

Суть проблемы следующая:
Есть массив информации на одном из листов книги (Area1), этот самый массив нужно преобразовать в итоговую таблицу, по заданным критериям (собака, кот, попугай), вид которой представлен на (Лист4). Файл прикладываю

Проблему формирования итоговой таблицы я решил формулами массива! Но проблема в том, что остается много пустых строк (которые конечно можно скрыть (написал макрос) - но все же это не удобно.
А решить свою проблему макросом я пока не смог, мои начинания на этом поприще пока не позволяют мне это сделать.

Суть макроса, как мне представляется: создать итоговую таблицу, как у меня (в самом макросе задать переменные: собака, кот, попугай, или вынести их на отдельный лист), и по этим переменным искать значения в исходном листе. После нахождения одной из переменных (f.e. собака) - макрос находил бы последнюю строку, добавлял следующей критерий (переменную), и по нему заполнял дальше массив. В общем нужен вид, как в прикрепленном файле. Думаю в нем будет понятнее

P.S. я возможно несколько наглею, прося о такой помощи. Поэтому не судите строго
К сообщению приложен файл: 2149532.xlsm (28.5 Kb)


123
 
Ответить
СообщениеДобрый день уважаемые форумчане!
Вопрос Вам мой покажется возможно глупым, но если кто либо отзовется и поможет, буду благодарен.

Суть проблемы следующая:
Есть массив информации на одном из листов книги (Area1), этот самый массив нужно преобразовать в итоговую таблицу, по заданным критериям (собака, кот, попугай), вид которой представлен на (Лист4). Файл прикладываю

Проблему формирования итоговой таблицы я решил формулами массива! Но проблема в том, что остается много пустых строк (которые конечно можно скрыть (написал макрос) - но все же это не удобно.
А решить свою проблему макросом я пока не смог, мои начинания на этом поприще пока не позволяют мне это сделать.

Суть макроса, как мне представляется: создать итоговую таблицу, как у меня (в самом макросе задать переменные: собака, кот, попугай, или вынести их на отдельный лист), и по этим переменным искать значения в исходном листе. После нахождения одной из переменных (f.e. собака) - макрос находил бы последнюю строку, добавлял следующей критерий (переменную), и по нему заполнял дальше массив. В общем нужен вид, как в прикрепленном файле. Думаю в нем будет понятнее

P.S. я возможно несколько наглею, прося о такой помощи. Поэтому не судите строго

Автор - Max16
Дата добавления - 01.06.2016 в 16:18
wild_pig Дата: Среда, 01.06.2016, 16:47 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Тут просто перенесли данные с одного листа на другой в соответствии с животинами. Это при условии совпадения столбцов с датами.
[vba]
Код
Sub uuu()
    'объявляем переменные
    Dim a() 'динамический массив (пока что безразмерный)
    Dim i&, j&, rw& 'длинные целые числа (счётчики)
'-------------------
    'присваиваем переменной значения диапазона с листа
    'массив сам примет нужные размеры
    a = Sheets("Area1").UsedRange.Value
    With Sheets("Лист4") 'ссылка на объект для упрощения синтаксиса
        'в пределах конструкции With ... End With, если будет нужно ссылаться на "лист4" пишем точку
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row 'цикл от 3 до номера последней непустой ячейки во 2-м столбце
            If .Cells(rw, 2) <> "" Then 'если значение ячейки не пусто то
                For i = 1 To UBound(a) 'цикл по массиву от 1 до наибольшего индекса 1-го измерения массива (строки)
                    'сравниваем значение из массива со значением во 2-м столбце, ищем животное
                    If a(i, 1) = .Cells(rw, 2) Then 'если значение элемента массива равно значению ячейки то
                        rw = rw + 1 'увеличиваем счётчик строк
                        For j = 1 To UBound(a, 2) 'цикл от 1 до наибольшего индекса 2-го измерения массива (столбцы)
                            'вносим значения в соответствующие ячейки из массива на лист
                            .Cells(rw, j + 1) = a(i, j) 'j + 1 потому что в массиве <=15 в 3-м столбце а на листе 4 в 4-м
                        Next
                    End If
                Next
            End If
        Next
    End With
    MsgBox "Фсё гуд!" 'сообщеньице
End Sub
[/vba]


Сообщение отредактировал wild_pig - Четверг, 02.06.2016, 12:16
 
Ответить
СообщениеТут просто перенесли данные с одного листа на другой в соответствии с животинами. Это при условии совпадения столбцов с датами.
[vba]
Код
Sub uuu()
    'объявляем переменные
    Dim a() 'динамический массив (пока что безразмерный)
    Dim i&, j&, rw& 'длинные целые числа (счётчики)
'-------------------
    'присваиваем переменной значения диапазона с листа
    'массив сам примет нужные размеры
    a = Sheets("Area1").UsedRange.Value
    With Sheets("Лист4") 'ссылка на объект для упрощения синтаксиса
        'в пределах конструкции With ... End With, если будет нужно ссылаться на "лист4" пишем точку
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row 'цикл от 3 до номера последней непустой ячейки во 2-м столбце
            If .Cells(rw, 2) <> "" Then 'если значение ячейки не пусто то
                For i = 1 To UBound(a) 'цикл по массиву от 1 до наибольшего индекса 1-го измерения массива (строки)
                    'сравниваем значение из массива со значением во 2-м столбце, ищем животное
                    If a(i, 1) = .Cells(rw, 2) Then 'если значение элемента массива равно значению ячейки то
                        rw = rw + 1 'увеличиваем счётчик строк
                        For j = 1 To UBound(a, 2) 'цикл от 1 до наибольшего индекса 2-го измерения массива (столбцы)
                            'вносим значения в соответствующие ячейки из массива на лист
                            .Cells(rw, j + 1) = a(i, j) 'j + 1 потому что в массиве <=15 в 3-м столбце а на листе 4 в 4-м
                        Next
                    End If
                Next
            End If
        Next
    End With
    MsgBox "Фсё гуд!" 'сообщеньице
End Sub
[/vba]

Автор - wild_pig
Дата добавления - 01.06.2016 в 16:47
Max16 Дата: Четверг, 02.06.2016, 10:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Уважаемый wild_pig, спасибо за помощь.

Но я к своему сожалению не до конца смог разобраться с Вашим макросом.
Я понял следующее:

[vba]
Код
Sub uuu()
'задаем переменные массиву и значениям: i,j
    Dim a()                 
    Dim i&, j&
'---------------
'задаем переменную a как массив (лист "Area1")   
  a = Sheets("Area1").UsedRange.Value   
  
  'Задаем массив (с 3 строки 2 столбца до конца)для "Листа4"              
    With Sheets("Лист4")
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row    

'Если в заданном массиве ячейка не пуста, то      
If .Cells(rw, 2) <> "" Then     
       
'Находим совпадение этой непустой ячейки на "Листе4" (с ячейкой на листе "Area1")       
                For i = 1 To UBound(a)                   
                    If a(i, 1) = .Cells(rw, 2) Then

'Далее. Строку принимаем равной (последняя строка +1)                    
                      rw = rw + 1                  
'Вот тут я не совсем понимаю!!! Мы опять задаем массив для "Area1" для поиска 2-го значения?                      
                         For j = 1 To UBound(a, 2)       
'Почему мы в качестве столбца задаем данные по строке (j)?              
                            .Cells(rw, j + 1) = a(i, j)                     
                        Next
                    End If
                Next
            End If
        Next
    End With
    MsgBox "Фсё гуд!"
[/vba]

Если Вы мне укажите, правильно ли я его (макрос) понимаю, буду признателен!
Ну и простите мою неграмотность в VBA - но насколько я знал, UBound считает предел по строке, но как я понимаю, здесь эта функция считает столбцы?


123

Сообщение отредактировал Max16 - Четверг, 02.06.2016, 11:02
 
Ответить
СообщениеУважаемый wild_pig, спасибо за помощь.

Но я к своему сожалению не до конца смог разобраться с Вашим макросом.
Я понял следующее:

[vba]
Код
Sub uuu()
'задаем переменные массиву и значениям: i,j
    Dim a()                 
    Dim i&, j&
'---------------
'задаем переменную a как массив (лист "Area1")   
  a = Sheets("Area1").UsedRange.Value   
  
  'Задаем массив (с 3 строки 2 столбца до конца)для "Листа4"              
    With Sheets("Лист4")
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row    

'Если в заданном массиве ячейка не пуста, то      
If .Cells(rw, 2) <> "" Then     
       
'Находим совпадение этой непустой ячейки на "Листе4" (с ячейкой на листе "Area1")       
                For i = 1 To UBound(a)                   
                    If a(i, 1) = .Cells(rw, 2) Then

'Далее. Строку принимаем равной (последняя строка +1)                    
                      rw = rw + 1                  
'Вот тут я не совсем понимаю!!! Мы опять задаем массив для "Area1" для поиска 2-го значения?                      
                         For j = 1 To UBound(a, 2)       
'Почему мы в качестве столбца задаем данные по строке (j)?              
                            .Cells(rw, j + 1) = a(i, j)                     
                        Next
                    End If
                Next
            End If
        Next
    End With
    MsgBox "Фсё гуд!"
[/vba]

Если Вы мне укажите, правильно ли я его (макрос) понимаю, буду признателен!
Ну и простите мою неграмотность в VBA - но насколько я знал, UBound считает предел по строке, но как я понимаю, здесь эта функция считает столбцы?

Автор - Max16
Дата добавления - 02.06.2016 в 10:45
wild_pig Дата: Четверг, 02.06.2016, 12:12 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Я понял следующее

Не совсем так )
Код выше поправил.
 
Ответить
Сообщение
Я понял следующее

Не совсем так )
Код выше поправил.

Автор - wild_pig
Дата добавления - 02.06.2016 в 12:12
Max16 Дата: Четверг, 02.06.2016, 12:58 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
wild_pig, Большое спасибо за помощь). Благодаря Вам - разобрался


123
 
Ответить
Сообщениеwild_pig, Большое спасибо за помощь). Благодаря Вам - разобрался

Автор - Max16
Дата добавления - 02.06.2016 в 12:58
Max16 Дата: Четверг, 02.06.2016, 18:50 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Уважаемый wild_pig, я уже замучил Вас... В любом случае Вы очень здорово меня выручили)
Но если Вам не трудно уделите немного внимания. Я доработал немного Ваш код, по аналогии, вынеся на отдельный лист критерии: кот, собака, попугай
Благодаря этому итоговая таблица формируется без пробелов, и удобно менять критерии. Но мне нужно вставить после каждого критерия (после всех котов, собак и попугаев), строку [итого:].
Я попытался ставить код в конце макроса, но он сначала формирует массив по заданным условиям и только потом ставит строку [итого]

Собственно вот подправленный макрос:
[vba]
Код
Sub uuu()
    Dim a()
    Dim b()
    Dim i&, j&, q&
'---------------
    a = Sheets("Area1").UsedRange.Value
    b = Sheets("Критерий").UsedRange.Value 'присвоил переменное значение диапазону Лист:"Критерий"
    
      With Sheets("Лист4")
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row
            If .Cells(rw, 2) <> "" Then
                For i = 1 To UBound(a)
                  For q = 1 To UBound(b) 'цикл по массиву от 1 до наибольшего индекса 1-го измерения массива
                
                    If a(i, 1) = b(q, 1) Then 'Если значение элекмента массива ("Area1") = значению элекмента массива ("Критерий"), то
                        rw = rw + 1
                         
                        For j = 1 To UBound(a, 2)
                            .Cells(rw, j + 1) = a(i, j)
                            .Cells(rw + 1, 2).FormulaR1C1 = "Итого:" 'Пытался добавить строку [итого], но он ее добавляет после того как сформирует массив по критериям
                             Next
                        End If
                    Next
                Next
            End If
        Next
        Dim lLastRow As Long
       End With
    MsgBox "Фсё гуд!"
End Sub
[/vba]

Пример также прикладываю
К сообщению приложен файл: 8284379.xlsm (25.0 Kb)


123
 
Ответить
СообщениеУважаемый wild_pig, я уже замучил Вас... В любом случае Вы очень здорово меня выручили)
Но если Вам не трудно уделите немного внимания. Я доработал немного Ваш код, по аналогии, вынеся на отдельный лист критерии: кот, собака, попугай
Благодаря этому итоговая таблица формируется без пробелов, и удобно менять критерии. Но мне нужно вставить после каждого критерия (после всех котов, собак и попугаев), строку [итого:].
Я попытался ставить код в конце макроса, но он сначала формирует массив по заданным условиям и только потом ставит строку [итого]

Собственно вот подправленный макрос:
[vba]
Код
Sub uuu()
    Dim a()
    Dim b()
    Dim i&, j&, q&
'---------------
    a = Sheets("Area1").UsedRange.Value
    b = Sheets("Критерий").UsedRange.Value 'присвоил переменное значение диапазону Лист:"Критерий"
    
      With Sheets("Лист4")
        For rw = 3 To .Cells(Rows.Count, 2).End(xlUp).Row
            If .Cells(rw, 2) <> "" Then
                For i = 1 To UBound(a)
                  For q = 1 To UBound(b) 'цикл по массиву от 1 до наибольшего индекса 1-го измерения массива
                
                    If a(i, 1) = b(q, 1) Then 'Если значение элекмента массива ("Area1") = значению элекмента массива ("Критерий"), то
                        rw = rw + 1
                         
                        For j = 1 To UBound(a, 2)
                            .Cells(rw, j + 1) = a(i, j)
                            .Cells(rw + 1, 2).FormulaR1C1 = "Итого:" 'Пытался добавить строку [итого], но он ее добавляет после того как сформирует массив по критериям
                             Next
                        End If
                    Next
                Next
            End If
        Next
        Dim lLastRow As Long
       End With
    MsgBox "Фсё гуд!"
End Sub
[/vba]

Пример также прикладываю

Автор - Max16
Дата добавления - 02.06.2016 в 18:50
wild_pig Дата: Суббота, 04.06.2016, 13:05 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Нарисуйте ручками итоговую таблицу с итогами
 
Ответить
СообщениеНарисуйте ручками итоговую таблицу с итогами

Автор - wild_pig
Дата добавления - 04.06.2016 в 13:05
Max16 Дата: Суббота, 04.06.2016, 15:03 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Уважаемый wild_pig, таблицу необходимого вида я прикладываю к сообщению:

Область данных,та же (Area1)
Критерии [кот, собака, попугай] вынесены на отдельный лист (Лист!Критерии)
На листе4 - итоговая таблица. В начале имеем только строку 2 остальное подгружается макросом: Собственно таблица заполняется в соответствии с порядком расположения критериев

P.S. Итоговый вид таблицы, на листе4. Для наглядности я выделили красным цветом: критерий, синей заливкой: итого
К сообщению приложен файл: 7990798.xlsm (23.1 Kb)


123

Сообщение отредактировал Max16 - Суббота, 04.06.2016, 15:04
 
Ответить
СообщениеУважаемый wild_pig, таблицу необходимого вида я прикладываю к сообщению:

Область данных,та же (Area1)
Критерии [кот, собака, попугай] вынесены на отдельный лист (Лист!Критерии)
На листе4 - итоговая таблица. В начале имеем только строку 2 остальное подгружается макросом: Собственно таблица заполняется в соответствии с порядком расположения критериев

P.S. Итоговый вид таблицы, на листе4. Для наглядности я выделили красным цветом: критерий, синей заливкой: итого

Автор - Max16
Дата добавления - 04.06.2016 в 15:03
RAN Дата: Суббота, 04.06.2016, 15:33 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Голимый макрорекордер
[vba]
Код
Sub Макрос1()
    ActiveSheet.UsedRange.Copy
    Sheets.Add(After:=Sheets(Sheets.Count)).Paste
    With ActiveSheet
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("A1"), _
                             SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .UsedRange.Offset(1)
        .Sort.Header = xlGuess
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
        .UsedRange.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3, 4, 5, 6, _
                    7, 8, 9, 10), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
        .UsedRange.ClearOutline
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеГолимый макрорекордер
[vba]
Код
Sub Макрос1()
    ActiveSheet.UsedRange.Copy
    Sheets.Add(After:=Sheets(Sheets.Count)).Paste
    With ActiveSheet
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("A1"), _
                             SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SetRange .UsedRange.Offset(1)
        .Sort.Header = xlGuess
        .Sort.MatchCase = False
        .Sort.Orientation = xlTopToBottom
        .Sort.SortMethod = xlPinYin
        .Sort.Apply
        .UsedRange.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3, 4, 5, 6, _
                    7, 8, 9, 10), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
        .UsedRange.ClearOutline
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 04.06.2016 в 15:33
wild_pig Дата: Суббота, 04.06.2016, 16:01 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
[vba]
Код
Sub uuu()
    Dim a(), b()
    Dim i&, ii&, rw&, x&, lr&
'-----------------------------
    'берём диапазоны в массивы
    a = Sheets("Area1").UsedRange.Value
    b = Sheets("Критерий").UsedRange.Value
    
    With Sheets("Лист4")
        rw = 3 'номер первой строки для выгрузки
        lr = .UsedRange.Rows.Count 'номер последней строки диапазона
        If lr > 3 Then 'если последняя строка больше первой  то
            .Rows(rw & ":" & lr).Delete 'удаляем строки с первой по последнюю
        End If
        For i = 2 To UBound(b) 'идём по массиву с критериями
            .Cells(rw, 2) = b(i, 1) 'вносим название группы
            .Cells(rw, 2).Font.Bold = True 'делаем жирным шрифт
            rw = rw + 1 'увеличиваем счётчик строк
            x = 1 'сбрасываем в начало счётчик позиций в группе
            For ii = 2 To UBound(a) 'проходим по массиву с данными
                'если значение не пусто и совпадает с названием группы то
                If a(ii, 1) <> "" And a(ii, 1) = b(i, 1) Then
                    .Cells(rw, 1) = x 'пишем номер позиции
                    For j = 1 To UBound(a, 2) 'вносим строку из массива на лист
                        .Cells(rw, j + 1) = a(ii, j)
                    Next
                    rw = rw + 1 'увеличиваем счётчик строк
                    x = x + 1 'увеличиваем счётчик позиций
                End If
            Next
            .Cells(rw, 2) = "Итого " & LCase(b(i, 1)) & ":" 'вносим итого
            .Cells(rw, 2).Font.Bold = True 'делаем шрифт жирным
            rw = rw + 1 'увеличиваем счётчик строк
        Next
    End With
    MsgBox "Готово!" 'радостная весть
End Sub
[/vba]
В Аrea1 нет значений больше 130 дней, зачем на Лист4 есть? Дальше будем думать что и как в итого считать?
 
Ответить
Сообщение[vba]
Код
Sub uuu()
    Dim a(), b()
    Dim i&, ii&, rw&, x&, lr&
'-----------------------------
    'берём диапазоны в массивы
    a = Sheets("Area1").UsedRange.Value
    b = Sheets("Критерий").UsedRange.Value
    
    With Sheets("Лист4")
        rw = 3 'номер первой строки для выгрузки
        lr = .UsedRange.Rows.Count 'номер последней строки диапазона
        If lr > 3 Then 'если последняя строка больше первой  то
            .Rows(rw & ":" & lr).Delete 'удаляем строки с первой по последнюю
        End If
        For i = 2 To UBound(b) 'идём по массиву с критериями
            .Cells(rw, 2) = b(i, 1) 'вносим название группы
            .Cells(rw, 2).Font.Bold = True 'делаем жирным шрифт
            rw = rw + 1 'увеличиваем счётчик строк
            x = 1 'сбрасываем в начало счётчик позиций в группе
            For ii = 2 To UBound(a) 'проходим по массиву с данными
                'если значение не пусто и совпадает с названием группы то
                If a(ii, 1) <> "" And a(ii, 1) = b(i, 1) Then
                    .Cells(rw, 1) = x 'пишем номер позиции
                    For j = 1 To UBound(a, 2) 'вносим строку из массива на лист
                        .Cells(rw, j + 1) = a(ii, j)
                    Next
                    rw = rw + 1 'увеличиваем счётчик строк
                    x = x + 1 'увеличиваем счётчик позиций
                End If
            Next
            .Cells(rw, 2) = "Итого " & LCase(b(i, 1)) & ":" 'вносим итого
            .Cells(rw, 2).Font.Bold = True 'делаем шрифт жирным
            rw = rw + 1 'увеличиваем счётчик строк
        Next
    End With
    MsgBox "Готово!" 'радостная весть
End Sub
[/vba]
В Аrea1 нет значений больше 130 дней, зачем на Лист4 есть? Дальше будем думать что и как в итого считать?

Автор - wild_pig
Дата добавления - 04.06.2016 в 16:01
Max16 Дата: Суббота, 04.06.2016, 16:58 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
wild_pig, большое спасибо)

Столбец >130 остался в примере из рабочего файла. В Area1 я просто не добавил дынные попадающие в данное условие.

По подсчету: если можно подсчитать в строке [итого] (на "листе4") сколько было котов, собак и попугаев. Это было бы очень здорово!

На всякий, прилепляю пример, как должен выглядеть подсчет
К сообщению приложен файл: 5988994.xlsm (22.0 Kb)


123
 
Ответить
Сообщениеwild_pig, большое спасибо)

Столбец >130 остался в примере из рабочего файла. В Area1 я просто не добавил дынные попадающие в данное условие.

По подсчету: если можно подсчитать в строке [итого] (на "листе4") сколько было котов, собак и попугаев. Это было бы очень здорово!

На всякий, прилепляю пример, как должен выглядеть подсчет

Автор - Max16
Дата добавления - 04.06.2016 в 16:58
wild_pig Дата: Суббота, 04.06.2016, 17:00 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Это было бы очень здорово!

Это был сарказм. Уже наверное сами.
 
Ответить
Сообщение
Это было бы очень здорово!

Это был сарказм. Уже наверное сами.

Автор - wild_pig
Дата добавления - 04.06.2016 в 17:00
Max16 Дата: Суббота, 04.06.2016, 17:28 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
wild_pig, да, пора и честь знать)))

Еще раз спасибо за помощь)


123
 
Ответить
Сообщениеwild_pig, да, пора и честь знать)))

Еще раз спасибо за помощь)

Автор - Max16
Дата добавления - 04.06.2016 в 17:28
wild_pig Дата: Суббота, 04.06.2016, 17:39 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Вы #9 сообщение смотрели?
 
Ответить
СообщениеВы #9 сообщение смотрели?

Автор - wild_pig
Дата добавления - 04.06.2016 в 17:39
Budkay91 Дата: Среда, 13.03.2019, 16:22 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте, Господа!
Нужна помощь в написании макроса для excel 2016, для переноса ячеек с одного листа на другой, если выполняется условие.
Я в этом деле совсем начинающий, начальство нагибает закончить файл по спецодежде, а парень который начинал его делать уволился. Буду признателен!!! Очень сильно!!! SOS!!!
Для примера скидываю файлик "пример", в нем на листе "сотрудники", условие, если в столбце "Е" ячейки <= СЕГОДНЯ, то данная ячейка подсвечивается, это я допер. Теперь мне нужно с помощью макроса, чтобы тот сотрудник который подсветился автоматически попадал на лист "экзамен", помогите мне пожалуйста для примера, а свой глобальный файл я догоню доработаю!!! Заранее всем благодарен.
К сообщению приложен файл: 9569606.xlsm (21.9 Kb)
 
Ответить
СообщениеЗдравствуйте, Господа!
Нужна помощь в написании макроса для excel 2016, для переноса ячеек с одного листа на другой, если выполняется условие.
Я в этом деле совсем начинающий, начальство нагибает закончить файл по спецодежде, а парень который начинал его делать уволился. Буду признателен!!! Очень сильно!!! SOS!!!
Для примера скидываю файлик "пример", в нем на листе "сотрудники", условие, если в столбце "Е" ячейки <= СЕГОДНЯ, то данная ячейка подсвечивается, это я допер. Теперь мне нужно с помощью макроса, чтобы тот сотрудник который подсветился автоматически попадал на лист "экзамен", помогите мне пожалуйста для примера, а свой глобальный файл я догоню доработаю!!! Заранее всем благодарен.

Автор - Budkay91
Дата добавления - 13.03.2019 в 16:22
_Boroda_ Дата: Среда, 13.03.2019, 16:29 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
- Прочитайте Правила форума
- Создайте свою тему согласно п.5q Правил форума
Эта тема закрыта


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение- Прочитайте Правила форума
- Создайте свою тему согласно п.5q Правил форума
Эта тема закрыта

Автор - _Boroda_
Дата добавления - 13.03.2019 в 16:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование, с листа на лист (по нескольким условиям) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!