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

Страницы: 1
VBA Обращение к столбцу умной таблицы по имени столбца
 
Добрый день, коллеги!

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

С уважением, Алексей.
Копирование изображения в несколько ячеек, Логотип компании на нескольких листах
 
Добрый день, уважаемые коллеги!

Есть Excel документ, в котором несколько листов (бланки компании). Сделать документ хочу универсальный с возможностью менять данные по компании через лист настроек. На листе настроек есть таблица, в которой указаны название компании, должность руководителя, ФИО руководителя, и ЛОГОТИП.
ПРИМЕЧАНИЕ. Логотип желательно в формате *.png с прозрачным фоном.

Вопрос. Как это изображение вставить на другие листы так, что бы изменив изображение на листе настроек логотип поменялся на остальных листах? Пример документа во вложении.

Заранее признателен за участие.
Изменено: Allleksey - 19.11.2022 07:19:06
Добавить на график вертикальный маркер (линию) с положением, зависящим от значения ячейки
 
Добрый день, коллеги!

На листе есть некий график с процентами. На этот же график необходимо добавить вертикальную черту (маркер) положение которой зависит от значения в конкретной ячейке. Во вложении пример. Положение маркера должно зависеть от значения в ячейке G16. Соответственно если значение поменялось, то и маркер должен перестроится и изменить свое положение на графике.

Буду очень признателен за подсказку, как это сделать.
Изменено: Allleksey - 07.09.2022 08:18:39
Excel VBA. Скрыть диапазон столбцов по номерам
 
Добрый день, коллеги!

Есть необходимость в макросе скрыть диапазон столбцов по номерам, содержащимся в двух переменных типа integer.
Не могу придумать как это сделать.

Код
Dim intStartColumn As Integer
Dim intStopColumn As Integer
intStartColumn  = 4
intStopColumn  = 10
ThisWorkbook.Worksheets("Sheet1").  ...  .Hidden = False


Подскажите, что вместо двоеточия нужно указать?
Спасибо за участие.
Изменено: Allleksey - 08.04.2022 19:33:42
Добавление строки в конец умной таблицы
 
Коллеги, приветствую!

На листе есть 2 умные таблицы. Пусть называются Tabl1 и Tabl2
Задача. Если в умной таблице в последнюю строку добавляется информация, код VBA должен добавить еще одну строку в конец редактируемой умной таблицы.
Примечание. В документе может быть 2 листа. На каждом листе будут располагаться по 2 умные таблицы.
Пример файла во вложении.
Удалить строку в умной таблице с помощью VBA
 
Добрый день, уважаемые коллеги!

Никак не придумаю, как удалить строку из умной таблицы. Именно с троку из таблицы, а не все строку листа
Пример файла во вложении.
Задача:
Есть значение искомого значения в переменной, пусть так:
Код
Dim SearchPosition As String
SearchPosition = "Name2"

Нужно удалить строку из умной таблицы Example_tb, в которой содержится искомое значение, содержащееся в переменной.
Все значения в первом столбце уникальные, повторений быть не может.
Помогите с кодом.
Заранее признателен.
Изменено: Allleksey - 06.03.2021 10:49:16
Функция суммирования работает некорректно, если активен другой лист
 
Коллеги, приветствую!

Написал вот такую функцию.
Код
Function КвартальнаяСумма(rRange As Range) As Double
    Application.Volatile
    Dim RowFirst As Integer
    RowFirst = rRange.Cells(1).Row
    Dim RowLast As Integer
    RowLast = RowFirst
    Dim ColumnLast As Integer
    Dim ColumnFirst As Integer
    ColumnFirst = rRange.Cells(1).Column
    ColumnLast = rRange.Cells(rRange.Cells.Count).Column
    Do While Sheets("План-Факт").Cells(RowLast, 3).Value <> ""
        RowLast = RowLast + 1
    Loop
    Dim Summ As Double, vVal
    Summ = 0
    For Each rCell In Range(Cells(RowFirst, ColumnFirst), Cells(RowLast, ColumnLast))
        If rCell.Interior.Color = 14348258 Then
            vVal = rCell.Value
            If IsNumeric(vVal) Then
                If rCell.EntireRow.Hidden Or rCell.EntireColumn.Hidden Then
                    If bSumHide Then Summ = Summ + vVal
                Else
                    Summ = Summ + vVal
                End If
            End If
        End If
    Next rCell
    КвартальнаяСумма = Summ
