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

Страницы: 1 2 3 След.
Типы файлов для сохранения книги макросом, Типы файлов для сохранения книги
 
lextoys,  спасибо огромное!!!
Типы файлов для сохранения книги макросом, Типы файлов для сохранения книги
 
Всем доброго времени суток!
стоит задача сохранения книги Excel в расширение *.ods
Подскажите как реализовать через макрос?
не знаю для данного формата какое значение использовать для параметра FileFormat

  • XLSX = 51
  • XLSM = 52
  • XLSB = 50
  • XLS = 56
  • TXT = 42
  • ODS = ???
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, хорошо, что вы это поняли, хоть и с моей помощью  ;)  
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, Нельзя быть таким душным. Прочтите вашу цитату: "Даже самый простой вопрос можно превратить в огромную проблему" - это, походу, прям про вас...
Развернули на 2 листа обсуждения, а ответ на поверхности был.
И не нужно писать, что я не так изъяснил суть вопроса - изложил я все без излишеств.
В общем не обижайтесь, на правду не обижаются
Ссылка в макросе на другой лист из текущей книги
 
New, спасибо. буду изучать
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, все, это то, что и нужно было
"& ThisWorkbook.Worksheets("Лист1").Range("B10").Value &"

как написано - ссылка на другой лист - так и сделали, наконец-то, без всяких FileFormat и прочей шляпы...

Спасибо вам огромное!
Ссылка в макросе на другой лист из текущей книги
 
New, да файл я еще 2 часа назад прикрепил...
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, не работает ваша предложенная строка, объясню почему:
для чего я прислал образец файла ? - макрос запускается с кнопки со второго листа под наименованием "НД", именно поэтому и нужна ссылка для макроса на Лист1!!!
В таком случае опять выдает ошибку.

Если же перейти в "Лист1"  и выполнить данный макрос - то он, конечно , выполнится, но во-первых: это мне не нужно ,а в во-вторых, если я уже нахожусь на "Лист1" - зачем мне ссылки делать? я бы оставил "B10" и все.


Если вы действительно хотите помочь - прошу, откройте файл примера и запустите макрос с кнопке на листе "НД".
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, вот
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, Наименование - любое слово, например "Колесо".
не будет никаких символов, спецзнаков и тд. обычное слово.
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, файл примера (работающий без ссылки на Лист1) прикладываю
Ссылка в макросе на другой лист из текущей книги
 
Дмитрий(The_Prist) Щербаков, при сохранении в xlsx работает без FileFormat, если менять на xlsm - то нужно указывать FileFormat.
Но, повторяю третий раз, книга должна сохраняться в xlsx, нужно только поменять ссылку, все, не более.

Имена листов проверял, даже переименовывал, чтобы исключить ошибку.
просто останавливается макрос с выделением данной строки желтым цветом.
Ссылка в макросе на другой лист из текущей книги
 
Ігор Гончаренко, вот так?
Код
ActiveWorkbook.SaveAs path & Application.PathSeparator & ActiveSheet.Name & " " & Worksheets("Лист1").Range("B10") & ".xlsx"
Ссылка в макросе на другой лист из текущей книги
 
Роман Петров, смотрите:
есть книга в формате *.xlsb , в которой данный макрос с сохранением отдельного листа в файл с разрешением *.xlsx
формат *.xlsb поддерживает макросы,у меня их там целый десяток и все работают
в книгу, которая формируется и сохраняется данным макросом - не нужно менять разрешение, это ни к чему.

но при замене "& Range("B10") &" на "& Sheets("Лист1").Range("B10") &" - макрос не запускается, выделяя строку желтым.
Если оставить "& Range("B10") &" - все работает, но име не то, которое я хочу присвоить файлу
Ссылка в макросе на другой лист из текущей книги
 
Роман Петров, у меня книга в двоичном формате xlsb, макрос работает, нужно только ссылку привязать к другому листу
Ссылка в макросе на другой лист из текущей книги
 
Роман Петров, ошибка, выделяет строку желтым цветом
Ссылка в макросе на другой лист из текущей книги
 
Добрый день!
Подскажите, как сделать ссылку в макросе на другой лист из текущей книги :
Код
  ActiveWorkbook.SaveAs path & Application.PathSeparator & ActiveSheet.Name & " " & Range("B10") & ".xlsx"

Вместо ячейки "B10" нужно указать "Лист1, ячейка B10"
Изменено: HYPNO - 22.11.2022 11:16:50
Суперскрыть / показать лист кнопкой
 
Jack Famous, благодарю!
Суперскрыть / показать лист кнопкой
 
_Boroda_, суперскрытые листы показывает макрос, но скрывает их по-обычному (не супер)
Суперскрыть / показать лист кнопкой
 
_Boroda_, спасибо)  
Суперскрыть / показать лист кнопкой
 
Хочу сделать одну кнопку (скругленный прямоугольник), со следующим функционалом:
При нажатии - показывается суперскрытый лист, если он виден - то скрывается.
При этом на кнопке будет изменяться текст.

