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

Страницы: 1 2 След.
Макрос создания справок
 
Макрос за вознаграждение
Vba. Макрос подбора высоты строки по выделенным столбцам
 
В работе использую много таблиц, и переношу данные из одной в другую. Получается так, что в различные столбцы переносится текст, а высота ячеек не меняется, часть текста при печати съедается. Выхожу из ситуации автоподбором высоты строки, но и он работает не идеально, при печати все равно бывает что последняя строка текст наполовину съедена. А ещё бывают ситуации, когда есть скрытые столбцы с кучей текста, и он по ним подбирает высоту, а нужно по другому - заданному пользователем столбца.
Задача- нужно чтобы макрос подбирал высоту строки по заданному пользователем столбцу и плюс к автоподбором ещё немножечко увеличивал высоту строки (дабы избежать съедания последней строки текста). В идеале, если возможно, нужно сделать чтобы было возможность подбирать сразу по нескольким столбцам (выбирал в каком из столбцов нужна наибольшая высота строки), при этом нужно чтобы макрос не трогал "шапку" таблицы, которая может состоять из разного количества строк.  
Макрос который объединяет значения из второго уровня в первый VBA
 
Alex, в целом работает хорошо, но независимо от столбца который выбрал - всегда сцепляет значения из первого , а нужно чтобы сцеплял из стобца который выбрал пользователь. Можем поправить, пожалуйста. Буду благодарен.
Макрос который объединяет значения из второго уровня в первый VBA
 
Новое ТЗ
Макрос который объединяет значения из второго уровня в первый VBA
 
Здравствуйте, уважаемые форумчане!
Есть такая задача



Имеется таблица в Excel в которой есть два или более уровней.
Программа просит пользователя ввести номер первой строки, следующей за заголовком таблицы. Затем программа просит пользователя ввести номер столбца в котором находятся данные для объединения.


Программа должна вставить столбец левее от выбранного пользователем столбца. А затем на первый уровень вставленного столбца через запятую сцепить значения из второго уровня до следующего первого уровня выбранного пользователем столбца от введенного пользователем номера первой строки до последней строки таблицы .


Например
Пользователь ввёл, что первая строка 6. Затем пользователь ввёл, что первый столбец в котором находятся данные - 8.


Программа вставляет столбец левее от 8, а затем на все первые уровни вставленного столбца от 6 до последней строки таблицы сцепляет через запятую значения со второго уровня, нахоящегося под первым и так до последней строки файла.

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

Код
Sub CombineLevel()    Dim ws As Worksheet    Set ws = ActiveSheet        'Просим пользователя ввести номер первой строки    Dim firstRow As Integer    firstRow = InputBox("Введите номер первой строки после заголовка таблицы", "Выбор первой строки")        'Просим пользователя ввести номер столбца из которого будем сцеплять данные    Dim colNumber As Integer    colNumber = InputBox("Введите номер столбца из которого будем сцеплять данные", "Выбор столбца для работы")        'Вставляем новый столбец левее от заданного пользователем    ws.Columns(colNumber).Insert Shift:=xlToTheLeftEnd Sub

Макрос прибавляющий значение в столбец VBA
 
Имеется таблица Excel , правее столица с названием "NmReestry2022" вставляется ещё один столбец в котором пользователем проставляются значения.
Макрос проверяет от первого до последнего элемента столбца "NmReestry2022" есть ли в добавленном правее столбце какое либо значение, если есть то прибавит это значение к строке столбца "NmReestry2022" , при этом добавит формулой, например если в столбце реестр есть значение "19" , а в столбце правее "20", в столбце "NmReestry2022" получится "=19+20" , а если в столбце правее ничего не будет то ничего делать не надо.
Код
Sub UpdateReestr()
    Dim lastRow As Long
    Call Objavlenie_perem
    lastRow = Cells(Rows.Count, NmReestry2022.Column).End(xlUp).Row ' определяем последнюю строку в столбце Reestr
    
    Dim i As Long
    For i = 1 To lastRow ' перебираем строки
        Dim valueToSum As Variant
        valueToSum = Cells(i, NmReestry2022.Column + 1).Value ' значение в добавленном столбце
        
        If Not IsEmpty(valueToSum) Then ' проверяем, что значение есть
            Dim reestrFormula As String
            reestrFormula = "=" & Cells(i, NmReestry2022.Column).Value & "+" & Cells(i, NmReestry2022.Column + 1).Value ' формируем формулу для столбца "Reestr"
            Cells(i, NmReestry2022.Column).formula = reestrFormula ' присваиваем формулу в ячейку
        End If
    Next i
