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

Страницы: 1 2 3 4 5 6 7 8 9 10 След.
Сохранение объектов из выделенной области.
 
DANIKOLA, спасибо
Сохранение объектов из выделенной области.
 
БМВ,  ту часть, которая видима в диапазоне.

Там же в примере - как раз так и происходит - в картинку попадает не весь шейп целиком, а только та его часть которая входит в диапазон.
Изменено: visors16 - 17.03.2024 12:58:18
Сохранение объектов из выделенной области.
 
Цитата
написал:
каддый отдельно или все?
Все  
Сохранение объектов из выделенной области.
 
Здравствуйте.
Помогите.

Есть макрос, который конкретные, строго определенные диапазоны (вместе с шейпами) - сохраняет как jpg - в строго определенную папку.

Как изменить этот макрос, чтобы он сохранял только шейпы - в выделенной курсором произвольной области - рядом с той книгой, в которой эта область выделена ?
Как провести разгруппирование тех объектов, которые входят в выделенный диапазон.
 
БМВ, Спасибо
Как провести разгруппирование тех объектов, которые входят в выделенный диапазон.
 
Здравствуйте, дорогие друзья.
Помогите.

У меня такой вопрос.
На листе много шейпов. Некоторые из них сгруппированы.
Как выделив диапазон ячеек - разгруппировать те группы (или группу) шейпов, которые полностью входят в этот выделенный диапазон ?
Замена текстовой последовательности на шейпы.
 
testuser, Спасибо.
Все работает
Замена текстовой последовательности на шейпы.
 
testuser, ясно.
А как это макросом можно сделать ?
Замена текстовой последовательности на шейпы.
 
Цитата
написал:
текстS,словоN3-текстN,словоS-текстN,словоN
Тут тоже - для каждого из этих сочетаний в таблице есть своя фигура
Фигура1текстSсловоN
Фигура9текстNсловоS
Фигура8текстNсловоN
Замена текстовой последовательности на шейпы.
 
Цитата
написал:
нужна последовательность "текG словоJ" (судя по таблице), но ее нету в этой строке
Почему нет ?
Вот она - во втором текстовом блоке:
текстS,словоL-текG,словоJ-текстS,словоY2-текстN,словоL

По таблице - это фигура 17.
Но даже если нет в таблице такого сочетания, то можно в этом месте ничего не ставить.
Изменено: visors16 - 17.02.2024 18:43:13
Замена текстовой последовательности на шейпы.
 
Здравствуйте, товарищи.
Помогите с непростым вопросом.

В столбце D есть текстовая формула (это просто текст, разделенный дефисами).
Каждый текст - учтен в таблице. В зависимости от того - какой это текст - на его замену подбирается тот или иной шейп.

В общем эту текстовую последовательность - нужно представить в виде шейпов, разделенных шейпами в виде плюса.
Если в конце текстовой записи - идет число, то его нужно разместить над шейпом.

Как макросом провести такую замену (текста на шейпы) ?
Изменено: visors16 - 17.02.2024 14:00:35
Использование макросом словаря в виде столбца адресов файлов.
 
В общем всем спасибо за ответы.
Я так понял - еще быстрее уже не сделать.
Использование макросом словаря в виде столбца адресов файлов.
 
testuser, Спасибо.
Использование макросом словаря в виде столбца адресов файлов.
 
testuser,  у меня 2016х64
Использование макросом словаря в виде столбца адресов файлов.
 
Цитата
написал:
В этой.
В какой этой ?
Подскажите, где именно в этом коде - нужно поставить Stop  ?
Изменено: visors16 - 09.02.2024 07:50:48
Использование макросом словаря в виде столбца адресов файлов.
 
Цитата
написал:
ставите оператор Stop в начале процедуры - должно работать
Понятно.
Вы можете в имеющемся коде - поставить этот Stop ?

Я просто не знаю о какой процедуре идет речь.
Код
Dim sl



