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

Страницы: 1
Объединение пустых ячеек столбцов построчно в заданном диапазоне.
 
Здравствуйте, уважаемые гуру VBA. Прошу помочь разобраться в следующей ситуации:
При проведении инвентаризации возникла необходимость немного автоматизировать процесс. Из 1С выгружается кривая ведомость (во вложении). Графа №8 (статус объекта учета) делится на 3 столбца (AJ,AK,AL), графа №9 (целевая функция актива) на столбцы AM:AR, а одни должны быть едиными ячейками - как показано на листе "Как должно быть". Для того чтобы объединить столбцы в строках пишу макрос (пока только для графы №8):
Код
Sub Rec()
Dim i As Long
Dim j As Long
Dim k As Long
Dim myRange As Range
Set myRange = Range("AJ41:AL500")
Application.DisplayAlerts = False

For k = 1 To myRange.Areas.Count
  For i = 1 To myRange.Areas(k).Rows.Count
  For j = 1 To myRange.Areas(k).Columns.Count
    If myRange.Areas(k).Cells(j, i).Value = "" Then
    myRange.Areas(k).Rows(i).Merge
    myRange.Areas(k).Cells(i, 1).HorizontalAlignment = xlHAlignCenter
    End If
    Next
    Next
Next
Application.DisplayAlerts = True
End Sub
Но после его выполнения, слетает форматирование и в тех строках, которые не должны меняться. Подскажите пожалуйста, в чём ошибка?

На исходном листе нужные диапазоны выделил толстой границей.

Разрабатываемый макрос планируется встроить в другой макрос, который уже вносит изменения в инвентарные описи без их открытия (их больше 1000 шт):
Код
Sub Макрос1()

Dim FilesToOpen
Dim x As Integer
    Application.ScreenUpdating = False
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", _
MultiSelect:=True, Title:="Выберите файлы")
If TypeName(FilesToOpen) = "Boolean" Then
    MsgBox "Не выбрано ни одного файла!"
    GoTo ExitHandler
End If
x = 1
    Application.Visible = False
While x <= UBound(FilesToOpen)
    Workbooks.Open Filename:=FilesToOpen(x)

    Sheets(1).Range("BP17").Value = "10.06.2022"  'на листе 1 в ячейку BP17 написать "Новая дата окончания"
    Sheets(1).Range("AL1:AL1500").Replace What:="А. А. Корешков", Replacement:="А. А. Котов"
    Sheets(1).Range("AJ41:AL41").Merge 'на листе 1 объединить ячейки AJ41:AL41
    Sheets(1).Range("AM41:AR41").Merge 'на листе 1 объединить ячейки AM41:AR41

    ActiveWorkbook.Close savechanges:=True
    x = x + 1
Wend

ExitHandler:
    Application.ScreenUpdating = True
    Application.Visible = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

Если удастся вписать нужные строки кода в него, то буду безмерно благодарен!

Задал такой же вопрос на форуме http://www.excelworld.ru/forum/10-49799-1
Изменено: Сергей GeSS - 29.04.2022 12:30:00
Макросом открыть диалоговое окно для выбора нового источника данных
 
Добрый день, уважаемые эксперты.
Есть отчёт об ошибках работы специалистов, который собирает данные из двух других отчётов в формате csv. Первый - это отчёт об обработанной информации, второй это отчёт об ошибках допущенных в процессе обработки информации. Первый отчёт подключен как источник данных, второй просто ссылками (но это предстоит переделать, т.к. при изменении связи на новый файл Excel не видит csv). Макрос привязанный к кнопке в файле "Отчёт об ошибках" должен открывать диалоговое окно изменения источника данных и он вроде открывает но ничего не добавляет...
Основной файл с макросом: Отчёт об ошибках
Источник данных: Статистика работы за 10.07.2020
2й источник данных, прикрученный через ссылки: Акты об ошибках за 10.07.2020
Помогите допилить макрос пожалуйста.
Копирование ячеек разных цветов на разные листы через VBA, Макрос для кнопки, по нажатию на которую данные из ячеек с разными цветами разносятся по разным листам.
 
Добрый день. Прошу помочь доделать макрос. Я в программировании 0, но макрос пипец как нужен! Ситуация следующая:
1. В первый лист (Общий) вставляется список людей с тремя типами заливки (жёлтый, зелёный, без заливки)
2. По нажатию на кнопку "Разделить":
а) люди из общего списка без заливки копируются во второй лист (Специалисты)
б) люди из общего списка с зелёной заливкой копируются в третий лист (Практиканты)
в) люди из общего списка с жёлтой заливкой копируются в четвёртый лист (Старшие)
В случае повторного нажатия на кнопку "Разделить" цикл должен повториться, то есть если я впечатал ещё пару тройку человек в общий список, а одного удалил, то после нажатия "разделить" новые разносятся по листам, а удалённые удаляются. Прикладываю файл с таблицей, в которой макрос работает, но только на одно условие (жёлтая заливка)... Добавить ещё 2 условия ну никак не получается... Помогите пожалуйста!
Изменено: Сергей GeSS - 11.07.2020 11:51:18
Страницы: 1
Наверх