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

Страницы: 1
Изменение типа штриховки автофигуры (значение Patterned)
 
Mershik СПАСИБО
Изменение типа штриховки автофигуры (значение Patterned)
 
Нужно рандомно менять макросом штриховку фигуры. Не получается менять Patterned.
Изменено: sersheremet - 17.04.2021 18:54:20
Построение графиков движения автомобилей на разных видах маршрутов
 
Работаю с Ігор Гончаренко
Добавить на гистограмму сбоку от столбцов значения в процентах
 
Цитата
Скарамуш написал:
чем он отличается от того, что я уже сделал?
тем что он не "вручную написан", а сам все подставляет из исходных данных
Добавить на гистограмму сбоку от столбцов значения в процентах
 
Почему один? Файл Книга1 (1).xlsx
Изменено: sersheremet - 12.06.2020 17:28:49
Добавить на гистограмму сбоку от столбцов значения в процентах
 
Готово (два варианта)
Изменено: sersheremet - 12.06.2020 16:56:21
Добавить на гистограмму сбоку от столбцов значения в процентах
 
Приложите файл (хотя бы фрагмент). Тогда попробую добавить.
Построение графиков движения автомобилей на разных видах маршрутов
 
Может кто автоматизирует построение таких графиков. Цена вопроса 3300 руб
В файле пример картинками из-за этого размер 1Мб и сюда не вставляется.
Ссылка:
https://drive.google.com/file/d/1n6yAGLu8B0gHNiyRzPIO3zakjLQX_CGd/view?usp=sharing
На точечную диаграмму с отрезками добавить длину каждого отрезка
 
Есть точечная диаграмма с отрезками, нужно на нее добавить длину каждого отрезка (есть математически посчитанные результаты по координатам). Можно как то нанести эту длину? Спасибо.

Сам решил. может кому пригодится.
Изменено: sersheremet - 09.06.2020 11:40:06
[ Закрыто] Сократить код., Не знаю как сократить код
 
buchlotnik спасибо большое! Попробую.
[ Закрыто] Сократить код., Не знаю как сократить код
 
Вот полный код: (Оставил по 10 закладок из 1000 потому что много символов не вставляется )

Код
Private Sub CommandButton1_Click()
 ' проверка наличия папки и вывод сообщения при ее отсутствии
 If Len(Dir(Sheets("1").Cells(3, 1), vbDirectory)) = 0 Then MsgBox ("                                           Ошибка" & Chr(13) & "Папка не найдена.")         'MkDir Sheets("1").Cells(3, 1)
 If Len(Dir(Sheets("1").Cells(3, 1), vbDirectory)) = 0 Then GoTo Stopp:

'проверка наличия шаблона  и вывод сообщения при его отсутствии
If Len(Dir$(Sheets("1").Cells(1, 1))) > 0 Then
Else: MsgBox ("                                          Помилка!" & Chr(13) & "Шаблон не найден!" & Chr(13) & "                                     Шаблон.")
End If
If Len(Dir$(Sheets("1").Cells(1, 1))) > 0 Then
Else: GoTo Stopp:
End If

    
    Dim WordApp As Object
    'Здесь нужно указать имя закладки, которая находится в шаблоне Word.
    'В эту закладку будет вставляться текст из книги Excel.
    Const sBookmark_1 As String = "Закладка_1"
    Const sBookmark_2 As String = "Закладка_2"
    Const sBookmark_3 As String = "Закладка_3"
    Const sBookmark_4 As String = "Закладка_4"
    Const sBookmark_5 As String = "Закладка_5"
    Const sBookmark_6 As String = "Закладка_6"
    Const sBookmark_7 As String = "Закладка_7"
    Const sBookmark_8 As String = "Закладка_8"
    Const sBookmark_9 As String = "Закладка_9"
    Const sBookmark_10 As String = "Закладка_10"
   
    
          If WordApp Is Nothing Then
          Set WordApp = CreateObject("word.application")
          End If
              
          ' проверка наличия файла и удаление его при наличии
          Dim strFileName As String
          Dim strFileTitle As String
          strFileTitle = "Записка_" & Sheets("1").Cells(2, 2) & "_" & Sheets("1").Cells(2, 1) & ".docx"
          strFileName = Sheets("1").Cells(3, 1) & "Записка_" & Sheets("1").Cells(2, 2) & "_" & Sheets("1").Cells(2, 1) & ".docx"
          If Dir(strFileName) <> "" Then
          Kill Sheets("1").Cells(3, 1) & "Записка_" & Sheets("1").Cells(2, 2) & "_" & Sheets("1").Cells(2, 1) & ".docx"
          Else
          End If
                                                                                
          Dim sFileName As String, sNewFileName As String
          ' указываем шаблон и копируем его
          sFileName = Sheets("1").Cells(1, 1)
          sNewFileName = Sheets("1").Cells(3, 1) & "Записка_" & Sheets("1").Cells(2, 2) & "_" & Sheets("1").Cells(2, 1) & ".docx"   ' "C:\1\"
          FileCopy sFileName, sNewFileName
                                
  With WordApp
      .Visible = False
      .Documents.Open Filename:=Sheets("1").Cells(3, 1) & "Записка_" & Sheets("1").Cells(2, 2) & "_" & Sheets("1").Cells(2, 1) & ".docx"
  End With
       
    'Вставка текста в закладку.
   s = 4 'Берем информацию из 4 строки (1)
   WordApp.ActiveDocument.Bookmarks(sBookmark_1).Range.Text = Sheets("1").Cells(s, 4)
   WordApp.ActiveDocument.Bookmarks(sBookmark_2).Range.Text = Sheets("1").Cells(s, 5)
   WordApp.ActiveDocument.Bookmarks(sBookmark_3).Range.Text = Sheets("1").Cells(s, 6)
   WordApp.ActiveDocument.Bookmarks(sBookmark_4).Range.Text = Sheets("1").Cells(s, 7)
   WordApp.ActiveDocument.Bookmarks(sBookmark_5).Range.Text = Sheets("1").Cells(s, 8)
   WordApp.ActiveDocument.Bookmarks(sBookmark_6).Range.Text = Sheets("1").Cells(s, 9)
   WordApp.ActiveDocument.Bookmarks(sBookmark_7).Range.Text = Sheets("1").Cells(s, 10)
   WordApp.ActiveDocument.Bookmarks(sBookmark_8).Range.Text = Sheets("1").Cells(s, 11)
   WordApp.ActiveDocument.Bookmarks(sBookmark_9).Range.Text = Sheets("1").Cells(s, 12)
   WordApp.ActiveDocument.Bookmarks(sBookmark_10).Range.Text = Sheets("1").Cells(s, 13)
 
    'Удаление закладок
    WordApp.ActiveDocument.Bookmarks(sBookmark_1).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_2).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_3).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_4).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_5).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_6).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_7).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_8).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_9).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_10).Delete
  
        'Закрываем новый документ с сохранением.
   WordApp.ActiveDocument.Close SaveChanges:=-1
    'закрываем приложение Word
   WordApp.Quit
   Set WordApp = Nothing