End Sub


Написал код ,который частично работает , но проблема в том ,что если в столбце NmReestry2022 уже была формула , например "=18+20" а в столбце правее 30, он впишет в ячейку "=38+30", а нужно "=18+20+30".
прошу помощи  
Макрос добавления данных к формуле vba
 
Добрый день, уважаемы друзья! Прошу помощи. Необходимо написать макрос который выполняет следующее:

В столбце Razn хранится число которое нужно приплюсовать в формулу в столбце Itog.
Пользователь выделяет ячейки в столбце "в 2022 г." к которым необходимо прибавить данные из столбца Razn(при этом если в столбце итог есть формула сохранить ее полностью, а если формулы нет - создать ее)
Что удалось написать мне, но возникает ошибка 1004
Код
Sub ObnovlevieVR()
Set Razn = Cells.Find("Razn")
For Each c In Selection
v = Cells(c.Row, Razn.Column).Value
If c.FormulaR1C1 = "0" Then
c.FormulaR1C1 = "=" & v
Else
If Left(c.FormulaR1C1, 1) <> "=" Then
c.FormulaR1C1 = "=" & c.FormulaR1C1
End If
c.FormulaR1C1 = c.FormulaR1C1 & "+" & v
End If
c.FormulaR1C1 = Replace(c.FormulaR1C1, ",", ".")
Next
End Sub
Пример файла прикрепляю. Помогите разобраться, пожалуйста.
Правильное объединение диапазонов
 
, спасибо огромное, ваш способ очень помог
Правильное объединение диапазонов
 
, ошибка Object required
Правильное объединение диапазонов
 
,верно, но идея в том, что в следующей итерации цикла For будет уже не  Empty
Правильное объединение диапазонов
 
, , пробовал так, не работает
Код
Range7 = Empty
    For Stolb = NmNomerPP.Column To NmKBK.Column
      Set Range6 = Columns(Stolb)
      Set Range7 = Union(Range7, Range6)
      Range7.Select
    Next
Правильное объединение диапазонов
 
Здравствуйте, подскажите, пожалуйста, как правильно объединить два диапазона, мой способ не работает
Код
Range7 = Empty
    For Stolb = NmNomerPP.Column To NmKBK.Column
      Set Range6 = Columns(Stolb)
      Set Range7 = Range7 & Range6
      Range7.Select
    Next

Идея в том, чтобы по мере перебирания переменной Stolb, к Range7 добавлялся столбец с номером переменной Stolb
Изменение размера диапазона
 
Добрый день, уважаемы пользователи форума!

Имеется такой вопрос, прошу подсказать.

