Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Вставка картинок из каталога. Есть две картинки с одинаковыми размерами. А вставляются с разными размерами.
 
Добрый день всем.
Настраиваю вставку картинок макросом. Все картинки должны вставляться ОДИНАКОВОЙ высоты (например 5,64 см). Для этого все картинки в каталоге я прогнал через пакетную обработку и у всех высоту задал 160 пикселей (а ширина пропорционально). А вставляются какие-то ошибочно слишком маленькими.
Проверял размеры картинок в файлах - высота у всех одинаковая, ширина пропорциональная.
Пробовал И РУКАМИ вставлять - аналогично: картинки, которые вставляются макросом маленькими, и при вставке руками также вставляются маленькими (в примерах это второй файл).
Макрос пробовал двух вариантов
Первый:          
Код
 Set p = ActiveSheet.Shapes.AddPicture(Puty, msoFalse, msoCTrue, Rng.Left, Rng.Top, -1, -1)
            ratio = Rng.Width / p.Width
            p.ScaleWidth ratio, msoFalse
            p.ScaleHeight ratio, msoFalse
и второй (из макрорекордера)
Код
     Pict.Select
        ActiveSheet.Pictures.Insert ( _
        Puty)
Здесь Puty - это полный путь к картинке в каталоге, а Rng - это ячейка, в которую вставляю.
Почему две картинки из примера вставляются разного размера (и макросами И РУКАМИ)? В примерах первая картинка (красное) вставляется нужного размера (высота 5,64 см), а вторая картинка (белое) ошибочно малая (высота 1,36 см).

Админу. Покажите, пожалуйста, где написано как теги вставлять (не нашел).
Изменено: maseur - 20.10.2019 23:50:34
Ошибочное назначение защиты множеству ячеек вместо назначенной небольшой группы (макросом), Описание как в названии
 
