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

Страницы: 1
Переход на новый лист по клику по ячейке
 
Добрый день!
Прошу помощи в решении следующей задачи по средствам VBA
Есть список сотрудников на Листе1, столбце A, который заполняется сотрудником
Необходимо при выделении ячейки в столбце B напротив ФИО чтобы выполнялся переход на лист "Личная карточка" со вставкой ФИО в ячейку B1 для последующего ВПР
Срез по прошлому месяцу
 
Добрый день. Прошу помочь начинающему пользователю.
Есть таблица с ежедневными показателями продаж. Данные по объему продажи в месяц отображаются  в сводной таблице. С помощью среза происходит фильтрация по месяцу и данные из сводной таблицы переносятся в ячейки К1-К3. Как решить задачу с отображением информации по объему продаж за текущий месяц и за предыдущий в ячейках L1-L3 при выборе соответствующего месяца в срезе. Пример прилагаю
Список файлов в папке, Необходима помощь в корректировке макроса
 
Добрый день!
необходима помощь в корректировке макроса для составления списка файлов, найденного на данном форме.
1. необходимо вместо выбора папки, указать путь к конкретной папке.
2. при запуске макроса необходимо обновлять перечень файлов в папке а не добавлять к списку заново
Код
Sub FileList()
    Dim V As String
    Dim BrowseFolder As String
     
    'открываем диалоговое окно выбора папки
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Выберите папку или диск"
        .Show
        On Error Resume Next
        Err.Clear
        V = .SelectedItems(1)
        If Err.Number <> 0 Then
            MsgBox "Вы ничего не выбрали!"
            Exit Sub
        End If
    End With
    BrowseFolder = CStr(V)
     
    'добавляем лист и выводим на него шапку таблицы
    ActiveWorkbook.Sheets.Add
    With Range("A1:E1")
        .Font.Bold = True
        .Font.Size = 12
    End With
    Range("A1").Value = "Имя файла"
    Range("B1").Value = "Путь"
    Range("C1").Value = "Размер"
    Range("D1").Value = "Дата создания"
    Range("E1").Value = "Дата изменения"
     
    'вызываем процедуру вывода списка файлов
    'измените True на False, если не нужно выводить файлы из вложенных папок
    ListFilesInFolder BrowseFolder, True
End Sub
 
 
Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
 
    Dim FSO As Object
    Dim SourceFolder As Object
    Dim SubFolder As Object
    Dim FileItem As Object
    Dim r As Long
 
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = FSO.getfolder(SourceFolderName)
 
    r = Range("A65536").End(xlUp).Row + 1   'находим первую пустую строку
    'выводим данные по файлу
    For Each FileItem In SourceFolder.Files
        Cells(r, 1).Formula = FileItem.Name
        Cells(r, 2).Formula = FileItem.Path
        Cells(r, 3).Formula = FileItem.Size
        Cells(r, 4).Formula = FileItem.DateCreated
        Cells(r, 5).Formula = FileItem.DateLastModified
        r = r + 1
        X = SourceFolder.Path
    Next FileItem
     
    'вызываем процедуру повторно для каждой вложенной папки
    If IncludeSubfolders Then
        For Each SubFolder In SourceFolder.SubFolders
            ListFilesInFolder SubFolder.Path, True
        Next SubFolder
    End If
 
    Columns("A:E").AutoFit
 
    Set FileItem = Nothing
    Set SourceFolder = Nothing
    Set FSO = Nothing
 
End Sub

Перенос данных из ячеек в другие ячейки макросом
 
Добрый день, уважаемые специалисты!
Вопрос заключается в следующем, никак не могу реализовать задачу:
-На листе "Сводная" заносятся данные.
- после нажатия кнопки "ДОБАВИТЬ" данные переносятся на другую страницу "Data", где после каждого последующего нажатия кнопки добавляется строка с новыми занесенными данными. Это мне удалось реализовать с помощью макроса с форума(приведен ниже)

1. Но, необходимо переносить не все столбцы, а часть из них (выделенные красным не нужно переносить), и еще в совершенно другом расположении (столбец B нужно перенести, например, в столбец E)
2. Необходимо из одной строки со значениями "значение1", "значение2", "значение3" создать по одной строке с каждым из значений
3. Если "значение4" = пусто, то не писать переносить данную строку