Sub Расстановка_иконок()
t = Timer
Application.ScreenUpdating = False
ОчисткаТаблицы

    Dim R, lr, k, pat, I, f
    Dim m() As Variant
   
    Dim myPic As Shape
    Dim FSO As Object
    'Set FSO = CreateObject("Scripting.FileSystemObject")
    Set sl = CreateObject("Scripting.Dictionary")
    Set sl2 = CreateObject("Scripting.Dictionary")
    Search2 ActiveWorkbook.Path
    k = sl.keys
  
    Set D = ActiveSheet.Range("H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AQ:AQ,AT:AT,AW:AW,AZ:AZ,BD:BD,BH:BH")
    Set D = Intersect(D, Range("13:54")).SpecialCells(xlCellTypeConstants)
    For Each cell In D
    If cell <> "" Then
    Lcell = LCase(cell)
    If sl2.Exists(Lcell) Then
        If sl2(Lcell) > 0 Then
            ActiveSheet.Shapes(sl2(Lcell)).Duplicate
            With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
                .Top = cell.Offset(0, -1).Top + 1
                .Left = cell.Offset(0, -1).Left + 1
                .Width = cell.Offset(0, -1).Width - 2
                .Height = cell.Offset(0, -1).Height * 3 - 2
            End With
        End If
        Else
            If sl.Exists(Lcell) Then
                Set myPic = ActiveSheet.Shapes.AddPicture( _
                    Filename:=sl(Lcell), _
                    linktofile:=msoFalse, _
                    savewithdocument:=msoCTrue, _
                    Left:=cell.Offset(0, -1).Left + 1, _
                    Top:=cell.Offset(0, -1).Top + 1, _
                    Width:=cell.Offset(0, -1).Width - 2, _
                    Height:=cell.Offset(0, -1).Height * 3 - 2)
                myPic.LockAspectRatio = msoFalse
            sl2(Lcell) = ActiveSheet.Shapes.Count
            End If
        End If
        End If
    Next
'    For Each PicName In k
'        'With d
'        Set m_rnFind = D.Find(What:=PicName, LookAt:=xlWhole, MatchCase:=False)
'        If Not m_rnFind Is Nothing Then
'            m_stAddress = m_rnFind.Address
'            'Hide the column, and then find the next X.
'             With m_rnFind
'                Set myPic = ActiveSheet.Shapes.AddPicture( _
'                                Filename:=sl(PicName), _
'                                linktofile:=msoFalse, _
'                                savewithdocument:=msoCTrue, _
'                                Left:=.Offset(0, -1).Left + 1, _
'                                Top:=.Offset(0, -1).Top + 1, _
'                                Width:=.Offset(0, -1).Width - 2, _
'                                Height:=.Offset(0, -1).Height * 3 - 2)
'                myPic.LockAspectRatio = msoFalse
'              End With
'
'              ' [-]
'              ' ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Copy
'              '
'            Do
'                If m_rnFind.Address <> m_stAddress Then
'
'                    ' [-]
'                    'ActiveSheet.Paste
'                    '
'                    ' [+]
'                    myPic.Duplicate
'                    '
'
'                    With ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
'                        .Top = m_rnFind.Offset(0, -1).Top + 1
'                        .Left = m_rnFind.Offset(0, -1).Left + 1
'                        .Width = m_rnFind.Offset(0, -1).Width - 2
'                        .Height = m_rnFind.Offset(0, -1).Height * 3 - 2
'                    End With
'                End If
'                Set m_rnFind = D.FindNext(m_rnFind)
'                On Error Resume Next
'            Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
'        End If
'        Next
    
