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

Страницы: 1
VBA Проверка фильтрации данных
 
Уважаемые Знатоки, помогите, пожалуйста, что не так в моем коде.

Есть 2 "умные" таблицы: Закупки и Продажи. В определенных колонках формула, которая в случае ошибки расчета выдает в ячейку слово "error".
Суть в том, что нужно проверить:
- если фильтр нашел слово "error", макрос выдает ошибку и останавливается
- если фильтр не нашел слово "error", макрос снимаем фильтр и продолжает отрабатывать оставшийся код

В таблице Закупки "error" нет, а вот на Продажи есть.
Макрос все равно выдает "Ошибка себ-ти Закупки", как будто он находит error" и на Продажи не проходит
Код
Sub Test()

    Sheets("Закупки").Select
    ActiveSheet.AutoFilterMode = False
    ActiveSheet.ListObjects("Закупки").Range.AutoFilter Field:=52, Criteria1:="error"
      
    If ActiveSheet.ListObjects("Закупки").Range.SpecialCells(xlCellTypeVisible).Count > 0 Then
        MsgBox "Ошибка себ-ти Закупки"
        Exit Sub
    Else
        ActiveSheet.ShowAllData

    End If
    
    Sheets("Продажи").Select
    ActiveSheet.AutoFilterMode = False
    ActiveSheet.ListObjects("Продажи").Range.AutoFilter Field:=38, Criteria1:="error"
    If ActiveSheet.ListObjects("Продажи").Range.SpecialCells(xlCellTypeVisible).Count > 0 Then
        MsgBox "Ошибка себ-ти Продажи"
        Exit Sub
    Else
        ActiveSheet.ShowAllData
    End If


End Sub
Развернуть колонки в строки
 
Добрый день, Уважаемые знатоки!

Помогите, пожалуйста. Есть исходник из базы данных: номер расчета, строка, даты и тд (повторяются), а также данные, относятся к каждой строке (кол. имя атрибута CHAR_NAME и нижнее значение атрибута CHAR_LOW и верхнее значение атрибута CHAR_HIGH)

Задача - развернуть строки в колонки:
-колонки, в которых повторяются значения (TRC_ID, KIND_RC, VALIDITY_TO, VALIDITY_FROM, ITEM_NO, SRC_LOC_NO, DST_LOC_NO, CARGO_ETSNG) остались на своих местах;
-строки с именами атрибута (кол. CHAR_NAME) стали колонками, а под ними значения CHAR_LOW и CHAR_HIGH (можно даже с заменой названий колонок, это уже не принципиально)


Пробовала и PowerPivot и PowerQuery, к сожалению сама не справилась.
Ниже файл с примером исходника и таблицы, которую нужно получить. Возможно ли это сделать минимальными ручными вмешательствами?
VBA. Замена точки на запятую из Excel в TXT
 
Уважаемые форумчане, помогите пожалуйста.
Есть задача автоматизировать загрузку в учетную систему. Данные для формируются в Excel, после чего сохраняются из него в формат Text (Tab delimited). Проблема в том, что когда происходит сохранение макросом, он у чисел заменяет разделитель запятую на точку. А в нашем случае очень важно иметь именно запятую и сохранить столбцы.
Пробовала превратить числа в текст, не получается. Колонки в файле txt съезжают и загрузка не происходит.

Excel файл - для формирования колонок в правильном формате, TXT файл - для загрузки

