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

Страницы: 1 2 3 След.
Как объединить несколько макросов в один или выполнить их последовательно?
 
А мне кажется наоборот, что обидный вопрос. И это совсем не хамство, только лишь дружеский совет. Первый не хотите извиниться?

Цитата
БМВ написал: про жбан, вы написали...
Это была реакция на неуважительное отношение! По моему это никто не любит...
Как объединить несколько макросов в один или выполнить их последовательно?
 
Цитата
vikttur написал:
Автор получит жбан, если не объяснится
Объясните сначала вот это: "Неужели я задаю такие трудные вопросы, что на них нельзя ответить сразу?" Апосля и поговорим...

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

За макрос еще раз спасибо ;)
Как объединить несколько макросов в один или выполнить их последовательно?
 
Цитата
Юрий М написал: Неужели я задаю такие трудные вопросы, что на них нельзя ответить сразу?
Ну получается, что нельзя, дядя ;) Попроще надо отвечать и общаться, а то можно и в жбан получить....Это вам так на будущее.
За помощь с макросом благодарю!
Как объединить несколько макросов в один или выполнить их последовательно?
 
Цитата
Юрий М написал:
По вопросу: Можно не объединять, а просто вызывать все Ваши макросы в нужной последовательности примерно так:
Юрий, не могли бы вы пожалуйста написать полный код, поскольку я не особо силен в VBA... Спасибо большое!
Как объединить несколько макросов в один или выполнить их последовательно?
 
Объединение в моем понимании означает объединить 4е макроса в один ;)  Одним словом нажимаешь одну кнопку, и выполняются последовательно четыре  макроса. То есть предлагаю следующий заголовок: "Объединить несколько макросов, чтобы их запуск выполнялся последовательно". Пойдет так?
Как объединить несколько макросов в один или выполнить их последовательно?
 
Добрый день.

Помогите пож-та объединить четыре макроса в один. В VBA не особо силен :(
Код
Sub DeleteSheet()
Dim Sh As Object
    For Each Sh In ActiveWorkbook.Sheets
    Application.DisplayAlerts = False
        If Sh.Visible <> xlSheetVisible Then Sh.Delete
        Application.DisplayAlerts = True
    Next
End Sub

Public Sub DelHiddenRows()
    Dim lR As Long, i As Long, Sh As Worksheet
    On Error Resume Next
    Application.ScreenUpdating = False
    For Each Sh In ThisWorkbook.Worksheets
        Sh.Activate
        lR = Sh.UsedRange.Rows.Count + Sh.UsedRange.Row - 1
        For i = lR To 1 Step -1
            If Sh.Rows(i).Hidden Then Rows(i).Delete
        Next
    Next
    Application.ScreenUpdating = True
End Sub

Sub delete_hidden_columns()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
     For i = 256 To 1 Step -1
         If ws.Columns(i).EntireColumn.Hidden Then
             ws.Columns(i).EntireColumn.Delete
         End If
     Next
Next ws
Set ws = Nothing
End Sub

Sub DeleteAllComments()
For Each xWs In Application.ActiveWorkbook.Sheets
    For Each xComment In xWs.Comments
        xComment.Delete
    Next
Next
End Sub
Изменено: Pavel.Nev - 21.09.2018 19:46:07
Нумерация строк по условию
 
И так и так работает. Всем спасибо :)
Нумерация строк по условию
 
У меня просто нет слов...гениально!!!!!! Я всю голову изломал :)
Жму руку ;) Спасибо!!!
Нумерация строк по условию
 
Добрый вечер, друзья

Помогите пож-та в решение следующей задачки: необходимо пронумеровать строки с условием по столбцу B (без макросов). См. приложенный файл.

Заранее большое спасибо!
Сортировка с помощью выпадающих списков
 
Друзья, всем спасибо! Получилось, усё арбайтен :)
Сортировка с помощью выпадающих списков
 
Добрый день, друзья

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

Если данная задача была решена ранее, то буду благодарен за ссылку. Пытался найти сам, но безрезультатно...
Подстановка значения по двум условиям
 
Друзья, спасибо большое за помощь. Все варианты работают. УРА!!!
Подстановка значения по двум условиям
 
Цитата
БМВ написал:
Вы уверены, что правильно понимаете, что подразумевается под формулой массива в Excel?
БМВ, спасибо. Модифицировал вашу формулу. Я понимаю о чем говорю. В моем случае работает гораздо быстрее ;)
Код
=IF(($D$5:$D$61>=E$2)*($D$5:$D$61<=(E$2+E$3));E$4;"")
Подстановка значения по двум условиям
 