End Function


Все бы ничего... работает корректно. Считает, отображает... Но только до тех пор, пока активен лист, на котором вставлена функция.
Если перехожу на другой лист, то результатом вычисления становится 0.
Подскажите, что сделал не верно, и что сделать, что бы работала функция корректно, не зависимо от активности листа.
Импорт данных из всех файлов из указанной папки
 
И снова здравствуйте!

Есть переменная (FolderPath), содержащая адрес папки для обработки всех файлов xlsx, находящихся в ней.
Задача. Создать таблицу с количеством строк, равному количеству файлов (таблицу нужно начать с 12 строки, т.е. первая ячейка созданной таблицы должна быть «А12».)
А первый столбец поместить название файла
Во второй столбец поместить данные из файла из ячейки «G14»
И так проделать со всеми файлами в указанной папке.
Удалить часть текста справа до первого символа \
 
Добрый день, коллеги!

Нужно удалить текст справа до первого символа "\"
Я пытаюсь определить адрес нахождения текущей книги.
Код
        Dim a 
        Let a = ActiveWorkbook.FullName

На выходе имею а=D:User\DropBox\VBA\test.xlsm
Необходимо удалить название файла из значения а. Оставить только путь к файлу.
Передача в другой модуль ссылки на объект
 
Добрый день, Уважаемые!

На пользовательской форме (UserForm1) есть TextBox1 (объект может быть так же и ComboBox)
Ссылку на этот объект надо передать в другой модуль, что бы в нем произвести например изменение цвета фона.

Вопрос - Какого типа нужно объявить переменную "perem", что бы в ней можно было хранить ссылку на объект?
Что бы в дальнейшем определить:
Код
Set perem = UserForm1.TextBox1
Call Chang (perem)

А во втором модуле выполнить процедуру
Код
Sub Chang (perem)
   If perem.Value = "" Then
      perem.BackColor = &HC0FFFF
   Else
      perem.BackColor = &HFFFFFF
   End If
End Sub

Задача: На UserForm есть несколько объектов, которые при запуске формы пустые. Если объект пустой, то фоновый цвет желтый, если не пустой, то фоновый цвет белый.
Подобную проверку хочу сделать отдельной процедурой.

Вопрос 2.
Как переменной "perem" присвоить ссылку на активный объект?
У меня после каждого изменения поля на форме запускается процедура SetKod
Вот в этой процедуре переменной "perem" присвоить ссылку на активный объект и далее вызвать процедуру Chang
Изменено: Allleksey - 04.11.2018 23:34:11
Вызов процедуры после закрытия пользовательской формы
 
Добрый день, уважаемые!

Есть пользовательская форма UserForm. На ней есть кнопка CommandButtom1 открытия другой формы UserForm1
Открываю естественно так:
Код
Private Sub CommandButton1_Click()

    UserForm1.Show

End Sub

После работы во второй форме она закрывается и снова становится активна первая
Вопрос. Как после закрытия UserForm1 запустить процедуру через
Код
Call Process
в первой форме?

Обработка события активации не помогает. Судя по всему открытие второй пользовательской формы не деактивирует первую.
Код
Sub UserForm_Activate()

   Call Process

End Sub


Файл примера во вложении.
Прошу указать куда добавить
Код
MsgBox ("Сработало")

что бы всплывающее окно срабатывало при закрытии UserForm2. Но всплывающее окно должно быть из UserForm1
Изменено: Allleksey - 02.11.2018 12:50:45
Заполнить ComboBox значениями из первого столбца умной таблицы.
 
Добрый день, Уважаемые!

Буду краток. Пример во вложении.
Не могу придумать, как заполнить ComboBox значениями из первого столбца умной таблицы. Естественно если в таблице увеличивается количество строк, надо, что бы и в ComboBox так же увеличивалось количество строк.
И второй момент. После того, как в ComboBox выбрано одно из значений, это значение нужно использовать для поиска в той же умной таблице и при нахождении этого значения в таблице в 1 столбце, взять значение из второго столбца и поместить в текстовое поле.