Добрый день, уважаемые форумчане.
Есть макрос, который копирует строки с листа "Данные" (выделяются данные от первой строки до первой пустой по столбу А). Затем снимает защиту с листа "Прайс бренды - виды товаров" (здесь пароль "1", т.е единичка, но защищенных ячеек нет), вставляет скопированное на этот лист. После этого обрабатывает вставленное. И потом защищает лист "Прайс бренды - виды товаров" эти же паролем.
Но перед защитой листа макрос должен назначить защиту ячеек ("H8:H9,I16:I21").
Я пытаюсь это сделать, но защита назначается НЕ ТОЛЬКО НА ЭТИ ячейки, а ошибочно НА ВСЕ ВСТАВЛЕННЫЕ ячейки.
Вот и прошу помочь в этом. В тестовом файле этот макрос запускается с кнопки на листе "Прайс бренды - виды товаров". Ячейки, которые должны оказаться защищенными на листе "Прайс бренды - виды товаров" выделил желтым.
Код
Sub Macros1()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ''''''''''''''''''''''''''''''
    Worksheets("Данные").Activate
    Dim MyValue1, PreMyValue2, MyValue2
    MyValue1 = Range("A2:A" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row 'номер строки первой пустой ячейки в А
    
    Worksheets("Прайс бренды - виды товаров").Activate
    
    ActiveSheet.Unprotect Password:="1" 'Снимаем защиту листа
    ActiveSheet.Range("H8:H9,I16:I21").Locked = True
    
    Cells(1, 16).NumberFormat = "@" '"P1"
    Cells(1, 16) = CStr(MyValue1)
    Set MyValue1 = Worksheets("Прайс бренды - виды товаров").Range("P1")
    Sheets("Данные").Rows("1:" & MyValue1).Copy
    Worksheets("Прайс бренды - виды товаров").Activate
    Sheets("Прайс бренды - виды товаров").Rows("11:11").Select
    ActiveSheet.Paste
        
    'Зафиксируем область
    ActiveWindow.FreezePanes = False
    Range("A14").Select
    ActiveWindow.FreezePanes = True
        
    'Установим фильтры
    Range("D11:I13").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    
    'Установим форматы
        Range("F14:I20000").Select
    Selection.NumberFormat = "#,##0.00"
    
    'Протянем формулу стоимости
    Range("R1").Select
    ActiveCell.FormulaR1C1 = "=IF(R[15]C[-10]>0,R[15]C[-11]*R[15]C[-10],"""")"
    Range("I16").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]>0,RC[-2]*RC[-1],"""")"
    Range("I16").Select
    Selection.Copy
    Range("I17:I20000").Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Range("A14:B14").Select 'это чтобы "промотать лист вверх".
        
    Range("P1:R1").Select
    Selection.Clear

    Range("A1").Select
    
    'ActiveSheet.Range("H8:H9,I16:I21").Locked = True
    ActiveSheet.Protect Password:="1" 'Ставим защиту листа
    
    '''''''''''''''''''''''''''''''''''''''''''
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    ActiveWorkbook.Save
End Sub
Изменено: maseur - 15.10.2019 23:24:16
К выделенным результатам фильтра добавить одну строку над ними.
 
Добрый день, уважаемые форумчане.
Прошу помощи в следующем вопросе.
Выделил я нужные мне строки (например, 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
не сработает для одного листа (хотя сработает для другого).

Такая вот проблема у меня.
Как задать условие для ЕСЛИ
 
Здравствуйте, уважаемые форумчане.
Помогите, пожалуйста, составить условие для формулы ЕСЛИ.
В прикреплении описал само условие (как коротко его описать здесь не знаю).
Макрос не выделяет именованный диапазон.
 
Здравствуйте, форумчане.
Подскажите, пожалуйста, почему макрос не выделяет именованный диапазон.
Спасибо.
Снятие защиты диапазонов макросом (по всей книге, выборочное и обратимое).
 
Добрый вечер, форумчане.
Подскажите, пожалуйста, как решить такой вопрос.
Есть книга с множеством "клонированных" листов, в каждом по пять диапазонов. На всех листах у диапазона "1" пароль "1", у "2"--"2", у "3"--"3", у "4"--"4", у "5"--"5".
Вопрос: можно ли макросом одним махом снять защиту со всех диапазонов по всей книге для пользователя (можно и для макроса).
Но чтобы при этом на каждом листе осталась защита самого листа и диапазона "5" на каждом листе.
Снятие защиты должно быть "обратимым", т.е. чтобы после повторного открытия книги защита функционировала, как обычно, до нового запуска макроса. Т.е. просто удаление диапазонов не подходит.
Изменено: maseur - 06.02.2013 23:32:37
Как запретить макросу выполняться, если кроме одной, открыты ещё книги?
 
Доброй ночи, форум.
Помогите, пожалуйста, в следующем вопросе.
Есть макросы, которые нормально работают, только если открыта только одна книга (собственно рабочая).
Подскажите, пожалуйста, как запретить макросу выполняться, если кроме одной, открыты ещё книги?

Sub probaOpenBook()
'
   
'If 'открыта только одна книга Эксель Then
           MsgBox "OK, основной КОД"
Else
MsgBox "Пожалуйста, закройте другие книги."
End If
End Sub
Макрос переноса строк с постановкой "латки" на место удалённых строк.
 
Доброго дня всем.
Подскажите, пожалуйста, как справится со следующей задачей.
Есть база с множеством стандартных однотипных листов. Есть регистратор, который запросто может перепутать листы и в лист В, например, внести несколько записей (например, с 10 по 17), которые должен был внести в  лист Т, например.
Задача следующая: если подобный косяк замечен, то
1) как поудобнее для регистратора организовать перенос ячеек в выделенных вручную строках с 10 по 17 в примере (именно строки выделяются) с данными с ошибочного листа (В) в первую пустую в столбце D верного листа (Т);
2) как на место перенесенных строк в В вставить "латку" с теми  же строками ( с 10 по 17) из листа ШАБЛОН.
"Латка" нужна потому, что при введении данных в листе В, регистратор при необходимости "забивает" не актуальные формулы. А в новых строках эти формулы должны быть. В  ШАБЛОНе они есть.

Хотелось бы на выходе работать по такому алгоритму: вручную выделил строки на ошибочном листе, клацнул макрос, вручную открыл верный лист, msgBox "Вы открыли лист. Продолжить перенос на него?", код вставляет строки под последней не пустой в D, вставляет "латку" из таких-же строк ШАБЛОНа в ошибочный лист.
MsgBox, "запрещающий" создание макросом нового листа под названием имеющегося.
 
Добрый вечер, уважаемые форумчане.
Такой вопрос...
В процессе работы макрос создаёт лист "ВРЕМЕННЫЙ".
Но пользователь может ранее созданный "ВРЕМЕННЫЙ" не переименовать и запустить макрос. Получается сбой.
Как сделать, что бы MsgBox появлялся в том случае, если макрос доходит до этапа создания "ВРЕМЕННЫЙ", а "старый" "ВРЕМЕННЫЙ" уже существует?

