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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос на сумму чисел из выборки и макрос на откат удаления - Мир MS Excel

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

Привет.
Помогите, пожалуйста, с двумя задачками:
1. составить макрос или формулу для ячейки: нужно высчитать сумму цен при выборе из массива А,Б,В,Г,Д и Ж,З,И,К,Л учитывая выбранное количество от 0 до 1000, суммируются цены только попавших количеств БУКВ в указанных диапазонах в массиве 2.
см. пример во вложении.

2. Есть макрос скрывающий строки с ячейками содержащие 0:

[vba]
Код
Sub Кнопка7_Щелчок()
Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
Dim i& 'Объявляем переменную
For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
End If 'Закрываем конструкцию проверки указанных условий
Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
End Sub
[/vba]

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

читал что с откатом обратно макроса есть сложности, но если так, можно ли сделать последовательность действий такой: копирование диапазона, вставка на новый лист, на новом листе удаление ненужные строки?
К сообщению приложен файл: 6851278.xlsx (12.8 Kb)
 
Ответить
СообщениеПривет.
Помогите, пожалуйста, с двумя задачками:
1. составить макрос или формулу для ячейки: нужно высчитать сумму цен при выборе из массива А,Б,В,Г,Д и Ж,З,И,К,Л учитывая выбранное количество от 0 до 1000, суммируются цены только попавших количеств БУКВ в указанных диапазонах в массиве 2.
см. пример во вложении.

2. Есть макрос скрывающий строки с ячейками содержащие 0:

[vba]
Код
Sub Кнопка7_Щелчок()
Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
Dim i& 'Объявляем переменную
For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
End If 'Закрываем конструкцию проверки указанных условий
Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
End Sub
[/vba]

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

читал что с откатом обратно макроса есть сложности, но если так, можно ли сделать последовательность действий такой: копирование диапазона, вставка на новый лист, на новом листе удаление ненужные строки?

Автор - HaMMeR_Yaol
Дата добавления - 25.01.2023 в 23:58
Pelena Дата: Четверг, 26.01.2023, 12:02 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19162
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
По Правилам форума: один вопрос - одна тема. Соответственно, второй вопрос - в новую тему.

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

в этом нет необходимости, т.к. команда копирования возьмёт только видимые ячейки


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
По Правилам форума: один вопрос - одна тема. Соответственно, второй вопрос - в новую тему.

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

в этом нет необходимости, т.к. команда копирования возьмёт только видимые ячейки

Автор - Pelena
Дата добавления - 26.01.2023 в 12:02
HaMMeR_Yaol Дата: Четверг, 26.01.2023, 14:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Ок, можно и другую тему создать)

Но сейчас добавляя команду в макрос о копировании в буфер, а потом вставляю на новый лист - вставка происходит вместе со скрытыми ячейками, т.к. он копирует весь диапазон.
 
Ответить
СообщениеОк, можно и другую тему создать)

Но сейчас добавляя команду в макрос о копировании в буфер, а потом вставляю на новый лист - вставка происходит вместе со скрытыми ячейками, т.к. он копирует весь диапазон.

Автор - HaMMeR_Yaol
Дата добавления - 26.01.2023 в 14:45
Nic70y Дата: Четверг, 26.01.2023, 15:29 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
    Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Sheets(2).Range("a1")
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
    Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Sheets(2).Range("a1")
[/vba]

Автор - Nic70y
Дата добавления - 26.01.2023 в 15:29
HaMMeR_Yaol Дата: Четверг, 26.01.2023, 20:28 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, спасибо. Получается второй вопрос почти закрыт, можно попросить подкорректировать на вставку в новую книгу?
 
Ответить
СообщениеNic70y, спасибо. Получается второй вопрос почти закрыт, можно попросить подкорректировать на вставку в новую книгу?

Автор - HaMMeR_Yaol
Дата добавления - 26.01.2023 в 20:28
Nic70y Дата: Пятница, 27.01.2023, 07:46 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
HaMMeR_Yaol, уточните что нужно сделать.
создать новую книгу, вставить в нее данные, сохранить ее как..
или книга уже существует?


ЮMoney 41001841029809
 
Ответить
СообщениеHaMMeR_Yaol, уточните что нужно сделать.
создать новую книгу, вставить в нее данные, сохранить ее как..
или книга уже существует?

Автор - Nic70y
Дата добавления - 27.01.2023 в 07:46
HaMMeR_Yaol Дата: Пятница, 27.01.2023, 10:22 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, создать новую книгу, вставить в нее данные и сохранить ее как... - так чтобы не заморачиваться) Спасибо!
А если заморочиться, то выбор открытой книги (может быть под любым названием), создание в ней нового листа и вставить туда данные...
 
Ответить
СообщениеNic70y, создать новую книгу, вставить в нее данные и сохранить ее как... - так чтобы не заморачиваться) Спасибо!
А если заморочиться, то выбор открытой книги (может быть под любым названием), создание в ней нового листа и вставить туда данные...