Range("A1").Select
Application.ScreenUpdating = True
Debug.Print Timer - t
End Sub


 Function Search2(Fold As String)  
 Dim SubFold As Object, Fil As Object, FSO As Object
    Set objShellApp = CreateObject("Shell.Application")
    Set FSO = CreateObject("Scripting.FileSystemObject")

   Set objFolder = objShellApp.Namespace(Fold & "\")
   Set objFolderItems = objFolder.Items()
   objFolderItems.Filter 64, "*.png;*.jpg"
   For Each Fil In objFolderItems
     sl(LCase(FSO.Getbasename(Fil.Path))) = Fil.Path
   Next
   objFolderItems.Filter 32, "*"
   For Each SubFold In objFolderItems
     Search2 SubFold.Path
   Next SubFold
End Function


Sub ОчисткаТаблицы()  
    Dim pic As Shape
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    For Each pic In ActiveSheet.Shapes
        If pic.Type = msoPicture Then
            If Not Application.Intersect(pic.TopLeftCell, Range("G13:BI54")) Is Nothing Then
                pic.Delete
            End If
        End If
    Next pic
    Application.ScreenUpdating = True
End Sub
Использование макросом словаря в виде столбца адресов файлов.
 
Цитата
написал:
запускаемых с кнопки - одно время, запускаемых из модуля - другое, в 5 р. быстрее
Вот мне - можно то, которое в 5 раз быстрее ?
Использование макросом словаря в виде столбца адресов файлов.
 
БМВ, спасибо.
А как еще больше ускорить работу макроса ?

Неужели использование словаря не увеличит скорость работы ?
Ведь макрос не будет тратить время на поиск нужных картинок (особенно если их много), а мгновенно просмотрит столбец с адресами и разместит картинки в ячейках.
Изменено: visors16 - 08.02.2024 03:12:35
Использование макросом словаря в виде столбца адресов файлов.
 
andypetr, спасибо.
Теперь быстрее работать стал.

Только непонятно - как макросом заполнить желтый столбец ?
(это я имею ввиду кнопку "заполнение словаря")
Использование макросом словаря в виде столбца адресов файлов.
 
БМВ, понятно. Спасибо за ответ.

Помогите изменить макрос - как вы описали.
Использование макросом словаря в виде столбца адресов файлов.
 
БМВ, Ясно.
Я провел замер. Вижу, что немного этот макрос подтормаживает.
Вот ищу способы со словарем в желтом столбце - как-то его сделать. Может побыстрее будет работать.
Использование макросом словаря в виде столбца адресов файлов.
 
andypetr, понятно.
Как макрос будет выглядеть с вашим кодом ?
Использование макросом словаря в виде столбца адресов файлов.
 
Здравствуйте, друзья.

Помогите поправить макрос.
Макрос сейчас расстанавливает иконки по листу, но мне кажется, что делает он это медленно.

Как заставить макрос использовать "словарь" в виде столбца адресов файлов ?
(Чтобы он не просматривал все названия файлов при каждом нажатии на кнопку, а смотрел уже в готовые адреса, выписанные в желтый столбец).
Мне кажется, что так он быстрее будет расставлять иконки.
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
В общем все, разобрался.
Переменные просто объявил.
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
БМВ, в общем там суть такая что в другой книге - сверху стоит строка:
Option Explicit
Если ее закомментировать - то макрос будет работать нормально.

Но я ее - не могу закомментировать - иначе другие макросы на листе - работать не будут.
Как в данном макросе - объявить переменную "D" - внутри кода (чтобы не трогать Option Explicit)?
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
БМВ, ну так а что тут пояснять ?
Макрос работает хорошо, как нужно - в той книге в которой он сейчас размещен.

Но стоит его перенести в другую книгу и поменять название листа - то он прекращает работать (определять переменную D) и выдает ошибку:
Compile error: Variable not defined
И подсвечивает букву "D =" в строке :
Set D = ActiveSheet.Range("H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AQ:AQ,AT:AT,AW:AW,AZ:AZ,BD:BD,BH:BH")

То есть я так понял, что он ругается на переменную D
Может ее задать как-то в начале макроса (например  Dim D As Long, или как-то по другому - чтобы макрос определял переменную) ?
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
БМВ, ясно.
Как же изменить макрос, чтобы он не выдавал такой ошибки ?
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
Перенес лист в другую книгу.
И почему-то при запуске макрос теперь выдает ошибку.

Пишет:  Compile error: Variable not defined
И подсвечивает букву "D =" в строке :
Set D = ActiveSheet.Range("H:H,L:L,P:P,T:T,X:X,AB:AB,AF:AF,AJ:AJ,AN:AN,AQ:AQ,AT:AT,AW:AW,AZ:AZ,BD:BD,BH:BH")

С чем это может быть связано и как эту ошибку обойти?
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
БМВ, Спасибо.
Вот теперь - все заработало.
Как изменить поисковой диапазон макроса с одного большого до нескольких небольших.
 
БМВ, Спасибо.
Работает, но неточно.

Для ячейки с текстом -  "запись20" макрос расставляет 2 иконки (хотя нет картинки с таким названием и напротив этой ячейки ничего не надо было ставить)
Макрос ставит напротив этой ячейки - сразу две картинки "запись2.png" и "запись.png".

Та же ситуация с текстом "номер4". Тоже ставит две картинки в одну ячейку (номер4.png и номер.png)
Страницы: 1 2 3 4 5 6 7 8 9 10 След.
Наверх