Название фигуре (скругленному прямоугольнику) присвоил "кн_сводка"
Лист, с которым проводятся операции скрыть/показать - "Сводка"

Подскажите в чем ошибка?
Код
Sub Показать_скрыть_Сводка()
Application.ScreenUpdating = False

    If ActiveWorkbook.Worksheets("Сводка").Visible = xlSheetHidden Then                                           
        ActiveWorkbook.Worksheets("Сводка").Visible = xlSheetVisible                                              
        ActiveSheet.DrawingObjects("кн_сводка").Characters.Text = "Текст1"
    Else
        ActiveWorkbook.Worksheets("Сводка").Visible = xlSheetVisible                                                 
        ActiveSheet.DrawingObjects("кн_сводка").Characters.Text = "Текст2"
    
    End If

End Sub
Оптимизация макроса копирования из таблицы в отдельные ячейки разных листов
 
Ігор Гончаренко, благодарю за помощь!
Пробный период для Книги Excel, защитить книгу паролем по условию
 
Добрый день!
Скажите, как сделать пробный период для книги Excel ?

Идея следующая:
Есть шаблонный документ, который используется для определенных расчетов.
Если в ячейку А1 (условно) ввести цифру, отличную от "0.00" (это как тригер запуска таймера), то, скрытно, запускается таймер пробного периода пользования документом с периодом неделя или месяц.

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

При вводе кода - книгой можно пользоваться неограниченное кол-во времени.

p.s.
Сейчас такое время, что на работе "используют" твои наработки и формы, выдавая их за свои...эта защита помогла бы такое избежать.
Оптимизация макроса копирования из таблицы в отдельные ячейки разных листов
 
Ігор Гончаренко, правильно ли я понимаю, что в момент заполнения все листы, которые находятся правее листа с исходными данными - удаляются, а потом создаются и заполняются новые?
Оптимизация макроса копирования из таблицы в отдельные ячейки разных листов
 
New, ,буду знать, спасибо за подсказку. Я не гуру форумов...
Оптимизация макроса копирования из таблицы в отдельные ячейки разных листов
 
Цитата
Ігор Гончаренко написал:
1. нужно придумать какими будут имена листов и чуть поправить макрос и обращаться к листам не по номеру, а по имени
и фрагмент, который добавляет новые листы нужно исправить делать копию с "правильного листа" а не со второго, и добавленному листу присвоить "правильное имя" согласно принятого алгоритма наименования листов
2. это вообще элементарно в строке 4 макроса заменить With Worksheets(1) на With Worksheets("Сводка")
Игорь, добрый день!
Будьте добры помочь по вашему макросу:
   1) Нужно добавить условие, чтобы копирование производилось только в листы с названием "см.1", "см.2", ..., "см.100".
другими словами - между листами куда копируем данные - будут находиться еще листы, в которые не должно происходить копирование
   2) Лист с исходными данными может быть не первый по очереди, обращался к нему через имя - With Worksheets(1) на With Worksheets("Сводка"), но результат не получил, копирование начинается все равно со второго листа по счету

Код
Option Explicit

Sub EstimateFill()
  Dim a, adr$, b, c&, cc&, m, r&, rc&, re, s$, ws1 As Worksheet
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "[A-Z]+:*[A-Z]*"
  With Worksheets("Сводка")
    rc = .Cells(Rows.Count, 1).End(xlUp).Row: Set ws1 = .[a1].Parent
    cc = .Cells(Rows.Count, 3).End(xlUp).Row: a = .[a1].CurrentRegion
  End With
  For c = 3 To cc
  If c - 1 > Worksheets.Count Then Worksheets(2).Copy after:=Worksheets(Worksheets.Count)
  With Worksheets(c - 1)
    For r = 2 To rc
      Set m = re.Execute(a(r, 1))(0)
      If InStr(m, ":") Then adr = Replace(m, ":", c & ":") & c Else adr = m & c
      b = ws1.Range(adr)
      If InStr(adr, ":") Then
        .Range(a(r, 2)).Resize(UBound(b), UBound(b, 2)) = b
      Else
        .Range(a(r, 2)) = Replace(a(r, 1), m, b)
      End If
    Next
  End With
  Next
  MsgBox "Заполнено смет: " & cc - 2 & " шт.", , "Готово!"
End Sub
Изменено: Maxim - 08.09.2022 16:13:23
Медленно работает макрос подбора и подстановки значений
 
