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

Страницы: 1
Выделение диапазона ячеек по кодовому слову, Выделение диапазона ячеек по кодовому слову
 
Добрый день,

Такая проблема: имеется таблица, в которой по определенному кодовому слову в колонке нужно выделить диапазон ячеек для дальнейших действий с этим выделением. Ячейки с этим кодовым словом обычно идут по порядку в общей таблице, но могут и "убежать" в другую её часть. Поэтому по возможности хотел предусмотреть и вариант с несвязным диапазоном.
Я пока нашёл только способ выделять связный диапазон от первого найденного слова до конца таблицы, но это не то, что нужно
Код
Range(Cells.Find("Кодовое слово"), Cells(Rows.Count, 7).End(xlUp)).Select

Буду рад любой подсказке или наводке, заранее спасибо!

Во время выполнения макроса возникает окно "Свойства канала передачи данных"
 
Помогите разобраться пожалуйста.
При выполнении приложенного макроса (или похожих на него, использующих поочередное открытие файлов) после открытия последнего файла в папке появляется окно "Свойства канала передачи данных", требующего указать какой-то источник данных. При рандомном указании источника и нажатии на ОК окно закрывается и макрос прерывается. Просто мне непонятно, откуда окно и что там указывать.
Макрос делает следующую операцию - сверяет в каждом файле указанной юзером папки в указанной пользователем вкладке данные с исходным файлом. ОШибка может как возникать, так и не возникать, если для проверки выбирать разные папки.
Кто-нибудь с таким сталкивался? С чем связа
Код
Sub CHECK_DATA()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim katal As Variant
Dim CompareRange As Variant, x As Variant, y As Variant
Dim n As Long
'Dim Ofrange As Long

Dim input_sheet As String
input_sheet = InputBox("введите период(название листа) для проверки")

   katal = GetFolderPath("Укажите каталог с файлами", ThisWorkbook.Path)
If katal <> "" Then
   Dim FS, KATALOG, FILE, MASSIV As Object
   Set FS = CreateObject("Scripting.FileSystemObject")
   Set KATALOG = FS.GetFolder(katal)
   Set MASSIV = KATALOG.Files
Range("B12").Select
    n = Empty
    Do While Range("B12").Offset(1 + n) <> Empty
    
    Range("B12").Offset(1 + n, 18).Value = Range("B12").Offset(1 + n).Value & " " & Range("B12").Offset(1 + n, 3).Value
    n = n + 1
    Loop
    
   Range("B12").Select
   Set Rng = Range(Selection, Selection.End(xlDown)).Offset(0, 18) ' выбираем в сводном файле диапазон КР+запчасть для сверки
   
  ' If Rng.Cells.Count > 20000 Then Exit Sub
 
For Each FILE In MASSIV   'пробегаемся по каждому файлу из папки
    Workbooks.Open Filename:=FILE
    On Error Resume Next
 If ActiveWorkbook.Name <> "файл1.xlsm" Then

     If Sheets(input_sheet) Is Nothing Then
     GoTo lastline
     Else
       Sheets(input_sheet).Activate
 
        Range("A1:C2000").Find("Код ЗЧ", LookIn:=xlValues).Select    'цикл поиска таблицы РТВ по привязке к коду ЗЧ
        If Selection Is Nothing Then
        GoTo lastline
        Else
        
        Set CompareRange = Range(Selection, Selection.End(xlDown))

        


         For Each x In Rng
         For Each y In CompareRange
        
         y.Offset(0, 9).Value = y.Value & " " & y.Offset(0, 3).Value
        
            If x.Value = y.Offset(0, 9).Value Then x.Offset(0, -18).Interior.Color = y.Interior.Color
         Next y
        Next x
        End If
      End If
  End If
lastline:
ActiveWorkbook.Close (False)


Next FILE

    MsgBox "Готово"
Columns("T:T").Delete

Else
    MsgBox "Каталог не выбран"
End If




Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _
                     Optional ByVal InitialPath As String = "c:\", _
                     Optional ByVal FilterDescription As String = "Файлы Excel", _
                     Optional ByVal FilterExtention As String = "*.xlsm*") As String
    Dim PS As String: PS = Application.PathSeparator
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        GetFolderPath = .SelectedItems(1)
        If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
    End With
End Function


Расщепить строку на несколько, если в определенной ячейке строки значения перечислены через разделитель
 
Добрый день!

Подскажите направление мысли, как реализовать задачу:
Есть таблица заказа с множеством строк, в определенной ячейке X некоторых из них записано N артикулов деталей через разделитель: A1,A2,A3 (но может быть и просто A1, либо совсем пустое поле).
Необходимо таблицу преобразовать таким образом, чтобы одна строка с N перечисленных артикулов расщепилась на N строк с одним артикулом в каждой. При этом остальные данные со строки должны быть просто скопированы. Пример в приложении.

Если у кого-то вдруг есть наброски макросов на эту тему, буду еще больше благодарен. Не знаю даже как подступиться.
Искажение адреса гиперссылки при копировании в файл, находящийся в другой папке.
 
Добрый день,
столкнулся с проблемой - при вставлении скопированной ячейки, содержащей гиперссылку, из одной книги в другую, адрес искажается. Например, в файле1 в ячейке есть гиперссылка \\Srv-s01\file1.xls
Если эту ячейку скопировать макросом и вставить с помощью xlPasteAll в любую другую книгу(файл2) из этой же папки, то клик по вставленной в файл2 ячейке откроет указанное место в файле1. Но если файл2 находится хотя бы в подпапке \\Srv-s01\Public\file1.xls , то вставленная в файл2 гиперессылка всё равно содержит адрес \\Srv-s01\file1.xls , то есть всегда директорию запускаемого файла2 и не открывается.

Есть какое-то решение у этой проблемы? Кстати, даже если копировать ячейку вручную, гиперссылка в файле2  всё равно не открывается по той же причине.
Запись гиперссылки на лист Excel в ячейку
 
Есть макрос, пробегающий по все вкладкам файла и записывающий в контрольную ячейку (87,500)  название листа и заданный ColorIndex.
Код
For Each wsSh In ThisWorkbook.Worksheets  'пробегаемся по вкладкам
    With wsSh
        .Tab.ColorIndex = 4 ' красим ярлыки листов в зеленый
        With .Range("CI500")
            .Interior.ColorIndex = 4 ' красим зеленкой ячейку CI500
            .Value = wsSh.Name
        End With
     End With
Next

Как сделать, чтобы в .Value записывалась еще и гиперссылка на ячейку A1 этого же пробегаемого листа?
Спасибо
При попытке запуска макроса из другого файла - первичный файл зависает
 
Добрый день,
Есть файл с настроенным макросом (файл1), автоматически запускаемом при закрытии этого файла. Этот макрос проверяет незакрашенные ячейки в диапазоне, заданном относительно кодового слова "Код ЗЧ" и закрашивает ячейку (87,500) в зависимости от результата проверки диапазона. При каждом закрытии файла макрос выполняется ОК, никаких ошибок нет.

Есть файл2, который вызывает первый файл и копирует из каждой вкладки значение ячейки (87,500).

Экспериментально выяснено, что если В ПОСЛЕДНЕЙ вкладке файла1 всего одно значение для проверки, то выполнение макроса в файле2 приводит к зависанию макроса файла1. При добавления в диапазон последней вкладки файла1 второго значения ошибка пропадает и макрос файла2 выполняется до конца.

Вкладок в файле1 может быть сколько угодно, ошибается всегда на последней. Для быстроты оставил только две вкладки.
Страницы: 1
Наверх