Цитата
Юрий М написал:
Думаю, при таком количестве ячеек нужно не формулами, а макросом заполнять.
Юрий, сможете помочь? Буду премного благодарен.
Подстановка значения по двум условиям
 
Vik_tor и БМВ, таким образом я сам решил ;) Объясняю: все дело в том что кол-во строк может быть>10000, и кол-во столбцов 100. При исп. обычной формулы начинаются тормоза. Массив быстрее считает
Подстановка значения по двум условиям
 
Добрый вечер, друзья

Помогите пож-та решить задачку посредством формулы массива: необходимо подставить значение из строки 4, только в те ячейки (> Начало = строка 2) * (< Конец = (строка 2+строка3)).

Сравнение идет по оси времени - колонка D.
Пример с комментариями приложил. Для ориентира решил вручную (см. желтые ячейки как должно быть)

Заранее большое спасибо.
Изменено: Pavel.Nev - 01.03.2017 21:57:46
Заполнить 10 строк с определенным шагом
 
Игорь, спасибо большое! Выручили!
Заполнить 10 строк с определенным шагом
 
Игорь. прошу прощения я не учел что у меня есть пробелы между строками. Не могли бы вы переделать код для 20 строк. Спасибо! Правильный пример приложил к письму.
Заполнить 10 строк с определенным шагом
 
Добрый день, Форумчане
Есть лист с определенной разметкой. На нем существуют блоки, которые могут копироваться один за другим (Ctrl C-->Ctrl V). Каждому блоку присваивается уникальный номер: ячейки С30, C68, C106 (то есть с шагом 38 строк). Помогите написать функцию, которая бы при копирование блока автоматически считывала имя блока и заносила их в соответствующие 10 ячеек (Колонка I).
Файл прилагается! Спасибо!
Тип скругления линии - Макрос VBA
 
Sanja, мой первоначальный макрос у меня работает. Сделал повторную проверку: Сделал сперва круглое окончание и увеличил масштаб. Запустил макрос и стиль окончания поменялся на плоское для первой линии.

Попробовал ваш код: цикл работает и виден перебор каждой серии, но стиль окончания линий не меняется. Вместо это макрос проставляет букву F в колонке А.

Что можете посоветовать в таком случае? Спасибо!
Изменено: Pavel.Nev - 14.01.2017 18:15:27
Тип скругления линии - Макрос VBA
 
Нашел макрос, который автоматически меняет толщину всех линий. Может будет полезно для решения задачи...
Код
Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
        srs.Format.Line.Weight = 0.75
    Next
End Sub
Тип скругления линии - Макрос VBA
 
Цитата
Ігор Гончаренко написал: нужно с Ctrl отметить 2 шт и исправить тип окончания линии для двух
если исправятся 2 сразу - исправятся все сразу))
Да я сам не ожидал такой подставы от Microsoft. Окошки в своем стиле короче :) Самое интересное я практически завершил проект с моими большими вычислениями и в конце столкнулся с такой сложностью в построении нужной диаграммы. Хотя вроде бы мелочь, как поменять цвет линии.
Тип скругления линии - Макрос VBA
 
Sanja, см. файл. Грубо говоря должны получиться цветные прямоугольники.
Тип скругления линии - Макрос VBA
 
Игорь, проблема в том, что я не программист и с циклами не особо дружу. Поэтому и попытался найти ответ на этом форуме. По поводу "Отметить все" надо подумать...может есть такой макрос. Спасибо за идею ;)
Тип скругления линии - Макрос VBA
 