Цитата
Msi2102 написал:
Цитата
Maxim написал:
то чем вас не устраивают мои манеры?!
Не понятна ваша агрессия. Вам дали совет:
Цитата
Jack Famous написал:
Для поиска или выполнения иных агрегаций "по ключу" наиболее уместно использовать словари
, Вы вполне можете им воспользоваться и решить Вашу проблему, а то, что он не захотел скачивать файл это его право. Собственно, я тоже не всегда скачиваю файл если не понятно объяснение и в описании отсутствует код. Если код есть, сразу понятно, сможешь помочь или нет, стоит скачивать файл и подумать над решением ВАШЕЙ задачи или не стоит. К тому же, вот так помогаешь людям, а тебя в ответ деградантом называют, кому это будет приятно. Я думаю, что дальнейшая полемика ни к чему не приведёт, поэтому желаю Вам найти решение Вашей задачи. Удачи.
И ещё, у Вас требуется комплексное решение задач, а это в платную ветку.
С чего вы взяли, что я это сказал с агрессией?!
Если Вы и Ваш коллега такие чувствительные натуры, извиняться не собираюсь.
Пишите друг дружке что вам лень делать и не мешайте своей перепиской (это я сейчас про Вас) другим пользователям форума, для этого есть флудилка.
Посыл простой - в любой ситуации нужно оставаться человеком и уважительно общаться с окружающими.
Про платную ветку понял, спасибо, готовлю ТЗ.
Доброго Вам дня!
Медленно работает макрос подбора и подстановки значений
 
Цитата
Msi2102 написал:
Цитата
Maxim написал:
но ластиться перед хамами не собираюсь, потому что, в первую очередь, я уважаю себя и за словом в карман не полезу.
А что хамского Вы увидели в ответе Jack Famous, он даже Вам советы давал. А  ТУТ  Вы его даже благодарили
Если ничего не видите - то чем вас не устраивают мои манеры?!
По поводу благодарности - "Даже вам советы давал" и "Даже благодарили" - на человеческие ответы - искренняя благодарность. Это не отменяет те факты, которые я ранее написал.
Медленно работает макрос подбора и подстановки значений
 
Цитата
Msi2102 написал:
Цитата
Maxim написал:
Если нет желания - тогда вообще не пишите. Ленивый человек - деградирующий человек
Ух ты, не плохая манера просить о помощи.
Попросил о помощи я нормально, но ластиться перед хамами не собираюсь, потому что, в первую очередь, я уважаю себя и за словом в карман не полезу.
Медленно работает макрос подбора и подстановки значений
 
Цитата
New написал:
Jack Famous, я помогу тебе. Выкладываю код из файла ТС, который записан в файле в модуле листа Спецификация. В файле 2 листе "СВОД" и "Спецификация"

Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30      Private   Sub   Worksheet_Change(  ByVal   Target   As   Range)          Dim   SVOD   As   Object  , Spec   As   Object  , LastRow_s&amp;, LastRow_d&amp;, r&amp;, i&amp;             If   Target.Address =   "$F$3"   And   Target.Text <>   ""   Then              Set   SVOD = ThisWorkbook.Sheets(  "СВОД"  )              Set   Spec = ThisWorkbook.Sheets(  "Спецификация"  )                           LastRow_s = Spec.Range(  "E"   &amp; Rows.Count).  End  (xlUp).Row              Spec.Range(  "B5:H5"  ).ClearContents                      'Очищаем спецификацию              If   LastRow_s > 8   Then   Spec.Range(  "A6:A"   &amp; LastRow_s - 3).EntireRow.Delete   ' 8 - количество столбцов спецификации ?!                           LastRow_d = SVOD.Range(  "ah"   &amp; Rows.Count).  End  (xlUp).Row    'Выбираем столбец из вкладки Свод (товарная группа), по которой будет вестись сопоставление              r = 1              For   i = 4   To   LastRow_d                  If   SVOD.Range(  "ah"   &amp; i) = Spec.Range(  "F3"  )   Then        'AH - адрес товарной группы, если наименование товарной группы совпадает с названием спецификации, то:                      If   r > 1   Then   Rows(r + 4).Insert Shift:=xlUp: Spec.Range(  "A"   &amp; r + 3 &amp;   ":H"   &amp; r + 3).Copy: Spec.Range(  "A"   &amp; r + 4 &amp;   ":H"   &amp; r + 4).PasteSpecial Paste:=xlPasteFormats                      Spec.Range(  "A"   &amp; r + 4) = r                        'Пропускаем 4 строки шапки перед вставкой позиций (порядковый номер)                      Spec.Range(  "B"   &amp; r + 4) = SVOD.Range(  "h"   &amp; i)      ' "B" - куда вставляем "r+4" - пропуск 4 строк шапки / "B" - откуда вставляем "i" вставка последующих позиций                      Spec.Range(  "C"   &amp; r + 4) = SVOD.Range(  "i"   &amp; i)                      Spec.Range(  "D"   &amp; r + 4) = SVOD.Range(  "ar"   &amp; i)                      Spec.Range(  "E"   &amp; r + 4) = SVOD.Range(  "k"   &amp; i)                      Spec.Range(  "F"   &amp; r + 4) = SVOD.Range(  "at"   &amp; i)                      Spec.Range(  "G"   &amp; r + 4) = SVOD.Range(  "y"   &amp; i)                      Spec.Range(  "H"   &amp; r + 4) = SVOD.Range(  "z"   &amp; i)                      r = r + 1                  End   If              Next   i          End   If          Application.ScreenUpdating =   False    End   Sub   
 

Спасибо за помощь, мне не сложно было бы сюда добавить код, если бы знал, что это удобно.
Обычно все просят файл с примером. Всем не угодишь
Страницы: 1 2 3 След.
Наверх