Название "ВРЕМЕННЫЙ" фиксировано и речь идёт об листе с именно таким названием.
Макрос, снимающий защиту для макроса и оставляющий возможность фильтра.
 
Добрый вечер, форумчане.
На старом форуме в какой-то теме был макрос, который оставлял защиту от пользователя. Но снимал защиту для макроса, и, при этом еще разрешал выполняться фильтру.
Сейчас поиск в старом форуме практически отсутствует.
Если у кого есть этот макрос, с возможностью фильтрации, выложите, пожалуйста.
Спасибо за внимание.
Запрет макроса по содержимому первой ячейки в выделенных строках.
 
Добрый вечер, уважаемые форумчане.
Есть выделенные вручную строки (таки строки, а не ячейки). Например, с 522 по 550... И они могут быть другими.
Есть макрос от Hugo. Как запретить макросу выполняться, если в выделенных строках в первой ячейке первой строки (в левой верхней) нет значения? Там исходно есть формула.
Или Если первая ячейка столбца В в выделенных строках пустая (в ней формул нет).


Sub proba0startNedo()
???
If ???

Dim cc&
cc = Columns.Count
If Selection.Areas.Count = 1 Then
If Selection(1).Row = Selection(cc).Row Then ' "Это было начало кода, запрещающего макрос если НЕ выделены любые строки.
' ОСНОВНОЙ КОД
Else ' "Продолжение кода, запрещающего макрос если НЕ выделены любые строки.
MsgBox "СПОЧАТКУ, будь ласка, виділіть потрібні рядки!"
End If
Else
MsgBox "Не хитрить!"
End If
' "Это было окончание кода, запрещающего макрос если НЕ выделены любые строки.
Else
MsgBox "Первая пустая"

End If
End Sub

Спасибо за внимание.
Изменено: maseur - 28.01.2013 23:38:53
Код для MsgBox "Если не выделены строки, то..."
 
Добрый день, уважаемые форумчане.
Прошу Вашей помощи вот в каком вопросе.
Есть код, который работает с выделенными вручную строками. Как сделать так, чтобы если пользователь не выделил строки, но запустил макрос, появлялся
MsgBox "Сначала выделите строки!!!  Жмите Ок"
Пользователь жмёт ОК и макрос закрывается. Если строки выделены--макрос благополучно отрабатывает основной код.
'НАЧАЛО основного кода.
   Dim rv As Long
 rv = MsgBox("Ви хочете назавжди перенести записи в архіви... Тоді жміть Да. Як передумали--то Нєт.", vbYesNo Or vbQuestion)
 If rv = vbYes Then
 Sheets("ДРУК").Cells.Clear
 '.........
   Dim rFndRng As Range
   Set rFndRng = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
   If Not rFndRng Is Nothing Then
       '....
   End If
     Workbooks("НАКОПИЧУВАЧ.xlsm").Save
   Workbooks("НАКОПИЧУВАЧ.xlsm").Close
   '......
MsgBox "Дані перенесені, устарілі дані видалені. Жміть Ок"
Else
MsgBox "Уважніше, будь ласка", vbExclamation
End If
'КОНЕЦ основного кода.

End Sub

Спасибо за внимание.
Как избежать копирования визуально пустых ячеек?
 
Здравствуйте, форумчане.
Опять к Вам на поклон. Проблема в следующем.
Макрос удаляет первую строку, выделяет от последней не пустой до А2 и выделенное копирует:
Workbooks("ДРУК.xlsm" ;) .Sheets("ФИЛЬТР" ;) .Activate
Rows("1:1" ;) .Delete
LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Range(Cells(2, 1), Cells(LastRow, "bf" ;) ).Select
Selection.Copy

Проблема в том, что если не пустых от А2 и далее не окажется, заглавная строка удалится, как и должна, но будут выделяться пустые ячейки второй строки. А они потом копируются и тем же макросом вставляются в другую таблицу и искажают её данные.
Как сделать так, чтобы если в выделенных таким образом ячейках не будет текста и цифр (а формул не будет точно), т.е. ячейки окажутся визуально пустыми, макрос не копировал их?
Изменено: maseur - 25.01.2013 19:16:29
Число строк в выпадающем списке ComboBox-а не равно числу строк в "питающем" списке.
 
