Доброе ночь Есть список допустимых значений в колонке 1 и бланк заказа питания в колонках 3-5. Подразумевается, что пользователь будет использовать выпадающий список в колонке 4. По факту в лист с заказом вставляются значения/форматы из сторонних источников. Значения, вставленные в колонку 4, не соответствуют списку допустимых значений из колонки 1, да и в целом эти копипастеры портят лист левыми форматами в других колонках.
Можно ли строго запретить в данной книге что-либо вставлять в ячейку? В идеале должен быть допустим только ручной ввод значений и использование выпадающего списка. На этом форуме наткнулась на данный код, но он запрещает копировать ячейку в пределах книги. Если в буфере обмена что-то уже есть или скопировано из строки ячейки, никто не запретит вставить это безобразие в ячейку.
Код
Private Sub Workbook_Activate()
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub
На работе на сервере есть книги, в которых работают с разных компьютером в новом и старом екселе. Проблема: Если в новом екселе поставить защиту на книгу/страницу или создать заметку к ячейке, то при открытии на старом екселе защита с паролем превращается в защиту без пароля, а заметки с ячеек пропадают.
Подскажите, пожалуйста, как избежать данного конфликта версий екселя?
Доброго времени суток! Есть код. Возможно ли, чтоб цикл выбирал не лист с номером i, а лист с именем i?
Код
Sub Тест()
Dim i
For i = 1 To 4 'Цикл от i=1 до i=4
Sheets(i).Select 'Выбор листа номер i
Application.Run "Очистка" 'Активация макроса Очистка (из этой же книги)
Next i
MsgBox ("Вкладки очищены!")
End Sub
Доброго времени суток! Не нашла через поиск подобной темы.
Есть код:
Код
Sub Macro()
If ActiveSheet.Range("A6").Text = "1" Then
Call Макрос1
ElseIf ActiveSheet.Range("B3").Text = "2" Then
Call Макрос2
End If
End Sub
Запускает макроса в зависимости от текста в ячейке. Мне нужно что-то похожее, но условием должно быть имя листа. Если лист "1" запустить макрос1, если лист "2", запустить макрос2. Или, быть может, на номер листа по порядку (но лучше по имени).
Предварительно искала, но не нашла. Нужен макрос для очистки листов с 1 по 25. Так как число периодически меняется (может возрасти), нужно, чтоб была возможность в дальнейшем расширить диапазон. Файл прилагаю. В файле уже есть макрос очистки, но примитивный... Выбор листа - выделить все - очистить - выбор листа - выделить все - очистить. Хочется попроще и покороче.
Необходимо: Сложить в листе "Сводная" значение из одного и того же столбца с листов 1, 2, 3, 4 и тд (в работе их больше - от 20 до 50) с условием совпадения значения в первом столбце.
Сейчас у меня это сделано через суммесли на примере с 5 листами. Можно ли это сделать формулой с указанием с какого по какой лист необходимо суммировать?
Возможно ли сделать так, чтоб отображение ячейки отличалось от его содержимого? Например, если у меня длинное название чего-либо, а отображение необходимо более простое (одним словом).
Возможно ли вывести формулу в R1C3, которая будет считать ячейки в C1, которые содержат один из вариантов текста: "абрикос*1,0" или "абрикос вишня 1,0" или "абр*вишня*1,0"? То есть в данном примере, мне бы хотелось, чтоб в R1C3 было значение 3.
Хотела бы узнать, возможно ли установить формат ячейки такой, чтоб в ней были только заглавные буквы, даже, если Caps Lock не активен? Или может можно осуществить это какой-нибудь командой, выделив необходимые ячейки? Цель: В определенные ячейки часто вставляется небольшой объем текста из стороннего источника и необходимо, чтоб вставленный текст был заглавными буквами.
Необходим макрос, использованием которого можно изменить параметры страницы на: Ориентация - Альбомная Поля - 0,5 по всем бокам Вписать - 1 страница в ширину и 1 страница в высоту
Мне однажды предоставили такой макрос:
Код
'Печать на один лист, края
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(2.0)
.BottomMargin = Application.InchesToPoints(0.5)
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Но он делает лишь возможной печать на одном листе.
Во вкладке "Сводная" слева присутствует два набора продукции с указанием кол-ва единиц в каждом наборе, правее - подсчет количества единиц в доставке из всех наборов. Цель: формула, которая будет во вкладке "Доставка №" искать значения, соответствующие A:A в "Сводная" и умножать их на значения в B:B в "Сводная" при совпадении найденных значений.
Так как названия наборов и количество единиц часто меняются, мне нужна формула, которую не надо будет переделывать при добавлении наборов, которую не надо будет увеличивать, как это необходимо с нынешней формулой.
Меня интересует, возможно ли использовать имя страницы из рядом находящийся ячейки для использования в формуле? В примере сейчас название листа в формуле указано вручную. Мне нужна формула для сводного листа, в которой название листа будет указано на основании ячейки RC[-1], что бы можно было протягивать формулы вниз.
Возможно ли сделать условие или в формулах с критерием?
Пример: В ячейке R1C6 мне необходима сумма значений С2, если в С1 есть "Пирог*" или "Рулет*". Можно ли в формуле прописать эти два условия сразу, чтоб не использовать длинный вариант формулы:
Возможно ли использование номера столбца, найденного через формулу =ПОИСКПОЗ в формуле =СУММ?
Пример: В ячейке R11C1 указан номер столбца, в котором по первой строке найдено значение 4 (расположение необходимого значения непостоянно). В ячейке R11C2 мне необходимо отображение суммы значений, находящихся в столбце, найденном формулой в ячейке R11C1.
Имеется таблица отчета (сохраненная из 1С). Расположение и количество кафе непостоянно, номенклатура разная (не только пироги). Внизу таблицы мне необходим некий "фильтр". Табличка, в которой будет написано, сколько пирогов заказано определенным кафе.
Необходимо, что бы в ячейке R31C3 отображалась сумма значений C3:C4 при условии, что R6C3 имеется текст "Доставка", а в C2 "Пирог*". То есть мне надо, чтоб формула в R6 находила определенное значение и суммировала C:C[1] (отталкиваясь от расположения, где находится найденное значение) с условием, что в C2 есть "Пирог*".
Здравствуйте! Мне говорили, шептались, и уверяли, что можно сделать макрос-условие. Мне необходимо, что бы по условию кол-ва выделяемых ячеек запускался определенный макрос. Если выделено 3 - макрос 1, выделено 4 - макрос 2, и тп. Возможно ли это?
Здравствуйте! Мне необходимо условное форматирование для столбов 2-4. При условии, если в первом столбе этой строки есть какое-либо значение, они должны форматироваться определенным образом (допустим, менять цвет на красный).
Здравствуйте! Изначально для таблицы использовался макрос, который скрывал все столбцы, кроме 3 (выделенных) и первого с номенклатурой, при повторном нажатии отображал скрытое (или отменял свое действие, я не очень разбираюсь, к сожалению). В скором времени начали создаваться таблицы (старые при этом актуальность не теряют) с большим кол-вом отделов и потребовались новые макросы (и нагромождение кнопок в верхней панели), которые будут скрывать уже все столбцы, кроме уже набора из 5 (6 и 7 и тд) столбиков + первого.
Возможно ли создать универсальный макрос, который будет скрывать все столбцы, кроме первого и набора выделенных столбиков, вне зависимости от их кол-ва? Макрос, которым мы пользовались на работе прилагаю. В файле пример таблицы, на которой использовали.
Код
Sub Hide()
Dim ranl As Range
Dim ranr As Range
Sel = ActiveCell.Column
Set ranl = Range(Cells(1, 2), Cells(1, Sel - 1))
Set ranr = Range(Cells(1, Sel + 3), Cells(1, 277))
If Range(ranl.Address).EntireColumn.Hidden = False Then
Range(ranl.Address).EntireColumn.Hidden = True
Range(ranr.Address).EntireColumn.Hidden = True
Else
Range(ranl.Address).EntireColumn.Hidden = False
Range(ranr.Address).EntireColumn.Hidden = False
End If
End Sub
Здравствуйте! Возможно ли макросом менять параметры страницы? Я пробовала поменять поля страницы на 0,5 (со всех сторон) и печать максимум на 1 странице в ширину во время записи макроса, но с его применением страница Excel мелькала, а макрос потом выказал ошибку.
Здравствуйте! Заранее сильно извиняюсь, я уже писала на этот случай тему, но очень... некорректно описала свои нужды.
В моей таблице распределен заказ по пирогам между пекарями. В столбиках 1,0 забиты пироги весом в 1 кг и они всегда имеют формат Число - 1 знак после запятой. Иногда, когда заказывают ассорти, например 1,5 кг из двух начинок, его забивают именно в столбик с килограммовыми пирогами по типу 0,750 и 0,750.
Мне необходимо создать условное форматирование для этих ячеек. Если в ячейку вбивается число, некратное единице (даже, если это просто 0,5), оно должно принимать формат Число - 3 знака после запятой. В остальных же случаях оно должно оставаться с форматом Число - 1 знак после запятой. Можно было бы поставить формат для этих ячеек Общий и тогда набор чисел после запятой определялся бы автоматически... но нам очень важно, чтоб в столбиках с пирогами по 1 кг был всегда 0 после запятой))) Мы пробовали убирать его и наши пекари путаются... к сожалению. Пекут 1,5 кг пироги вместо 1 кг.
Очень надеюсь, что я понятно выразилась и кто-то сможет мне помочь))) Файлик прилагаю.
Здравствуйте! У меня есть ряд меняющихся значений, для которых нормальный формат числа с одним знаком после запятой. Мне необходимо создать форматирование для ячеек, которые не будут кратны 0.5. То есть, если ввести значение 0.25 или 0.75, то эта ячейка будет форматироваться (например, выделяться красным).
Здравствуйте! Я работаю в ночь на следующую дату. Мне необходимо, чтоб в таблице у меня висело завтрашнее число, но с временным условием. Я работаю с таблицей с 18 вечера текущего дня и до 6 утра следующего дня. Возможно ли написать формулу для ячейки, чтоб с 18 до 24 она показывала сегодня()+1, а с 00 до 6 - сегодня() ?
Здравствуйте! Есть табличка. Мне необходимо скрывать определенный ряд столбиков, расположение которых будет зависеть от выделенной ячейки. Например, если выделить первое ИТОГО, необходимо, чтоб отображался столбик с выделенной ячейкой + первый столбик + столбики столбики ЗАКАЗ. При выделение второго ИТОГО, необходимо отображение первого столбика, столбика с выделенной ячейки + столбики ДОЗАКАЗ. То есть стабильно надо скрывать все, кроме первого столбика, выделенного столбика и каждым третим набором столбиком (по 3 штуки) после выделенного.
Sub Hide()
Dim cell As Range
Application.ScreenUpdating = False 'отключаем обновление экрана для ускорения
For Each cell In ActiveSheet.UsedRange.Rows(1).Cells 'проходим по всем ячейкам первой строки
If cell.Value = "x" Then cell.EntireColumn.Hidden = True 'если в ячейке x - скрываем столбец
Next
For Each cell In ActiveSheet.UsedRange.Columns(1).Cells 'проходим по всем ячейкам первого столбца
If cell.Value = "x" Then cell.EntireRow.Hidden = True 'если в ячейке x - скрываем строку
Next
Application.ScreenUpdating = True
End Sub
Sub Show()
Columns.Hidden = False 'отменяем все скрытия строк и столбцов
Rows.Hidden = False
End Sub
Возможно ли сделать это не в два макроса, а одним? Скрыть первым щелчком, отменить скрытие вторым.