Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
VBA. Удаление неопределенного количества столбцов
 
Mershik, Ура!!!!!!!!! Вы ГЕНИЙ!!!!!! Спасибоо вам ОГРОМНОЕ!!! Все работает!
VBA. Удаление неопределенного количества столбцов
 
Mershik, да, все верно. Нужно удалить все столбцы начиная с P до 1го появления Overall result (строка 2) и перенести колонку с 2м Overall result на место Q
VBA. Удаление неопределенного количества столбцов
 
Уважаемые знатоки, простите, что опять беспокою.. но есть задача, которую не могу решить..
есть большая таблица.. нужно удалить столбцы, но количество столбцов все время меняется.. фиксированы только A:O.
Нужно удалить все колоки начиная с P до 1й желтой колонки (Overall result, с таким название колонок в таблице 2, одна в середине, другая в конце)
Вв примере под удаление колонки P:BB, но может быть и P:BA и P:AA...
А также последнюю колонку (которая тоже свой диапозон меняет в зависимости от кол-ва столбцов) поставить на место Q
Т.е. обе колонки Overall result должны быть рядом, но сначала должны быть литры, а следом рубли.

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

конечно можно сделать это вручную, но этот шаг находится в середине полного кода макроса, т.е. это малая часть..  
VBA. Удаление строк, в которых непустая ячейка в столбце
 
Александр Макаров, спасибо ОГРОМНОЕ! Код работает и горааааздо быстрее, чем мой!
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. Копировать/вставить данные из столбца по названию столбца
 
New, Вы ГЕНИЙ!!!!!!!!! СПАСИБО ОГРОМНОЕ!!!!! Все работает!!!!!!
VBA. Копировать/вставить данные из столбца по названию столбца
 
ИЗВИНИТЕ!!! Что-то я не подумала об этом.
TEST - единый файл, куда нужно все собирать.
Daily Pricing - это исходники.

первые 21 колонка ( A-U) статичны во всех файла, а вот дальше... их может быть меньше, можеты больше... Но в основном файле собраны все возможные колонки с их названиями
VBA. Копировать/вставить данные из столбца по названию столбца
 
Уважаемы знатоки, помогите решить задачу. Есть 2 файла - 1 сбор данных за весь год, 2 выгрузка из системы (ежедневная).
Проблема заключается в том, что часть колонок может отличаться по количеству, но всегда имеет название. Например, сегодня в выгрузке 8 колонок, завтра 10.
В файле, в который инфо собирается есть все возможные колонки.
При чем первые 5 колонок статичны, они есть во всех выгрузках (например, название клиента, его код, дата, номер документа, номер продукта и тд).

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

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

в файлах иходниках примерно по 3-3,5 тыс строк. Соотвественно, в основаном сейчас около 50тыс. Возможно Query из-за этого сходит с ума.
Изменено: Мария - - 3 сен 2020 17:24:28
VBA. Имя файла в каждой строке
 
копирование файла коротко)
Код
ActiveWorkbook.Sheets("1 Öåíû êîíêóðåíòîâ Ìàñëà").Unprotect Password:="priceMONITOR052020"
Columns("A:B").Select
Selection.Columns.Ungroup
Columns("A:AP").Select
Selection.EntireColumn.Hidden = False
ActiveWorkbook.Sheets("1 Öåíû êîíêóðåíòîâ Ìàñëà").Range("A9:AP78").Copy
Workbooks("Quarter brandmap macro_test.xlsm").Sheets("copied").Range("A" & i).PasteSpecial Paste:=xlValues
Workbooks("Quarter brandmap macro_test.xlsm").Sheets("copied").Range("A" & i).PasteSpecial Paste:=xlFormats
я добавила ваш код и странность.. он по 1му файлу, которого копировал заполнил имя файла на каждой строке. А вот по 2му почему только несколько первых, а остальные остались пустыми.
При этом, если я добавляю в папку с файлами еще один новый файл, то он выдает ошибку "Run-time error '1004'. Application-defined or object-defined error".
"Новый" файл точно такой же как предыдущее только с измененным названием файла
Изменено: Мария - - 19 авг 2020 18:16:05
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 авг 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. Извлечение данных между символами
 
ocet p,
"Q" - всегдя обозначение количества.
"+" - всегдя разделитель номера ГТД и страны
"[ ]" - номер ГТД всегда в квадратных скобках
"/" - всегда разделитель, если несколько номеров ГТД. Но также он используется в самом номере ГТД, и тут он должен быть сохранен (10115070/010419/0021408/010)
VBA. Извлечение данных между символами
 
МатросНаЗебре, код работает не правильно, если строка с несколькими ГТД показывается в одну строку. Разделение номеров происходит через "/", страна вообще показывается только одна, а не 3 как должно быть.
При этом, если двойным щелчком раскрыть строку, чтобы каждый номер был на новой строке в ячейке, все работает нормально.
еще вопрос по строкам, когда одна ГТД и не указано количество. после указания страны стоит ",".
Изменено: Мария - - 6 фев 2020 08:13:27
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, но у меня возникает проблема, когда в одной строке несколько номеров и все они должны быть указаны
Изменено: Мария - - 5 фев 2020 16:42:34
VBA. Остановить макрос, если пустое значеие и запустить следующий
 