Stopp:
End Sub

Private Sub CommandButton2_Click()
UserForm5.Hide
UserForm1.Show
End Sub


' Макрос запуска функции (находится ниже) для указания адреса шаблона
Private Sub CommandButton3_Click()
    Filename$ = GetFilePath()
     If Filename$ = "" Then Exit Sub
     Sheets("1").Cells(1, 1) = Filename     ' имя выбраного файла шаблона АТЛ пишется в лист1 яч.1.1
   Label2.Caption = Sheets("1").Cells(1, 1)
   Label2.ForeColor = RGB(255, 0, 0)
     MsgBox "Вибраний файл: " & Filename$

     End Sub
' Функция для указания адреса шаблона
Function GetFilePath(Optional ByVal Title As String = "Вибір шаблону записки:", _
                      Optional ByVal InitialPath As String = "c:\", _
                      Optional ByVal FilterDescription As String = "Файли шаблонів", _
                      Optional ByVal FilterExtention As String = "*.atl") As String
     On Error Resume Next
     With Application.FileDialog(msoFileDialogOpen)
         .ButtonName = "Вибрати": .Title = Title:
         .InitialFileName = GetSetting(Application.Name, "GetFilePath", "folder", InitialPath)
         .Filters.Clear: .Filters.Add FilterDescription, FilterExtention
         If .Show <> -1 Then Exit Function
         GetFilePath = .SelectedItems(1)
         folder$ = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "\"))
         SaveSetting Application.Name, "GetFilePath", "folder", folder$
     End With
End Function

' Выбор папки сохранения Ат. листов
Private Sub CommandButton4_Click()
     Filefolder$ = GetFolderPath("Вибір папки для збереження записки", ThisWorkbook.Path)
        If Filefolder$ = "" Then Exit Sub
        Sheets("1").Cells(3, 1) = Filefolder$
        Label1.Caption = Sheets("1").Cells(3, 1)
        Label1.ForeColor = RGB(255, 0, 0)
        MsgBox "Папка для збереження записки: " & Filefolder$
   End Sub
' Функция выбора папки сохранения Ат. листов
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", _
                        Optional ByVal InitialPath As String = "c:\") 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

' Закрывает эксель при закрытии формы
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
[ Закрыто] Сократить код., Не знаю как сократить код
 
Гляньте пожалуйста опытным глазом. У меня есть в коде такой фрагмент:  
Код
 Dim WordApp As Object
    Const sBookmark_1 As String = "Закладка_1"
    Const sBookmark_2 As String = "Закладка_2"
    Const sBookmark_3 As String = "Закладка_3"

и так до 1000.

Второй фрагмент:

Код
   WordApp.ActiveDocument.Bookmarks(sBookmark_2).Range.Text = Sheets("1").Cells(s, 4)
   WordApp.ActiveDocument.Bookmarks(sBookmark_3).Range.Text = Sheets("1").Cells(s, 6)
   WordApp.ActiveDocument.Bookmarks(sBookmark_4).Range.Text = Sheets("1").Cells(s, 7)
   WordApp.ActiveDocument.Bookmarks(sBookmark_5).Range.Text = Sheets("1").Cells(s, 8)

и так до 1000.

И третий:

Код
    WordApp.ActiveDocument.Bookmarks(sBookmark_1).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_2).Delete
    WordApp.ActiveDocument.Bookmarks(sBookmark_3).Delete

и так до 1000.

Вопрос можно как то написать вроде:
Код
n=1 to 1000
Заранее благодарен.
Страницы: 1
Наверх