Тоже верно. Для второй фотки. )
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
Разрешить скрывать/отображать структуры на защищенном листе
Разрешить скрывать/отображать структуры на защищенном листе
|
16.10.2019 11:54:29
, спасибо.
Другой вариант:
Но во всех вариантах (в том числе и других), которые я видел, с таких листов пользователь сможет снять защиту листа БЕЗ ВВОДА ПАРОЛЯ. А есть варианты, при которых и кнопки группировок работали бы и при этом 1) при попытке пользователя снять защиту с листа сохранялась необходимость ввода пароля, 2) при открытии книги не нужно было бы вводить пароль защиты листа. ?
Изменено: - 16.10.2019 11:55:45
|
|||
|
|
|
Разрешить скрывать/отображать структуры на защищенном листе
Ошибочное назначение защиты множеству ячеек вместо назначенной небольшой группы (макросом), Описание как в названии
Ошибочное назначение защиты множеству ячеек вместо назначенной небольшой группы (макросом), Описание как в названии
|
15.10.2019 21:19:46
Добрый день, уважаемые форумчане.
Есть макрос, который копирует строки с листа "Данные" (выделяются данные от первой строки до первой пустой по столбу А). Затем снимает защиту с листа "Прайс бренды - виды товаров" (здесь пароль "1", т.е единичка, но защищенных ячеек нет), вставляет скопированное на этот лист. После этого обрабатывает вставленное. И потом защищает лист "Прайс бренды - виды товаров" эти же паролем. Но перед защитой листа макрос должен назначить защиту ячеек ("H8:H9,I16:I21"). Я пытаюсь это сделать, но защита назначается НЕ ТОЛЬКО НА ЭТИ ячейки, а ошибочно НА ВСЕ ВСТАВЛЕННЫЕ ячейки. Вот и прошу помочь в этом. В тестовом файле этот макрос запускается с кнопки на листе "Прайс бренды - виды товаров". Ячейки, которые должны оказаться защищенными на листе "Прайс бренды - виды товаров" выделил желтым.
Изменено: - 15.10.2019 23:24:16
|
|||
|
|
|
К выделенным результатам фильтра добавить одну строку над ними.
|
07.08.2013 15:35:01
Добрый день, уважаемые форумчане.
Прошу помощи в следующем вопросе. Выделил я нужные мне строки (например, 5--21). Запускаю макрос, который должен строки с одним критерием для фильтра (7,9,12,20) скопировать в один лист, а с другим (5-6, 8, 10-11,13-19, 21)--в другой, после этого выделенные строки (5--21) удалить. Макрос фильтром выделил записи в соответствии с заданными критериями (например, строки 7,9,12,20). При этом строки 5-6, 8, 10-11,13-19, 21 остались не видны на мониторе. На мониторе, как бы за 4-й идёт 7 строка и т.д. Мне надо, чтобы в диапазон для копирования попала ещё и строка 4 (которая расположена сразу над строками, которые фильтровались. Т.е. чтобы при дальнейшем копировании на один лист скопировались строки 4, 7, 9, 12, 20, а на другой 4, 5-6, 8, 10-11,13-19, 21. Соответственно, если бы для фильтра я выделил строки 10-19, то на один лист попали бы строки 9, 12, 20, а на другой 9, 10-11,13-19. PS. Команда Selection.Offset(-1, -0).Resize(Selection.Rows.Count + 1, _ Selection.Columns.Count + 0).Select не сработает для одного листа (хотя сработает для другого). Такая вот проблема у меня. |
|
|
|
|
Как задать условие для ЕСЛИ
Как задать условие для ЕСЛИ
Как запретить макросу выполняться, если кроме одной, открыты ещё книги?
Снятие защиты диапазонов макросом (по всей книге, выборочное и обратимое).
Макрос не выделяет именованный диапазон.
Макрос не выделяет именованный диапазон.
Снятие защиты диапазонов макросом (по всей книге, выборочное и обратимое).
Снятие защиты диапазонов макросом (по всей книге, выборочное и обратимое).
Снятие защиты диапазонов макросом (по всей книге, выборочное и обратимое).
|
06.02.2013 23:31:23
Добрый вечер, форумчане.
Подскажите, пожалуйста, как решить такой вопрос. Есть книга с множеством "клонированных" листов, в каждом по пять диапазонов. На всех листах у диапазона "1" пароль "1", у "2"--"2", у "3"--"3", у "4"--"4", у "5"--"5". Вопрос: можно ли макросом одним махом снять защиту со всех диапазонов по всей книге для пользователя (можно и для макроса). Но чтобы при этом на каждом листе осталась защита самого листа и диапазона "5" на каждом листе. Снятие защиты должно быть "обратимым", т.е. чтобы после повторного открытия книги защита функционировала, как обычно, до нового запуска макроса. Т.е. просто удаление диапазонов не подходит.
Изменено: - 06.02.2013 23:32:37
|
|
|
|
|
Как запретить макросу выполняться, если кроме одной, открыты ещё книги?
Как запретить макросу выполняться, если кроме одной, открыты ещё книги?
Как запретить макросу выполняться, если кроме одной, открыты ещё книги?
|
05.02.2013 00:06:01
Доброй ночи, форум.
Помогите, пожалуйста, в следующем вопросе. Есть макросы, которые нормально работают, только если открыта только одна книга (собственно рабочая). Подскажите, пожалуйста, как запретить макросу выполняться, если кроме одной, открыты ещё книги? Sub probaOpenBook() ' 'If 'открыта только одна книга Эксель Then MsgBox "OK, основной КОД" Else MsgBox "Пожалуйста, закройте другие книги." End If End Sub |
|
|
|
|
Макрос переноса строк с постановкой "латки" на место удалённых строк.
Макрос переноса строк с постановкой "латки" на место удалённых строк.
|
04.02.2013 15:04:11
Доброго дня всем.
Подскажите, пожалуйста, как справится со следующей задачей. Есть база с множеством стандартных однотипных листов. Есть регистратор, который запросто может перепутать листы и в лист В, например, внести несколько записей (например, с 10 по 17), которые должен был внести в лист Т, например. Задача следующая: если подобный косяк замечен, то 1) как поудобнее для регистратора организовать перенос ячеек в выделенных вручную строках с 10 по 17 в примере (именно строки выделяются) с данными с ошибочного листа (В) в первую пустую в столбце D верного листа (Т); 2) как на место перенесенных строк в В вставить "латку" с теми же строками ( с 10 по 17) из листа ШАБЛОН. "Латка" нужна потому, что при введении данных в листе В, регистратор при необходимости "забивает" не актуальные формулы. А в новых строках эти формулы должны быть. В ШАБЛОНе они есть. Хотелось бы на выходе работать по такому алгоритму: вручную выделил строки на ошибочном листе, клацнул макрос, вручную открыл верный лист, msgBox "Вы открыли лист. Продолжить перенос на него?", код вставляет строки под последней не пустой в D, вставляет "латку" из таких-же строк ШАБЛОНа в ошибочный лист. |
|
|
|
|
MsgBox, "запрещающий" создание макросом нового листа под названием имеющегося.
MsgBox, "запрещающий" создание макросом нового листа под названием имеющегося.
|
04.02.2013 00:24:37
Sergei_A, большое и Вам спасибо за внимание, но от Вашего кода я воздержался, поскольку, он для моих целей является слишком "навороченным".
У моих листов названия задаются следующим макросом, в названии листа суммирующим "дата"+"адрес" из фиксированных ячеек. Задача регистратора просто "не прощелкать" вовремя клацнуть этот макрос присваивающий ВРЕМЕННому постоянное название ("сумму"). Поэтому предоставление возможности пройти по всем Боксам, выбора, как назвать и т.д. излишне. Регистратор просто ставится перед фактом, что имеющемуся ВРЕМЕННому таки надо присвоить постоянное название. В любом случае, большое Вам спасибо за беспокойство. |
|
|
|
|
MsgBox, "запрещающий" создание макросом нового листа под названием имеющегося.
|
04.02.2013 00:17:26
Юрий М, если бы не Вы, я сам еще не скоро догадался бы, что просто после Then надо с абзаца дальше писать. Вот ведь, блинская "мелочь".
В итоге полнучился вот такой код. Dim wsSh As Worksheet On Error Resume Next Set wsSh = Sheets("ВРЕМЕННЫЙ") If wsSh Is Nothing Then Sheets("ШАБЛОН").Visible = True Sheets("ШАБЛОН").Select Sheets("ШАБЛОН").Copy Before:=Sheets(3) With ActiveSheet .Name = "ВРЕМЕННЫЙ" End With Sheets("ШАБЛОН").Visible = False Worksheets("ВРЕМЕННЫЙ").Protect Password:="0662142087", AllowFiltering:=True, UserInterfaceOnly:=True Application.CommandBars("Selection and Visibility").Visible = False For Each x In ActiveSheet.Shapes x.Visible = Not x.Visible Next Range("B1002").Select Else MsgBox "Такой уже есть" End If End Sub |
|
|
|
|
MsgBox, "запрещающий" создание макросом нового листа под названием имеющегося.
|
03.02.2013 22:26:07
Спасибо, я побывал на ссылках.
Почему не работает такая конструкция? Что не в порядке с Else? Dim wsSh As Worksheet On Error Resume Next Set wsSh = Sheets("ВРЕМЕННЫЙ") If wsSh Is Nothing Then Sheets.Add(, Sheets(Sheets.Count)).Name = "ВРЕМЕННЫЙ" wsSh.Activate Else MsgBox "Такой уже есть" End If End Sub |
|
|
|
|