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

 

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

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

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

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

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



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

читал что с откатом обратно макроса есть сложности, но если так, можно ли сделать последовательность действий такой: копирование диапазона, вставка на новый лист, на новом листе удаление ненужные строки?
К сообщению приложен файл: 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 = Тrue 'Скрываем строки; если эти ячейки пустые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
Группа: Админы
Ранг: Местный житель
Сообщений: 19517
Репутация: 4632 ±
Замечаний: ±

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

А может, вторая тема и не понадобится
Цитата HaMMeR_Yaol, 25.01.2023 в 23:58, в сообщении № 1 ( писал(а)):
удалял строки, далее копировал полученный диапазон, вставка в новую книгу, а затем откатывал удаленные ячейки

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


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

А может, вторая тема и не понадобится
Цитата HaMMeR_Yaol, 25.01.2023 в 23:58, в сообщении № 1 ( писал(а)):
удалял строки, далее копировал полученный диапазон, вставка в новую книгу, а затем откатывал удаленные ячейки

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

Автор - 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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010

    Range("B35:B55").SpecialCells(xlCellTypeVisible).Copy Sheets(2).Range("a1")



Ю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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
примерно так

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



Ю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 = Тrue 'Скрываем строки; если эти ячейки пустые            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки; если ячейки заполнены        End If 'Закрываем конструкцию проверки указанных условий    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла    Workbooks.Add    ТhisWorkbook.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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
HaMMeR_Yaol,
Цитата Pelena, 26.01.2023 в 12:02, в сообщении № 2 ( писал(а)):
один вопрос - одна тема.
так получилось, что мы разобрали второй вопрос.
создайте новую тему по первому
P.S.кофе получил, спасибо


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 27.01.2023, 12:39
 
Ответить
СообщениеHaMMeR_Yaol,
Цитата Pelena, 26.01.2023 в 12:02, в сообщении № 2 ( писал(а)):
один вопрос - одна тема.
так получилось, что мы разобрали второй вопрос.
создайте новую тему по первому
[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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 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
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010

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



Ю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 = Тrue 'Скрываем строки; если эти ячейки пустые            Else: Rows(i).EntireRow.Hidden = False 'Отображаем строки; если ячейки заполнены        End If 'Закрываем конструкцию проверки указанных условий    Next 'Запускаем описанную выше процедуру для каждого значения переменной из указанного диапазона цикла    Workbooks.Add    ТhisWorkbook.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
  • Страница 1 из 1
  • 1
Поиск:

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