Спасибо большое за понимание, содействие и не ругайте сильно.
Заполнение значений поля со списком при открытие пользовательской формы.
 
Добрый день, Уважаемые!

Eсть пользовательская форма UserForm
Запускается форма при запуске файла
Код
Private Sub Workbook_Open()
    UserForm.Show
End Sub

В форме есть поле со списком. ComboBox1
Задача:
После запуска формы заполнить поле со списком значениями из Листа 1 из ячеек A10:A13
Пример во вложении

Прошу прощения за столь простые вопросы, но я лишь начинаю освоение VBA
Копирование содержимого ячейки в буфер обмена кнопкой на листе
 
Коллеги, добрый день!

Есть 2 ячейки R3 и R5
Данные в них формируются через формулу, т.е. в ячейке нет непосредственно текста.
Задача... через кнопку 1  на листе копировать из R3 в буфер обмена сформированный в ячейке формулой текст (т.е. сначала надо данные преодразовать в текст, после этого скопировать в буфер обмена.
Такая же задача у кнопки 2. Преобразовать значение ячейки в текст и скопировать в буфер обмена.

Прошу Вас подсказать, как можно решить задачу?

С уважением, Алексей.
Перенос строки и абзац в формулах
 
Добрый день, коллеги!

Предыстория:
При составлении формул использую функцию СИМВОЛ(10) для переноса текста на следующую строку.
Далее полученный текст через копирование и специальную вставку "значение" преобразую в из формулы непосредственно в текст.
Факт:
Далее захожу в ячейку, копирую получившийся текст и вставляю его в программу описания товара в Битрикс24.
Но СИМВОЛ(10) в тексте равнозначен нажатию ENTER в текстовом редакторе, т.е. переходу в новый абзац. (в HTML коде
Код
<p> и </p>

) Это добавляет лишние пробелы в описании. Если готовить описание в текстовом редакторе и нажимать Shift+ENTER, то добавляется перенос строки (в HTML коде
Код
</br>

). Это более корректно.
Вопрос:
Как в Excel в формулах добавить не новый абзац СИМВОЛ(10), а именно перенос строки?
Или как вариант после специальной вставки заменить символ нового абзаца на перенос строки?

Заранее признателен за содействие.
Изменено: Allleksey - 30.10.2018 16:24:06
Внесение данных в ячейку и ее блокировка в зависимости от значение в другой ячейки
 
Коллеги, добрый день!

Пример во вложении.
Задача.
В ячейке B3 Выбираем одно из значений ("список" или "значение с блокировкой строки")
При значении B3 "список" в B7 выбирается любое значение из списка указанного в ячейках G7-G10
При значении B3 "Значение с блокировкой строки" в B7 указывается первое значение из списка "значение 1" (из ячейка G7) и устанавливается запрет на изменение значения ячейки.

Мне кажется без кода тут не обойтись, а в нем я совершенно не понимаю.

Заранее признателен в участии решения задачи. Спасибо.
Очистка содержимого ячейки при изменении данных в другой
 
Коллеги, добрый день!

Есть 2 ячейки. Предположим А1 и А2.
Заполняется сначала А1, потом заполняется А2 (не важно, пусть произвольными данными)
Задача:
При изменении данных в ячейке А1 очистить данные в ячейке А2
Вопрос:
Как это сделать? Очень рассчитываю на Ваше содействие.
Ссылка на умную таблицу в функции ВПР
 
Добрый день, коллеги!

Входные данные:
1. Есть умная таблица с названием "данные"
2. Есть название умной таблицы в ячейке таблицы
Вопрос.
Не могу составить формулу с использованием функции ВПР, что бы ссылка на умную таблицу была через ячейку с ее названием.

Заготовка файла во вложении.

P.S. поясню... подобная работа нужны для связанных списков. В свете чего указать название таблицы прямо в формуле не имею возможности. Название таблицы есть только в ячейке.
Страницы: 1
Наверх