Добрый день, уважаемые форумчане.
Неожиданно всплыла проблема с созданной формой.
Дело в том, что в окошке выпадающего списка ComboBox-а появляется не весь "питающий" список.
Число строк в выпадающем списке равно числу записей в базе -1, а не числу строк в "питающем" списке.
Какие параметры свойств надо поменять и как?
Прокрутка для ComboBox в эл.форме.
 
Что указать в свойствах для ComboBox в эл.форме, чтобы появилась прокрутка списка?
Заходил в Style, хотел 1 поставить, а там только 0-... и 2-...
Как быть?
Макрос сортировки в выделенных строках с расширением диапазона.
 
Доброй ночи, форумчане.
Записал макрорекордером макрос, который в пределах выделенных строк от A до F по критерию в D производит сортировку А--Я.
И никак не получается научить его работать с другими выделенными строками. И так и этак лепил, а всё "криво" получается.
Т.е. в идеале я выделяю любые строки, запускаю макрос, а он сортирует по алфавиту в D с "автоматическим расширением диапазона" от A до F, но всё в пределах выделенных строк.
Заранее благодарю.
Изменено: maseur - 22.01.2013 01:03:19
макрос добавления текста в выделенных ячейках определённого диапазона.
 
Добрый вечер, знатоки.
Есть столбец. Я выделяю некоторые строки (каждый раз разные, например, с 7 по 12), макрос выполняет свою работу на других листах (выделение не снимается), а в конце макроса в ячейках этих выделенных строк столбца С должен появиться текст "Напечатано".
Как это реализовать?
Избавиться от окна с предупреждением перед заданным сохранением файла.
 
День добрый.
В процессе выполнения макроса перед заданным сохранением появляется окно "Предупреждение о конфиденциальной информации............которые нельзя удалить..."
Надоело вусмерть.
Как от него избавиться?
Как игнорировать сообщение об ошибке в ходе макроса?
 
Доброй ночи, форумчане. Такая вот проблемма.
По ходу выполнения макроса, он должен выделить непустые строки с последней до первой.  По этому коду:

Rows("1:1").Delete
        LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   Range(Cells(1, 1), Cells(LastRow, "bd")).Select

В том случае, если нет ни одной такой строки (пустой лист) появляется сообщение об ошибке (rine time errore 91).
Как подправить код, чтобы такая ситуация не останавливала макрос. Чтобы "ошибка" игнорировалась и он продолжал выполняться.
Не копируются результаты фильтра.
 
Уважаемые форумчане.
Подскажите, пожалуйста, почему не копируются результаты фильтра?
В приложении файл, макрос из которого копирует данные в файл (ДРУК) лист "ДРУК ЖУРНАЛУ". В нем происходит фильтрация. Дальше результат фильтра должен копироваться и вставляться в лист "ФІЛЬТР". А не копируется.

В приложении файл, но, может достаточно будет и фрагмента кода, чтобы указать на ошибку...

Код
Sheets("ФІЛЬТР" )  .Cells.Clear
 With Sheets("ДРУК ЖУРНАЛУ" )  
 .Range("$BB$1:$BB$999" )  .AutoFilter 1, "=*Не допущений(а)*"
 


' Вот этот фрагмент выделяется желтым:
Код
 .Columns("BB:BB" )  .CurrentRegion.SpecialCells(56).Copy _
 Sheets("ФІЛЬТР" )  .Range("A1" )  
 
 .AutoFilterMode = 0
 'сброшен фильтр в ДРУК ЖУРНАЛУ.
 End With
Формула счёта в выделенных вручную строках в пределах заданного ранее диапазона.
 
Есть формула =СУММПРОИЗВ(--(B$2:B$1000<>""))

Скажите, пожалуйста, как прописать формулу так, чтобы считала она только в выделенных вручную  строках в пределах заранее заданного диапазона?
Т.е. в примере, например, всего 5 значений от В2 до В1000.
Я "вручную" выделил с 5-й по 11-ю строку (а на этом участке в В уже 3 позиции) и в значении формула должна показать "3", а не "5".
Копирование выделенных строк на другой лист
 
Добрый вечер, форумчане.
Есть "вручную" выделенные строки на листе БАЗА (допустим, с 5-й по 10-ю). И есть код, который копирует эти выделенные строки на лист ПЕЧАТЬ, начиная с А1,