Пример во вложении. Конечный результат, который должен получится в итоге на листе "СВОДНАЯ ТАБЛИЦА"

Вот макрос который я использовал сейчас:
Код
Sub Procedure_1()    Const myStart As Long = 2    Dim shActive As Excel.Worksheet, shTarget As Excel.Worksheet
    Dim myFind As Excel.Range
    Dim myLastRow As Long
    Dim myArray As Variant
    
    
    Application.ScreenUpdating = False
    
    Set shActive = Sheets("data")
    Set shTarget = Sheets("Сводная")
    
    Set myFind = shTarget.Columns("B").Find(What:="?", LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
            MatchCase:=False, SearchFormat:=False)
    If myFind Is Nothing Then
       
        myLastRow = myStart
    Else
       
        myLastRow = myFind.Row + 1
    End If
    
    
    shTarget.Rows(myLastRow).Insert Shift:=xlShiftDown, CopyOrigin:=False
    
   
    shActive.Range("B2:AY2").Copy
    
    shTarget.Cells(myLastRow, "B").PasteSpecial Paste:=xlPasteValues
    
    Application.CutCopyMode = False
   
    If myLastRow <> myStart Then
        Set myFind = shTarget.Range("B" & myStart & ":B" & myLastRow - 1).Find( _
            What:=CStr(shActive.Range("B2").Value), _
            LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
            SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=False)
        If Not myFind Is Nothing Then
           
            myArray = Split(CStr(myFind.Value), " ")
            If IsNumeric(myArray(UBound(myArray))) Then
       
                shTarget.Cells(myLastRow, "B").Value = _
                    shTarget.Cells(myLastRow, "B").Value & " " & myArray(UBound(myArray)) + 1
            Else
               
                myFind.Value = myFind.Value & " " & "1"
                shTarget.Cells(myLastRow, "B").Value = _
                    shTarget.Cells(myLastRow, "B").Value & " " & 2
            End If
        End If
    End If
    
  
    Application.ScreenUpdating = TrueEnd Sub


Изменено: Agn89 - 18.10.2017 08:51:21
не корректно работает макрос по сохранению в PDF
 

Добрый день, уважаемые знатоки!
проблема заключается в следующем:
Наконец-то завершил работу над т.н "Базой данных" (при помощи вашего замечательного форума) в которой на листе "текущие объекты" заносятся данные о строящихся объектах и подрядных организациях а в последующем, данная база просматривается с листа "Учетная карта" и формируется бланк в формате PDF со страницы "Карта" с именем ячейки "СВ1" со страницы "карта" и подстановкой даты и времени(чтобы постоянной формировался новый файл pdf, с новым именем). Для сохранения в пдф, используется макрос:

Код
Sub pdf()
'
' pdf Макрос
''
    Sheets("карта").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\123\" & Range("CB1 ").Value & "_" & Left(Now, 13) & "_" & Mid(Now, 15, 2) & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, From:=1, To:=2, OpenAfterPublish:=True
End Sub


Подскажите, в чем может быть ошибка, если при формировании пдф файла до 10:00 утра, вылетает ошибка? Подозреваю, что число указывающее часы почему-то должно быть двузначным.

Или как изменить макрос, чтобы вместо времени, к имени файла добавлялось (1) (2) (3)...и.т.д.
Изменено: Agn89 - 04.09.2017 15:36:59
Не работают гиперссылки при использовании ВПР
 
Добрый день! Прошу помощи в следующем вопросе:
Имеется таблица с данными о объектах строительства (подрядчик, телефоны и.т.д) с гиперссылками на сканы документов. Объектов много и данных тоже(в примере сократил)
Для удобства просмотра создан второй лист где из списка выбираем объект и получаем необходимые данные....
Но функция ВПР показывает только соответствующие данные, без рабочих гиперссылок. На форумах прочитал, что можно по формуле: ГИПЕРССЫЛКА(ВПР(...)), НО ОНА НЕ РАБОТАЕТ.(пишет "не удается открыть указанный файл"
Может быть, подскажете иное решение данной задачи...

Господа, ГУРУ екселя, помогите пожалуйста! Пример прилагается ("Лист 1" С15 нужно открыть гиперссылку с "Текущие объекты" D3)
Страницы: 1
Наверх