Цитата
Ігор Гончаренко написал:
((( только ручками в Excel
Это не реально :) Линий может быть более 100 штук...
Тип скругления линии - Макрос VBA
 
Исправил :) Я так понял это нереально сделать...Эх жаль
Тип скругления линии - Макрос VBA
 
Добрый вечер!
Помогите решить следующую задачу: Есть диаграмма, на которой создается много горизонтальных линий. По умолчанию Excel делает окончании линий круглым. Это не подходит мне, и нужен обязательно тип - плоский

Задачу осложняет тот факт, что средствами VBA невозможно изменить стиль линии. Об этом написано здесь: https://support.microsoft.com/en-us/kb/2755172

Но есть одна хитрость от Andy Pope: http://www.excelforum.com/showthread.php?t=724682
В моем случае он выглядит так:
Код
Sub SetLineCap()
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.SeriesCollection(1).Select
With Application
    .SendKeys "{F10}JA" 'hotkey select PIVOTCHART TOOLS > FORMAT tab
    .SendKeys "SOWLA{RETURN}" 'navigate to Format data series > Cap type
    .SendKeys "{F}{RETURN}" 'select 'flat' from the list
End With
End Sub

Минус его решения - меняется стиль только для первой линии. А их может быть >100

Еще нашел на форуме такой код в помощь, который в цикле переделывает формат всех маркеров и их цвет
Код
Sub Markers()
    ActiveSheet.ChartObjects("Chart 1").Activate
    For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
    With ActiveChart.SeriesCollection(1).Points(i).Format.Line
        .Style = msoLineSingle
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.RGB = #00ff00
        .Transparency = 0
    End With
    Next
End Sub

Так как в VBA я не особо силен, то нужна помощь гуру и поэтому прошу вас помочь мне объединить/модифицировать эти два макроса, чтобы в конечном итоге автоматически (по нажатию на кнопку) менялся тип окончания у всех линий на плоский?
Файл пример прилагается.

Буду благодарен за любую помощь!
 
Изменено: Pavel.Nev - 14.01.2017 12:49:46
Шаг сетки оси абцисс по значению из ячейки
 
The_prist, спасибо! Сейчас попробую ваш вариант (если не получиться, то выложу файл). Я ничего не надумывал, просто вышло общее недопонимание ;) Все время я вел здесь речь только про цвет и тип линии сетки ;)
Шаг сетки оси абцисс по значению из ячейки
 
Я вам изначально вставил кусок кода. У меня там было objChart.Axes(xlValue).MajorGridlines.Select. Вы сами сбили меня с толку
Цитата
И так же неплохо бы понимать - Вы тип линий для чего изменить хотите: точно для оси? Не для линий данных?
и я подумал, что случайно выделил основную линию!!! Повторюсь еще раз, необходимо поменять формат линии сетки.
Мой код не работает.
Код
objChart.Axes(xlValue).MajorGridlines.Select
         With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorBackground1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = -0.150000006
        .Transparency = 0
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .Weight = 0.25
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .DashStyle = msoLineDash
    End With
Шаг сетки оси абцисс по значению из ячейки
 
Хочу изменить тип линии сетки, её цвет и толщину. Извиняюсь, может быть по не опытности выделил основную линию и проводил операции на ней. Пожалуйста, код прилагается.
Код
Option ExplicitPrivate Sub Worksheet_Activate()
    Dim Sh As Worksheet, XRng As Range, YRng As Range, objChart As Chart, objSeries As Series
    Dim Xmin As Double, Xmax As Double, Y, Ymin As Double, Ymax As Double, YA As Double, DY As Double, k As Long
    Xmin = Sheets("Sheet1").Range("DW1")
    Xmax = Sheets("Sheet1").Range("DW2")
    Set Sh = Sheets("Sheet1")
    Set XRng = Sh.Range("DV6:DV10086") ' Time '
    k = WorksheetFunction.Match(1E+300, XRng, 1)
    Set XRng = XRng.Resize(k)
    Set YRng = Sh.Range("DW6:DW10086").Resize(k) ' '
    Application.StatusBar = "Please wait..."
    Application.Cursor = xlWait
    For k = 1 To 1
        DoEvents
        Set objChart = Me.ChartObjects(k).Chart
        Set objSeries = objChart.SeriesCollection(1)
        objSeries.XValues = XRng
        objSeries.Values = YRng.Columns(k)
        objChart.Axes(xlCategory).MinimumScale = Xmin
        objChart.Axes(xlCategory).MaximumScale = Xmax
        Ymin = 1E+300
        Ymax = -1E+300
        For Each Y In YRng.Columns(k).Value
            If VarType(Y) >= 2 And VarType(Y) <= 7 Then
                If Y < Ymin Then Ymin = Y
                If Y > Ymax Then Ymax = Y
            End If
        Next
        Rem Method of flow scale:
        YA = (Ymin + Ymax) / 2 * 1.05
        DY = (Ymax - Ymin) / 2 * 1.05
        Ymin = YA - DY
        Ymax = YA + DY
        Rem until
        objChart.Axes(xlValue).MinimumScale = Ymin
        objChart.Axes(xlValue).MaximumScale = Ymax
        objChart.Axes(xlCategory).MajorUnit = Sheets("Sheet2").Range("AE29")
        objChart.Axes(xlValue).MajorGridlines.Select
         With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorBackground1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = -0.150000006
        .Transparency = 0
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .Weight = 0.25
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .DashStyle = msoLineDash
    End With
    Next
    Application.StatusBar = False
    Application.Cursor = xlDefault
End Sub
Страницы: 1 2 3 След.
Наверх