Код
    ThisWorkbook.Activate
    Sheets("for csv").Select
    Range("D5").Select
    ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
    Application.CalculateUntilAsyncQueriesDone
    
    Range("B5:Z5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Workbooks.Add
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    Columns("M:N").Select
    Selection.NumberFormat = "dd.mm.yyyy"
    Columns("S:S").Select
    Selection.NumberFormat = "0.00"
    Range("A1").Select
    
    File_name_for_save = Workbooks("PRICE LIST upload.xlsm").Sheets("for csv").Range("A1").Value
    
    With Application.FileDialog(msoFileDialogSaveAs)
        .InitialFileName = File_name_for_save
        If .Show = 0 Then Exit Sub
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=File_name_for_save
        Application.DisplayAlerts = True
    End With
    
    'ActiveWorkbook.SaveAs Filename:=File_name_for_save, FileFormat:=xlText, CreateBackup:=False
    'ActiveWorkbook.Close
VBA. Открыть Excel файл с SharePoint не в ReadOnly
 
Уважаемые форумчане!
столкнулась с проблемой, что при открытии файла через VBA с SharePoint, он открывается в ReadOnly.
Не могу это победить. Поискала на просторах паутины, но ответа так и не нашла.

где-то натыкалась, что нужно убрать из ссылки часть ":x:/r/". Однако, это тоже не помогло. Файл все равно в ReadOnly

тут с коде ссылка изменена.
Код
BMdata = "https://eu001-sp.shell.com/:x:/r/sites/AAAAA9296/mytmnw/emea/ruscee/xxxxxxxxx..."

Workbooks.Open BMdata
VBA. Скопировать листы из одной книги в другую
 
Уважаемые форумчание, помогите решить задачку.

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

Причем нужно сделать именно создание листа, а не копировать его из одной книги в другую.
Я столкнулась с тем, что если что-то случилось с макросом во 2й книге (т.е. сообщение Module not found") мой макрос просто прекращает работать и листы не копирует.
Опять же. В моем коде прописаны названия листов, которые копировать не нужно. Но файл "оброс" такими вот листами, и в какой-то момент мне Excel написал, что их слишком много :(

Помогите поправить существующий код.
sModel - это 1й файл, куда нужно скопировать.
Код
Set bookList = Workbooks.Open(FileItem)
    Application.CalculateUntilAsyncQueriesDone
For Each sSheet In ActiveWorkbook.Sheets
    If sSheet.Name = "Deal for pricing_Direct" _
    Or sSheet.Name = "Main" _
    Or sSheet.Name = "SAM_Direct" _
    Or sSheet.Name = "AUREUS DEAL" _
    Or sSheet.Name = "DEAL HEADER" _
    Or sSheet.Name = "DirCust+AM" _
    Or sSheet.Name = "GUARDRAILS by Sold-to" _
    Or sSheet.Name = "Product Data" _
    Or sSheet.Name = "LPC" _
    Or sSheet.Name = "FX&STL&Dist" _
    Or sSheet.Name = "PL_new" _
    Or sSheet.Name = "rules" _
    Then
    Else
        sSheet.Copy After:=Workbooks(sModel).Sheets(Workbooks(sModel).Sheets.Count)
    End If
Next
VBA. Заполнить ячейки формулой до последнего столбца
 
Уважаемые Знатоки, помогите поправить код.
Необходимо посчитать количество заполненных столбцов начиная с столбца Х по 5й строке, а в 6й строке с того же столбца Х и до конца заполнить формулой
Код
Sub Macro1()
    
    Dim lClmn As Long
    lClmn = Cells(5, Columns.Count).End(xlToLeft).Column
    Rng = Cells(6, lClmn)
    Range("X6").Select
    ActiveCell.FormulaR1C1 = "=R4C&"" : ""&R5C"
    Cells(6, 23).AutoFill Destination:=Cells(6, 23).Resize(Cells(6, lClmn).End(xlToLeft).Column - 1)
                        
End Sub
Копировать листы все кроме
 
Помогите, пожалуйста, поправить код в файле (SAM Format change_example)

Есть 3 файла -
1. Файл с макросом (SAM Format change_example)
2. Файл, в который нужно вставить
3. Файлы (все из папки), из которых нужно скопировать

Задача: нужно открыть каждый файл из указанной папки (с этим вроде проблем нет), скопировать все листы, которые не называются:
      If Sheets(i2).Name <> "Main" _
      Or Sheets(i2).Name <> "SAM" _
      Or Sheets(i2).Name <> "AUREUS DEAL" _


все бы ничего, но мой макрос копирует как раз таки все что не нужно, а что нужно игнорирует (((
VBA. Если при создании листа такой лист уже есть, изменить имя создаваемого
 
Уважаемые специалисты!
Помогте, пожалуйста, поправить код.
Задача: задано определенное имя листа (sSheetName), который нужно создать. Код должен проверять наличие листа с таким же именем. Если его нет, создать лист с именем sSheetName .
Если он есть, то переименовать имеющийся лист с припиской в имени "sSheetName_old" (если опять же такой есть, то "sSheetName_old2" и тд) и создать лист с именем sSheetName.

Если код находит sSheetName первый раз, то все хорошо. Он создает лист с "sSheetName_old". Однако если "sSheetName_old" уже есть, он не переименовывает "sSheetName" в "sSheetName_old2", а просто создает новые лист без изменения названий уже существующих
Код
Sub test()

Dim sSheetName As String
Dim a As Integer

sSheetName = ThisWorkbook.Sheets("Main").Cells(2, 20).Value 'T2

If sSheetName = "" Then Exit Sub
    On Error Resume Next
        
    For i2 = 1 To Worksheets.Count
        If InStr(Worksheets(i2).Name, sSheetName) > 0 Then
        Worksheets(i2).Name = sSheetName & "_old"
    End If
Next i2

If sSheetName & "_old" = "" Then Exit Sub
    On Error Resume Next
        
    For i3 = 1 To Worksheets.Count
        If InStr(Worksheets(i3).Name, sSheetName & "_old") > 0 Then
        Worksheets(i3).Name = sSheetName & "_old" & Worksheets(sSheetName & "_old").Count
    End If
Next i3

    Worksheets.Add.Name = sSheetName
    Sheets(sSheetName).Move After:=ThisWorkbook.Sheets("DealList")

End Sub
VBA. Некорректное копирование при установке фильтров
 
Помогите, пожалуйста. Есть триблица, которая заполняется формулами. Часть строк пустая в колонках С и D, а также имеется проверка наличия клиента в общем файле.
У меня возникает проблема с копированием, если напротив клиента стоит "+".
Было 2 варианта копирования. В 1м случае макрос копировал при любом раскладе, во 2м случае он выдает ошибку ((
Помогите, пожалуйста, прописать правильно: (1. фильтр в С - непустые значения, 2. фильтр - "<>"+""). Если строк с такими параметрами нет, то макрос идет дальше.

Вариант 1:
Код
    ThisWorkbook.Activate
    Sheets("Project for pricing").Visible = True
    Sheets("Project for pricing").Select
    ActiveSheet.ListObjects("ShiptoProject").Range.AutoFilter Field:=3, Criteria1:="<>"
    ActiveSheet.ListObjects("ShiptoProject").Range.AutoFilter Field:=7, Criteria1:="-"
    Range("ShiptoProject[['# Ship-to]:[Segment]]").Select
    Selection.Copy
    
    Workbooks.Open Filename:="C:\Apps\My Daily Work\Pricing Analyst Team\SENSITIVITY MODEL\for SAM.xlsx", WriteResPassword:="qwerty", IgnoreReadOnlyRecommended:=True, UpdateLinks:=3
    
    Windows("for SAM.xlsx").Activate
    lastrow_Inv2 = Sheets("Projects").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Projects").Range("A" & lastrow_Inv2).PasteSpecial xlPasteValues
Вариант 2:
Код
    ThisWorkbook.Activate
    Sheets("Project for pricing").Visible = True
    Sheets("Project for pricing").Select
    ActiveSheet.ListObjects("ShiptoProject").Range.AutoFilter Field:=7, Criteria1:="-"
    ActiveSheet.ListObjects("ShiptoProject").Range.AutoFilter Field:=3, Criteria1:="<>"
    
    Range("ShiptoProject[['# Ship-to]:[Segment]]").SpecialCells(xlCellTypeVisible).Copy
    
    Workbooks.Open Filename:="C:\Apps\My Daily Work\Pricing Analyst Team\SENSITIVITY MODEL\for SAM.xlsx", WriteResPassword:="qwerty", IgnoreReadOnlyRecommended:=True, UpdateLinks:=3
    
    Windows("for SAM.xlsx").Activate
    lastrow_Inv2 = Sheets("Projects").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Projects").Range("A" & lastrow_Inv2).PasteSpecial xlPasteValues
Создание письма из Excel с вложенной книгой и таблицей
 
Уважаемые Знатоки!

Помогите, пожалуйста. Мне необходимо написать код, который будет
1. Сохранять файл с заданным имененем (как Subject письма), но при этом предлагать выбрать путь, куда его сохранить
2. Формировать письмо с текстом (как на листе Main, но не табличным вариантом, а именно текстом)
3. Вставлять 2 таблицы (1я таблица С17:J20,  2я таблица С22:D28 - сложнее, т.к. в ней может быть разное кол-во строк от 2х до "неизвенстно"
4. Вкладывать в письмо этот же самый файл, из которого делаем отправку
5. Добавлять подпись

У меня есть код, но работает он далеко не в полной мере, как надо. Он создает письмо, вставляет в тело только текст строки 4. Не могу найти вариант SaveAs, так чтобы имя файла задавалось автоматически. Ну и конечно же проблема с таблицами, их я как не крутила, ничего не получается :( Я даже пробовала прописать в sTable = Range("C18:J22").Copy а в тело вставить просто таблицу. Он ее скопировал, но не вставил :(

Код
Sub Send_Mail()

    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody1 As String, sBody2 As String, sBody3 As String, sTable As String, sAttachment As String, sCC As String
 
    Application.ScreenUpdating = False
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    
    Set objMail = objOutlookApp.CreateItem(0)
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
 
    sTo = Range("Q2").Value
    sCC = ""
    sSubject = Range("Q4").Value
    sBody1 = Range("C5").Value
    sBody2 = Range("C6").Value
    sBody3 = Range("C12").Value
    sTable = Range("C18:J22").Value
 
    With objMail
        .To = sTo
        .CC = ""
        .Subject = sSubject
        .body = sBody1
        .body = sBody2
        .body = sBody3
        .Table = sTable
        '.HTMLBody = sBody
        .Attachments.Add ActiveWorkbook.FullName
        .Display 'Send
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
    
MsgBox ("DONE")
End Sub
Изменено: Мария - - 19.11.2020 17:56:18
VBA. Удаление неопределенного количества столбцов
 
Уважаемые знатоки, простите, что опять беспокою.. но есть задача, которую не могу решить..
есть большая таблица.. нужно удалить столбцы, но количество столбцов все время меняется.. фиксированы только A:O.
Нужно удалить все колоки начиная с P до 1й желтой колонки (Overall result, с таким название колонок в таблице 2, одна в середине, другая в конце)
Вв примере под удаление колонки P:BB, но может быть и P:BA и P:AA...
А также последнюю колонку (которая тоже свой диапозон меняет в зависимости от кол-ва столбцов) поставить на место Q
Т.е. обе колонки Overall result должны быть рядом, но сначала должны быть литры, а следом рубли.

Я крутила/вертела.. пыталась протянуть название в 1й строке и по названию уже удалить.. но при использовании Ctrl-> ексель "залезает" на следующее название, которое удалять не нужно и заменять тоже..

конечно можно сделать это вручную, но этот шаг находится в середине полного кода макроса, т.е. это малая часть..  
VBA. Удаление строк, в которых непустая ячейка в столбце
 
Уважаемы Знатоки! Помогите, пожалуйста, ускорить макрос.
Задача: есть файл (пример прикреплен), в котором более 30 тысяч строк. По 2м полям нужно сделать проверку и удалить строки не проходящие ее.
В данном случае, нужно оставить строки, у которых колонка М пуста.
Мой код делает это оооочень долго на таком большом количестве строк. Помогите его ускорить. Возможно делать как это через фильтр.. но я не могу понять, как ему сказать какой диапазон потом удалять, ведь первая строка после шапки таблицы может быть не 2й, а например 44й

Я использую такой код:
Код
    Dim LastRow As Long, i As Long
    LastRow = Cells(Rows.Count, "M").End(xlUp).Row
    For i = LastRow To 2 Step -1
        If Cells(i, "M").Value <> "" Then Rows(i).Delete
    Next
VBA. Копировать/вставить данные из столбца по названию столбца
 
Уважаемы знатоки, помогите решить задачу. Есть 2 файла - 1 сбор данных за весь год, 2 выгрузка из системы (ежедневная).
Проблема заключается в том, что часть колонок может отличаться по количеству, но всегда имеет название. Например, сегодня в выгрузке 8 колонок, завтра 10.
В файле, в который инфо собирается есть все возможные колонки.
При чем первые 5 колонок статичны, они есть во всех выгрузках (например, название клиента, его код, дата, номер документа, номер продукта и тд).

Как собарть данные файлы в один? Желательно макрос, чтобы находил колонку в исходнике и вставлял данные в 1ю пустую строку исходя из кол-ва строк в колонке А

Пробовала через Power Query. да, все прекрасно, она собирает все файлы в один и ставит данные по нужным колонкам, НО сегодня я столкнулась с тем, что часть данных она дублирует. Я переповерила все исходники, дубликатов нет. А в выдаваемой таблице есть.. и очень много..

в файлах иходниках примерно по 3-3,5 тыс строк. Соотвественно, в основаном сейчас около 50тыс. Возможно Query из-за этого сходит с ума.
Изменено: Мария - - 03.09.2020 17:24:28
VBA. Имя файла в каждой строке
 
Помогите, пожалуйста, исправить код.
Имеется 1 файл, в который из нескольких других файлов переносится информация. Нужно, чтобы напротив скопированной строки макрос прописывал имя файла, из которого он ее взял.
У меня по коду получается так, что макрос вписывает название только в 1ю строку из нового файла, а все остальные остаются пустыми до данных из следующего файла.

что не так?
Код
i = 2
Set dirObj = mergeObj.Getfolder("C:\Users\......")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)

... часть макроса с копированием строк

Dim fileName As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
fileName = fso.GetFilename(everyObj)


Workbooks("Quarter brandmap macro_test.xlsm").Sheets("copied").Range("AQ" & i).Value = fileName
Application.DisplayAlerts = False

bookList.Close
i = Cells(Rows.Count, 1).End(xlUp).Row + 1
Next
Изменено: Мария - - 19.08.2020 17:32:08
VBA. Слияние Excel и Word по шаблону
 
Уважаемые Знатоки! Помогите, пожалуйста подправить код:
1. Если в Word типлейте 2 раза указано поле для замены (например, &ContractNumber), оно не заполняется. Как заставить VBA заменить все встреченные, а не только 1е встреченное словосочетание.
2. Если файл с таким именем существует, VBA выдает ошибку. Можно ли файл просто заменить на новый с таким же именем?
Код
Sub FillInNotifNew()

Sheets("For Notif (new)").Select

Dim wdApp As Object
Dim wdDoc As Object

HomeDir$ = ThisWorkbook.Path

Set wdApp = CreateObject("Word.Application")
I% = 2

Do
If Cells(I%, 1).Value = "" Then Exit Do
If Cells(I%, 1).Value <> "no" Then

NPP$ = Cells(I%, 1).Text

' äëÿ çàïîëíåíèÿ óâåäîìëåíèÿ
CustomerNameFull$ = Cells(I%, 5).Text
ContractNumber$ = Cells(I%, 6).Text
ContractDate$ = Cells(I%, 7).Text
TermAgreemDate$ = Cells(I%, 8).Text
NotifDate$ = Cells(I%, 9).Text
Distributor$ = Cells(I%, 10).Text
Bonus$ = Cells(I%, 11).Text
Points$ = Cells(I%, 12).Text
AmountWritten$ = Cells(I%, 13).Text
POA$ = Cells(I%, 14).Text
BonPeriod$ = Cells(I%, 17).Text

' äëÿ íàçâàíèÿ ôàéëà
PeriodForFile$ = Cells(I%, 15).Text
ContractForFile$ = Cells(I%, 16).Text
CustomerForFile$ = Cells(I%, 4).Text

FileCopy HomeDir$ + "\template_new.docx", HomeDir$ + "\" + "Bonus Lease (" + ContractForFile$ + ") - " + CustomerForFile$ + "_ " + PeriodForFile$ + ".docx"
Set wdDoc = wdApp.Documents.Open(HomeDir$ + "\" + "Bonus Lease (" + ContractForFile$ + ") - " + CustomerForFile$ + "_ " + PeriodForFile$ + ".docx")

wdDoc.Range.Find.Execute FindText:="&CustomerNameFull", ReplaceWith:=CustomerNameFull$
wdDoc.Range.Find.Execute FindText:="&ContractNumber", ReplaceWith:=ContractNumber$
wdDoc.Range.Find.Execute FindText:="&ContractDate", ReplaceWith:=ContractDate$
wdDoc.Range.Find.Execute FindText:="&TermAgreemDate", ReplaceWith:=TermAgreemDate$
wdDoc.Range.Find.Execute FindText:="&NotifDate", ReplaceWith:=NotifDate$
wdDoc.Range.Find.Execute FindText:="&Distributor", ReplaceWith:=Distributor$
wdDoc.Range.Find.Execute FindText:="&Bonus", ReplaceWith:=Bonus$
wdDoc.Range.Find.Execute FindText:="&Points", ReplaceWith:=Points$
wdDoc.Range.Find.Execute FindText:="&AmountWritten", ReplaceWith:=AmountWritten$
wdDoc.Range.Find.Execute FindText:="&POA", ReplaceWith:=POA$
wdDoc.Range.Find.Execute FindText:="&BonPeriod", ReplaceWith:=BonPeriod$

wdDoc.Save
wdDoc.Close

End If

I% = I + 1
Loop

wdApp.Quit

MsgBox "Ãîòîâî!"

End Sub
VBA. Извлечение данных между символами
 
Доброго времени суток, Знатоки!
Очень нужна помощь в написании VBA кода.

Имеем Номер ГТД и Страну в разных форматах (колонка GTD Info), нужно информацию в одной колонке разделить на 3

например, имеем [10009190/190819/0003170/006]+[IT]
в колонке GTD No должно быть 10009190/190819/0003170/006
в колонке Country No (ISO) должно быть 380
в колонке Country Name должно быть Италия

во вложенном файле есть пример того, как должны быть заполнены колонки. а также на листе Country List - данные по странам, на основании которых должны заполняться колонки
я бы воспользовалась формулой SEARCH, но у меня возникает проблема, когда в одной строке несколько номеров и все они должны быть указаны
Изменено: Мария - - 05.02.2020 16:42:34
VBA. Остановить макрос, если пустое значеие и запустить следующий
 
Уважаемые Знатоки! Очень нужна помощь. Есть 2 макроса YFRP_Data() и Invoice_Report(). Иногда случается так, что для продолжения работы YFRP_Data нет данных в листе Invoice_Header колонка F, иногда она заполнена частично.

Вопрос, как заставить макрос проверять: если колонка полностью пустая, то стоп макрос и старт следующий Invoice_Report()

Я написала такой код для проверки, но он явно не работает, потому что макрос все равно пытается продолжить работать.
Помогите, пожалуйста!
Код
    Dim LastRow As Long, i As Long
    LastRow = Cells(Rows.Count, "F:F").End(xlUp).Row
    For i = LastRow To 2 Step -1
    If Cells(i, "F:F") = "" Then End
    Next
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Уважаемые Знатоки!
Долго и упорно копалась в интеренете и так и не смогла приладить к своему файлу макрос по написанию писем.

Итак задача:
на листе emails указаны имена менеджеров, email адреса и тема письма, которая должна генериться
В теле письма должен быть текст "Добрый день! во вложении отчет. Просьба обратить внимание на .. {таблица с листа с именем менеджера}. Подпись" + Вложенный файл
Путь к файлам заложен другим макросом
Код
 sPath = ThisWorkbook.Path & "\" & RepPeriod & "\"
.SaveAs sPath & "BDF Report_" & RepPeriod & "_" & Manager & ".xlsx"
Таблицы по каждому менеджеру разносятся на отдельные листы. Имена всегда уникальны.

Помогите, пожалуйста!  :cry:  Бьюсь 2й день!
Макрос. Разбивка листа на несколько по имени менеджера
 
Добрый день! опять я с вопросом, который не смогла победить сама.
Во вложении файлик с примером общей таблицы по договорам. Мне нужно, чтобы при нажатии кнопки, Excel создавал по имени менеджера отдельный лист с данными из общей страницы в этой же книге. Все завязано на имени менеджера и название листов в том числе.
Шапка (2 первые строки) также должна копироваться на каждый лист.
Так же крайне желательно, чтобы при повторном нажатии на кнопку "макроса" предыдущие данные с листа Менеджера стирались.
Изменено: Мария - - 15.05.2019 17:20:40
Макрос. Разбивка Excel файла на разные файлы в зависимости от менеджера.в
 
Добрый день! Помогите, пожалуйста, написать макрос, который бы разбил Excel файл по менеджерам.
В файле примере есть лист Contracts (все контракты+менеджер+stl) и листы с данными по договорам. Также на листе Contracts есть колонка Sheet name, которая соответствует названию листа с договором.

Нужно разбить так, чтобы все литы с договорами разбились по отдельным файлам в зависимости от менеджера, т.е. 1 менеджер = 1 файл = несколько листов.
При этом, чтобы листы копировались как Value+Format (без формул).
Макрос. Копирование данных в лист другого файла с изменяющимся названием
 
Помогите, пожалуйста. Не могу справиться с кодом

Название листа зависит от содержимого ячейки: Workbooks("Book1.xlsm").Worksheets("Macro").Range("E6").Value
Копировать нужно с 2й строки Workbooks("Book1.xlsm").Sheets("Invoices") - в момент копирования макрос находится именно на этом листе
Попробовала так
Код
Sub Copy_Data()

    Dim bk_src As Workbook, bk_res As Workbook, sh_res As Worksheet
    Set bk_src = Workbooks("Book1.xlsm")
    Set bk_res = Workbooks("Book2.xlsm")
    sh_res.Name = Workbooks("Book1.xlsm").Worksheets("Macro").Range("E6").Value
    sh_src.UsedRange.Offset(1, 0).Copy sh_res.[A1].End(xlDown)(2)
    
MsgBox ("INCOICES DOWNLIADING - Compleat!")

End Sub

Макрос выдает ошибку именно на :
Код
sh_res.Name = Workbooks("Book1.xlsm").Worksheets("Macro").Range("E6").Value
Макрос. Проверка столбца на наличие ошибки и остановка макроса
 
Помогите, пожалуйста. Макрос делает проверку на наличие ошибки в определенном столбце. После этого действия есть продолжение макроса.
Мне нужно, чтобы макрос прекращал полностью работу и выдавал сообщение об ошибке.
С проверкой и ошибкой проблем нет, а вот с одновременной остановкой и сообщением - проблема :(
Как допилить код?
Код
Sub Check()

    Dim LastRow As Long, i As Long
    LastRow = Cells(Rows.Count, 13).End(xlUp).Row
    For i = LastRow To 2 Step -1
    If Cells(i, 13) = "error" Then MsgBox "!!! #N/A in ServRendDate !!!"
    Range("M1").Select
    Next
End Sub
Макрос. Создание нового листа в другом файле, копирование данных из 1го файла
 
Помогите, пожалуйста, поправить макрос, чтобы он работал.
Нужно создать новый лист, присвоить имя (оно меняется и берется из определенной ячейки в файле), после этого перенести данный лист в другой файл.
Данные нужно скопировать полностью.

Не могу объединить макрос копирования и создания нового листа в другом файле. У меня проблема с тем, что имя листа каждый раз меняется :(
Код
Sub AddCopy()

    Windows("Book1").Activate
    Sheets("Invoices").Select
    Cells.Select
    Selection.Copy
    Windows("Book2.xlsm").Activate
    
    Sheets.Add(Before:=Worksheets("Sold-to for report")).Name = Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("E5")
    
    Sheets(Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("E5")).Select
    Cells.Select
    ActiveSheet.Paste
    Windows("Book1.xlsm").Activate
    Sheets("Sheet1").Select
    Range("A1").Select

End Sub
Изменено: Мария - - 09.05.2019 18:50:01
Макрос. Копирование данных из одного листа в конец другого
 
Помогите, пожалуйста! Я начинающий пользовалель макросами с данной задачей справиться не могу.
Задача. Скопировать данные из Sheet2 (начиная с 2й строки) в под данные в Sheet1. Количество строк меняется на каждом из листров.
Я попробавала такое вариант:
Код
Sub Macro2()
Sheets("Sheet2").[A1].CurrentRegion.Offset(1).Copy Sheets("Sheet1").[A1].End(xlDown)(2)
End Sub

Но столкнулась с проблемой. На листе Sheet2 есть пустые колонки. Макрос копирует данные до первой пустой колонки, а нужно копировать всю строку
Изменено: Мария - - 08.05.2019 21:30:07
Макрос. Подставить формулу VLOOKUP с переменчивым количеством строк
 
Помогите, пожалуйста.
Мне нужно написать часть макроса, которая бы подставляла формулу VLOOKUP (ВПР) с одного листа файла в другой.
Я застраяла на том, что количество строк переменчиво на листе, куда подставляем формулу.

В файле 2 страницы. На Sheet2 по Invoice No. с листа Sheet1 подставить дату из колонки D.  
Макрос. Если ячека = значение, Удалить строку
 
Помогите, пожалуйста!
Мне нужен макрос, который будет по значению в колонке В удалять полностью строку. Главное условие, что значения В (примерно 15 разных), могут в данном конктретном списке отсутвовать.
Например, во вложенном файле таблица. В колонке "В - Document Type" некие значения. Нужно проверить удалить строки, в которых в колонке В есть значение ZF8, ZB3G или ZF5. Последние значение как раз отсутствует в списке.
Подставить к продаже номер договора при условии, что у клиента может быть несколько договоров в списке
 
Помогите, пожалуйста, не могу сообразить. Есть 2 списка: список договоров (с кодом клиента и сроком действия), список продаж (с кодом клиента и датой продажи). Нужно подставить к продаже номер договора при условии, что у клиента может быть несколько договоров в списке, но с разными сроками действия.
Рассчет суммы с двумя условиями в промежутке времени
 
Уважаемые Знатоки Excel!
Очент нужна помощь в прописании формулы для расчета.

Есть данные - сф, коды продуктов, литры, даты, коды клиентов
Нужно рассчитать, сколько клиент купил литров по каждому продукту за определенный срок времени.

В загруженном файле пример.
Пожалуйста, помогите чайнику!
Страницы: 1
Наверх