Есть макрос который перебирает значения (эти значения номера нужных столбцов) а так же имеется пустой диапазон Range6, необходимо этот диапазон заполнить столбцами, номера которых перебрал макрос. Пример:
Код
For Stolb = NmNomerPP.Column To NmKBK.Column
Next
В данном случае Stolb будет последовательно равен 2,3,4,5,6.
В следующей итерации Stolb будет равен уже другим цифрам.
Необходимо в диапазон присвоить столбцы равные изменяющимся значениям Stolb (Я так думаю процедуру увеличения размера диапазона необходимо встроить в цикл For.
Написать макрос который будет складывать значения одинаковых ключей
 
Добрый день. Обращаюсь за помощью. Большим бюджетом не обладаю, но рублей 300 выделить по силам. Прошу написать макрос, выполняющий следующее:

У пользователя имеется большая таблица, пользователь запускает макрос, ему предлагается выбрать диапазон с ключами (либо же он сначала выделяет значения с ключами, а затем запускает макрос), ключи всегда только в одном столбце. Далее пользователю предлагается выбрать диапазон со значениями (значения всегда в одном столбце) и далее макрос находит повторяющиеся ключи и в значение первого первого ключа прибавляет значения повторяющихся ключей. Столбцы с ключами и с их значениями могут меняться, поэтому важно, чтобы пользователь именно выбирал диапазон, без привязки к номеру столбца.

Пример: Столбец 1(ключи) Столбец 2(какие-то данные) Столбец 3 (значения) Столбец 4 (какие-то данные)
                 2321                                                                                432
                 2345                                                                                433
                 2321                                                                                566
Пользователь запускает макрос, выделяет 3 значения из столбца 1, далее выделяет 3 значения из столбца 2 и на выходе получается
             Столбец 1(ключи) Столбец 2(какие-то данные) Столбец 3 (значения) Столбец 4 (какие-то данные)
                 2321                                                                          998(432+566)
                 2345                                                                                433
                 2321                                                                                
Перечисление нескольких диапазонов в цикле For
 
Добрый день, у меня имеется код, который проходит по строке и перетаскивает формулы из верхней строки, если они там есть
Код
For Stolb = 1 To LastStolb
          If Cells(ActiveCell.Row, Stolb).HasFormula Then
             Cells(ActiveCell.Row + 1, Stolb).FillDown
          End If
Next
Так вот суть в чем, мне нужно для разных диапазонов выполнить одно и то же условие, Не хочется каждый раз прописывать все 5 строк, можно как-то диапазоны перечислить? Пример (но так не работает):
Код
For Stolb = 1 To 2, 2 To 5, 5 To 7, 7 To LastStolb
          If Cells(ActiveCell.Row, Stolb).HasFormula Then
             Cells(ActiveCell.Row + 1, Stolb).FillDown
          End If
Next
Изменено: Gogo Pav - 24.01.2022 16:51:48
При открытии файла с макросами Excel либо выдает ошибку либо закрывается
 
Дмитрий(The_Prist) Щербаков, спасибо, получилось!
Изменено: Gogo Pav - 24.01.2022 09:04:34
При открытии файла с макросами Excel либо выдает ошибку либо закрывается
 
Здравствуйте, друзья. У меня есть файл с макросами, который я использую на работе уже не один год, и все отлично работало, сегодня же, после закрытия файла открыть его я уже не могу, Excel либо просто вылетает, либо вылазит ошибка "Чтобы выполнить это действие, недостаточно памяти. Попробуйте использовать меньше данных или закрыть другие приложения". При чем комп не нагружен, открыт только Excel. Помогите разобраться, что случилось и в чем проблема. Будь это не рабочий, а домашний комп, я бы наверное переустановил Office, но тут я ограничен в действиях, устанавливать и удалять ничего не могу.
Добавление значений в ячейку с формулой, vba
 
МатросНаЗебре,Спасибо!
Добавление значений в ячейку с формулой, vba
 
Добрый день, извиняюсь за глупость вопроса, но толкового ответа не нашел. Есть макрос vba, который выполняет определенные действия, нужно чтобы он так же добавлял в ячейку с формулой значение, не стирая при этом уже написанную в ячейке формулу. Например, есть ячейка R74C101, в которой есть формула =RC[-49]*RC[-31], нужно чтобы макрос добавил к этой формуле ячейку B(B= ActiveCell.Offset(1, 0)). В итоге в формуле получится, например =RC[-49]*RC[-31]+R75C101. Дело в том, что ссылаться именно на RC[-49]*RC[-31] нельзя, тк диапазон большой, и формулы в ячейках разные, нужно именно оставлять то, что уже написано в ячейке, просто приписывать к формуле значение.
Изменено: Gogo Pav - 22.10.2021 10:15:52
Несколько значений, которые перебирает цикл For. Vba
 
Всем большое спасибо, Пытливый, Бахтиёр, Jack Famous!
Изменено: Gogo Pav - 21.10.2021 11:35:40
Несколько значений, которые перебирает цикл For. Vba
 
Пытливый, здравствуйте, речь о том, что переменной stolb нужно присвоить разные значения: Stolb =1 To name.Column, 10 to 20.  
Несколько значений, которые перебирает цикл For. Vba
 
Здравствуйте, есть код в котором цикл For перебирает значения, подскажите, пожалуйста, как циклу For задать несколько значений
Мой код:
Код
 For Stolb = 1 To name.Column
        With Cells(ActiveCell.Row + 1, Stolb)
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Interior.Color = vbWhite
        End With
        Next

А нужно в For добавить еще один диапазон от 10 до 20, например. Действия в теле цикла будут выполняться те же.
Должно быть что-то вроде
Код
 For Stolb = 1 To name.Column, 10 to 20
Выбор диапазона в другом файле. Vba
 
МатросНаЗебре, JayBhagavan, спасибо большое!
Выбор диапазона в другом файле. Vba
 
У меня есть код ,  помощью которого мне нужно выделять определенный диапазон в другом файле, но не получается, все равно выделяется диапазон в файле, из которого запускается макрос. Если добавлю sh.Range - не работает, если просто Range оставить, выделяет в листе с макросом. Нужно выделять диапазон из файла Ghbvth1.xlsx, листа Ghbvth2. Прошу помощи.

Код
Option Explicit
Const FILE_NAME = "Ghbvth1.xlsx"
Const SHEET_NAME = "Ghbvth2"
Sub ClearCont()
Dim wb As Workbook
Set wb = Workbooks(FILE_NAME)
Dim sh As Worksheet
Set sh = wb.Sheets(SHEET_NAME)        
Dim LastCell As Range
        Dim Stalo As Range
        Set Stalo = sh.Cells.Find("Стало")   'Ищем ячейку Стало
            Set LastCell = sh.Cells(Rows.Count, Stalo.Column).End(xlToLeft)
            Range(Cells(Stalo.Row + 1, Stalo.Column), Cells(LastCell.Row, Stalo.Column)).Select
               Selection.ClearContents
End Sub
Выделение всего содержимого ячейки
 
Здравствуйте, вопрос глупый , но решения не нашел. На прошлом компе вставал в какую-либо ячейку, нажимал ctrl+a и выделялось все содержимое ячейки, на новом компе не работает. Как решить такую проблему, очень удобная функция.
Протянуть формулу по столбцу во вновь добавленную строку VBA
 
JayBhagavan, Kuzmich, большое спасибо!
Изменено: vikttur - 27.09.2021 00:54:26
Протянуть формулу по столбцу во вновь добавленную строку VBA
 
Например. Формулы именно протянуть
Изменено: vikttur - 27.09.2021 00:53:56
Протянуть формулу по столбцу во вновь добавленную строку VBA
 
Цитата
JayBhagavan написал: Каким боком тут столбцы?
Появилась новая строка, столбцы 1-10 для которой используются

Цитата
У Вас - да, а у нас - нет. Печаль...
Имеется ввиду любая таблица, в каждой строке 10 активных ячеек, в ячейках формулы, добавили строку, нужно протянуть формулы  
Изменено: vikttur - 27.09.2021 00:53:36
Протянуть формулу по столбцу во вновь добавленную строку VBA
 
Цитата
JayBhagavan написал:
Каким боком тут столбцы?
Появилась новая строка, столбцы 1-10 для которой используются
Протянуть формулу по столбцу во вновь добавленную строку VBA
 
Здравствуйте, прошу подсказать. Идея такая, есть таблица, пользователь встает в какую-либо ячейку и запускает макрос, под выделенной ячейкой добавляется строка
Код
ActiveCell.Offset(1, 0).EntireRow.Insert

Далее нужно во вновь добавленную строку растащить формулы из верхней строки по всем столбцам (10 столбцов), прошу подсказать, как протянуть формулы.

Изменено: Gogo Pav - 26.09.2021 17:00:31
Страницы: 1 2 След.
Наверх