Нет, все таки проверка работает некорректно ((
Даже если есть часть данных, а часть пустая, проверка останавливает макрос. А нужно чтобы она останавливала в случае полностью пустого столбца (не включая шапку табллицы)
VBA. Остановить макрос, если пустое значеие и запустить следующий
 
спасибо ОГРОМНОЕ! проверка работает!
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
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, а если есть лист, но не нет строки с адресом, тоже может быть эта ошибка?
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, ура! письма создает! только вот вопрос. после последнего созданного письма выдает ошибку на строке
Код
        Set rng = ThisWorkbook.Worksheets(arr(i, 1)).UsedRange
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, вот реально эффект присутствия! Работает ура!

А подскажите, пожалуйста, как мне добавить текст в письмо и подпись?
просто вписать текст например в какую-то ячейку и добавить между этими строками например .Body = Range("K1") ?
Код
?
1
2
           .Subject = arr(i, 2)
           .BodyFormat = 2  'olFormatHTML - ôîðìàò HTML
мне бы конечно в идеале, как файле Дмитрия
Вместто {TABLE} таблицу, а все остальное текстом  :oops:


Добрый день!

Направляю Отчет о выполнении обязательств по BDF Договоров.
Прошу обратить внимание на договора:
{TABLE}

С Уважением,/Best regards,

Maria Fokina
Customer Operation Specialist
Изменено: Мария - - 21 май 2019 17:13:50
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, очень интересно. я отправила файл, в котором и запускала  8-0  
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, не пойму, ругается вот на эту строку
Код
        Set rng = ThisWorkbook.Worksheets(arr(i, 1)).UsedRange
выдет такую ошибку :( картинки ошибок вложила.
При этом он 1е письмо создает, а вот последующие нет

и еще вопрос, как внести текст в письмо помимо таблицы?
просто вписать текст например в какую-то ячейку и добавить между этими строками например .Body = Range("K1") ?
Код
            .Subject = arr(i, 2)
            .BodyFormat = 2  'olFormatHTML - ôîðìàò HTML
Изменено: Мария - - 21 май 2019 15:51:46
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
я сбилась с ног. но он постоянно ругается на это:
Помогите, пожалуйста!
Код
    sManager = rngEntry.Offset(0, -2)

Set rDataR = ThisWorkbook.Sheets(sManager).Cells(Rows.count, 1).End(xlUp).Row
    sTblBody = ConvertRngToHTM(rDataR)
    sBody = Replace(sBody, "{TABLE}", sTblBody)
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, не выходит :( я не могу разобраться с таблицей. Мне же нужна не вся таблица, а в письмо менеджера только его собственную таблицу.

помогите, пожалуйста, написать все правильно
e-mail в outlook с таблицей в теле письма из Excel макросовой кнопкой
 
Nordheim, простите, у меня улетела подписка на ту тему, и ваш ответ я не увидела
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Nordheim, простите, у меня улетела подписка на эту тему, и ваш ответ я не увидела :(
e-mail в outlook с таблицей в теле письма из Excel макросовой кнопкой
 
Уважаемые ГУРУ!
Помогите, пожалуйста. Я не могу никак совладать с прикреплением файла, а также таблицы в тело письма. Пример файла во вложении.

С вложением - может ли быть проблема в том, что путь к файлу формируется формулой?
Не могу никак понять, как прописать код, чтобы таблица с листа (имя листа = имя менеджера из таблицы в email) вставлялась в тело письма :(
я уже несколько макросов разных перепробовала, не могу я их под свой файл подпилить.

Плиииз ХЕЛП!

Вот имеющийся код, который прекрасно создает и отправляет письма, однако не вставляет таблицу и файл.
А еще вопрос, как прописать определенный шрифт и цвет тексту в письме?
Код
Sub CreateMail()
    Dim stFileName As String
    Dim objOutlook As Object
    Dim objMail As Object
    Dim rngEntry As Range
    Dim rngEntries As Range

    Set objOutlook = CreateObject("Outlook.Application")
    Set rngEntries = Worksheets("emails").Range("Sales_mail")
    
    For Each rngEntry In rngEntries
    stFileName = rngEntry.Offset(0, 2)
    If Dir(stFileName) <> "" Then
    
        Set objMail = objOutlook.CreateItem(0)
        With objMail
        
       On Error Resume Next
          
            .To = rngEntry.Offset(0, 0).Value
            .CC = rngEntry.Offset(0, 3).Value
            .Subject = rngEntry.Offset(0, 2).Value
            .Body = Range("F1")
            
            .Attachments.Add (rngEntry.Offset(0, 4).Value)
            .Send '.Display or .save
        End With
        
        Else
         MsgBox "No data for" & " " & rngEntry.Offset(0, -1).Value
    End If
        Next rngEntry
        
    Set objOutlook = Nothing
    Set objMail = Nothing
    Set rngEntry = Nothing
    Set rngEntries = Nothing

End Sub
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Я смотрела. Не понимаю, как таблицу в письмо вставить
Макрос. Копирование данных в лист другого файла с изменяющимся названием
 
Kuzmich, Hugo, плиииз помогите! Оно не работает :(
Макрос. Разбивка Excel файла на разные файлы в зависимости от менеджера.в
 
Юрий М, видимо эффект присутствия :) еще раз скачала файл и сохранила на диск, теперь все работает. Перенесла код на свой файл, все идеально и быстро! Хотя файл оооочень большой!
Спасибо ОГРОМНОЕ!
Страницы: 1 2 3 След.
Наверх