Selection.Copy Sheets("ПЕЧАТЬ").Range("A1").

Как сделать так, чтобы
1) макрос удалял все данные с листа ПЕЧАТЬ, а потом
2) вставлялись только значения (без формул). Специальная вставка не помогает.

Код, записанный макрорекордером, почему-то упорно вставляет в ячейки только данные из А5...
"ВПР" по двум критериям из строки.
 
Здравствуйте, знатоки.  
После брожения по форуму и перебора вариантов так и не нашёл способа решить свой вопрос.  
Надо вставить значение (текст) из другого листа по двум критериям. Пробовал ВПР-2. Не получается. Думаю попытаться через объединение значений столбов A и G и создание нового столба, а затем обычный ВПР, но уверен, что есть менее громоздкий способ без создания новых столбов.  
Если кто-нибудь знает решение, подскажите, пожалуйста.
Макрос разнесения по листам разносит НЕ все строки. Почему?
 
Здравствуйте, знатоки Excel.  
Помогите, пожалуйста, решить вопрос.  
Есть файл КАЛЕНДАРЬ, в котором есть макрос, который копирует данные из файла АРХИВ на свой первый лист БАЗА, а затем разносит их по листам в соответствии с критерием в 7-м столбе (по месяцам).  
Всё вроде нормально, но сегодня заметил, что в последний лист (01.2013) не переносятся из БАЗы последние 6 строк.  
Подскажите, пожалуйста, в чем дело и как "вылечить".  
 
В этом приложении КАЛЕНДАРЬ.
[ Закрыто] Помогите, пжлс, доработать формулу, чтобы считала до первой пустой ячейки справа. [ЗАКРЫТА. Дубль темы]
 
Уважаемые Знатоки.  
Помогите, пожалуйста, доработать формулу.  
Формула находится в J. Надо сделать так, чтобы она работала только в пределах до первой пустой ячейки справа. Пустые столбы могут переносится и их может быть несколько.  
Формула показывает результат, только, если значение в последней правой ячейке не равно 0.  
Эту её функцию надо сохранить.  
Спасибо за внимание.
Помогите, пожалуйста, доработать формулу.
 
Здравствуйте, Знатоки.  
Помогите, пожалуйста, доработать формулу.  
В J введена формула, которая начиная от К из значения последней не пустой ячейки в строке вычитает среднее арифметическое в той же группе ячеек (включая К).  
Как изменить формулу, чтобы объяснить машине, что считать надо только в случае, если значение в последней не пустой НЕ равно "0"?  
Спасибо за внимание.
Почему в одном столбе не работает ВПР?
 
Уважаемые знатоки, подскажите, пожалуйста, почему в столбе N листа 01.2013 не работает ВПР?
Почему не работает макрос копирования в "скрытую" книгу?
 
Злравствуйте, знатоки. Помогите, пожалуйста в следующем вопросе.  
Есть книга Скрытая и есть книга Открытая с макросом 1, который должен копировать данные из Открытой в Закрытую. Обе на D.  
Макрос взят  на http://www.planetaexcel.ru/forum.php?thread_id=42289  от Hugo.  
 
Подскажите, пожалуйста, почему макрос не работает в данном файле? Чего не хватает?
Подскажите пожалуйста формулу суммы.
 
Здравствуйте.  
Подскажите пожалуйста формулу, которая считает сумму H2 + от K2 и до последней не пустой вправо. Результат должен писаться в I2.  
Большое спасибо за потраченное время.
Помогите, знатоки, пожалуйста, сшить НЕ большой единый макрос из фрагментов.
 
В поисках на форуме насобирал макросы. Соединил в макрос 1 (не большой). Не работает.  
Помогите, пожалуйста, сшить единый макрос. Или подскажите, может быть есть другой выход.  
Задача:  
1)скопировать лист АРХИВ и его копию назвать ВРЕМЕННЫЙ,  
2)во ВРЕМЕННЫЙ дату из G, "укоротить" на 3 первых знака,  
3)из ВРЕМЕННЫЙ разнести строки по существующим месячным листам (их в последствии будет не мерено) с удалением "старых" данных в них, начиная с строки 4,  
4)удалить ВРЕМЕННЫЙ и сохранится.  
 
Заранее благодарю.
Страницы: 1 2 3 След.
Наверх