Автор - HaMMeR_Yaol
Дата добавления - 27.01.2023 в 10:22
Nic70y Дата: Пятница, 27.01.2023, 11:00 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
примерно так
[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
    Dim i& 'Объявляем переменную
    For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
        If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
            Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
        End If 'Закрываем конструкцию проверки указанных условий
    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
    Workbooks.Add
    ThisWorkbook.ActiveSheet.Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Range("a1")
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy.mm.dd") & ".xlsx"
End Sub
[/vba]


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 27.01.2023, 11:03
 
Ответить
Сообщениепримерно так
[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
    Dim i& 'Объявляем переменную
    For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
        If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
            Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
        End If 'Закрываем конструкцию проверки указанных условий
    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
    Workbooks.Add
    ThisWorkbook.ActiveSheet.Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Range("a1")
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy.mm.dd") & ".xlsx"
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 27.01.2023 в 11:00
HaMMeR_Yaol Дата: Пятница, 27.01.2023, 11:42 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, спасибо большое! С меня кофе :)

Остался только первый вопрос:
1. составить макрос или формулу для ячейки: нужно высчитать сумму цен при выборе из массива А,Б,В,Г,Д и Ж,З,И,К,Л учитывая выбранное количество от 0 до 1000, суммируются цены только попавших количеств БУКВ в указанных диапазонах в массиве 2.
см. пример во вложении.
 
Ответить
СообщениеNic70y, спасибо большое! С меня кофе :)

Остался только первый вопрос:
1. составить макрос или формулу для ячейки: нужно высчитать сумму цен при выборе из массива А,Б,В,Г,Д и Ж,З,И,К,Л учитывая выбранное количество от 0 до 1000, суммируются цены только попавших количеств БУКВ в указанных диапазонах в массиве 2.
см. пример во вложении.

Автор - HaMMeR_Yaol
Дата добавления - 27.01.2023 в 11:42
Nic70y Дата: Пятница, 27.01.2023, 12:00 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
HaMMeR_Yaol,
один вопрос - одна тема.
так получилось, что мы разобрали второй вопрос.
создайте новую тему по первому
[p.s.]кофе получил, спасибо[/p.s.]


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 27.01.2023, 12:39
 
Ответить
СообщениеHaMMeR_Yaol,
один вопрос - одна тема.
так получилось, что мы разобрали второй вопрос.
создайте новую тему по первому
[p.s.]кофе получил, спасибо[/p.s.]

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

Спасибо!
Создал новую тему http://www.excelworld.ru/forum/10-51229-1
 
Ответить
СообщениеСпасибо!
Создал новую тему http://www.excelworld.ru/forum/10-51229-1

Автор - HaMMeR_Yaol
Дата добавления - 27.01.2023 в 13:17
HaMMeR_Yaol Дата: Понедельник, 30.01.2023, 12:15 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, подскажите, пожалуйста, такой момент, если я хочу защитить лист, какие корректировки в коде нужно внести?
Сейчас при запуске выдает ошибку 1004.
К сообщению приложен файл: 0373993.png (47.3 Kb)
 
Ответить
СообщениеNic70y, подскажите, пожалуйста, такой момент, если я хочу защитить лист, какие корректировки в коде нужно внести?
Сейчас при запуске выдает ошибку 1004.

Автор - HaMMeR_Yaol
Дата добавления - 30.01.2023 в 12:15
Nic70y Дата: Понедельник, 30.01.2023, 12:22 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
о каком листе речь?


ЮMoney 41001841029809
 
Ответить
Сообщениео каком листе речь?

Автор - Nic70y
Дата добавления - 30.01.2023 в 12:22
HaMMeR_Yaol Дата: Понедельник, 30.01.2023, 15:08 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, лист, на котором расположена кнопка активирующая макрос, хочу поставить защиту для скрытия формул и ссылок в ячейках.
 
Ответить
СообщениеNic70y, лист, на котором расположена кнопка активирующая макрос, хочу поставить защиту для скрытия формул и ссылок в ячейках.

Автор - HaMMeR_Yaol
Дата добавления - 30.01.2023 в 15:08
Nic70y Дата: Понедельник, 30.01.2023, 16:06 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
    ActiveSheet.Unprotect 'снимаем защиту
    Dim i& 'Объявляем переменную
    For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
        If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
            Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
        End If 'Закрываем конструкцию проверки указанных условий
    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
    Workbooks.Add
    ThisWorkbook.ActiveSheet.Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Range("a1")
    ThisWorkbook.ActiveSheet.Protect 'ставим защиту
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy.mm.dd") & ".xlsx"
End Sub
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Sub u_700()
    Application.ScreenUpdating = False 'Отключаем обновление экрана во время выполнения макроса
    ActiveSheet.Unprotect 'снимаем защиту
    Dim i& 'Объявляем переменную
    For i = 35 To 55 'Указываем диапазон цикла, в данном случае по номерам строк
        If Range("B" & i).Value = "0" Then 'Проверяем, пустые ли ячейки, соответствующие указанному выше диапазону, в интересующем столбце ("B")
            Rows(i).EntireRow.Hidden = True 'Скрываем строки, если эти ячейки пустые
            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки, если ячейки заполнены
        End If 'Закрываем конструкцию проверки указанных условий
    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла
    Workbooks.Add
    ThisWorkbook.ActiveSheet.Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Range("a1")
    ThisWorkbook.ActiveSheet.Protect 'ставим защиту
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy.mm.dd") & ".xlsx"
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 30.01.2023 в 16:06
HaMMeR_Yaol Дата: Среда, 01.02.2023, 18:56 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, Спасибо большое! получилось!
 
Ответить
СообщениеNic70y, Спасибо большое! получилось!

Автор - HaMMeR_Yaol
Дата добавления - 01.02.2023 в 18:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос на сумму чисел из выборки и макрос на откат удаления (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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