Доброе ночь Есть список допустимых значений в колонке 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.name = "1" then
Call Макрос1
ElseIf activesheet.name = "2" then
Call Макрос2
End If
End Sub
Хочу заменить 4 строчку с "если имя активного листа равно 2" на "если имя активного листа не равно 1". Листов в книге много, мне надо, чтоб к одному применялся один макрос, а к остальным - другой.
Доброго времени суток! Не нашла через поиск подобной темы.
Есть код:
Код
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 листами. Можно ли это сделать формулой с указанием с какого по какой лист необходимо суммировать?
Возможно ли сделать так, чтоб отображение ячейки отличалось от его содержимого? Например, если у меня длинное название чего-либо, а отображение необходимо более простое (одним словом).
Казанский Получается, что формула берет один аргумент, считает ячейки с ним, потом берет второй аргумент и складывает все ячейки со вторым, потом суммирует эти значения... Точно ли нельзя, чтоб он суммировал ячейки, которые содержать хотя бы один аргумент, вместо того, чтоб суммировать результаты поиска по каждому аргументу? То есть, если ячейка подходит по критерию сразу под два условия, мне не надо, чтоб она считалась дважды... Z Оригинальная табличка весит больше 300 кб, условия от примера отличаются только тем, что список значений находится в C120, а не в C1, а формула нужна в R1C3, а не в R1C122.
Возможно ли вывести формулу в R1C3, которая будет считать ячейки в C1, которые содержат один из вариантов текста: "абрикос*1,0" или "абрикос вишня 1,0" или "абр*вишня*1,0"? То есть в данном примере, мне бы хотелось, чтоб в R1C3 было значение 3.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range, rCell As Range, LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row Set Rng = Range("A1:A" & LastRow) If Not Intersect(Target, Rng) Is Nothing Then Application.EnableEvents = False For Each rCell In Rng rCell = UCase(rCell) Next End If Application.EnableEvents = True End Sub
Я не очень разбираюсь в макросах. Не подскажите, где тут указан диапазон, чтоб я могла адаптировать его для рабочих нужд?
Bema На данный момент в таблицы используется эта формула, но хотела бы уйти от нее. Пару раз получалось так, что текст вставлялся в скрытый столбец, а в необходимом месте уже были эти формулы, но кол-во ячеек с формулой оказалось меньше, чем количество ячеек с текстом... в общем, оказалось не очень удобным.
Юрий М В файле примера это столбец 1, количество строк непостоянно. Вставляется текст с разным количеством строк, иногда из 10 строк, иногда из 28. Столбец всегда один и тот же.
Юрий М написал: а потом прямо здесь предложите новое название темы - модераторы поменяют.
"Возможно ли быстрым способом перевести текст в ячейках в верхний регистр или установить его по умолчанию?" если не очень длинное, думаю, подойдет в качестве краткого описания проблемы. Извиняюсь.
Хотела бы узнать, возможно ли установить формат ячейки такой, чтоб в ней были только заглавные буквы, даже, если 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
Но он делает лишь возможной печать на одном листе.