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

Страницы: 1 2 3 4 След.
VBA Проверка фильтрации данных
 
Спасибо ОГРОМНОЕ! Все работает
VBA Проверка фильтрации данных
 
Да, проблема только в том, что Count>1 в том числе не работает

Если "error" найден на Закупках, перехода на Продажи быть не должно
Изменено: Мария - - 08.04.2024 12:05:30
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
Развернуть колонки в строки
 
Alex, ну почти :)

не все строки соответсвуют..

вот результат query
TRC_IDKIND_RCCALC_MODEVALIDITY_TOVALIDITY_FROMITEM_NOSRC_LOC_NODST_LOC_NOCARGO_ETSNGSUB_RPS_LOWST_FROM_LOWST_DEST_LOWCODE_ETSNG_LOW
00000000010002704668КР1202309302023070100038151605790003531075001151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075001151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075001151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075002151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075002151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075002151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075003151605790003531075
00000000010002704668КР1202309302023070100038151605790003531075003151605790003531075
00000000010002704668КР1202309302023070100038151605790003531075003151605790003531075
а вот как должно быть:
TRC_IDKIND_RCCALC_MODEVALIDITY_TOVALIDITY_FROMITEM_NOSRC_LOC_NODST_LOC_NOCARGO_ETSNGSUB_RPS_LOWST_FROM_LOWST_DEST_LOWCODE_ETSNG_LOW
00000000010002704668КР1202309302023070100038151605790003531075001151605790003531075
00000000010002704668КР1202309302023070100038151605790003531075001151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075002151605790003531075
00000000010002704668КР1202309302023070100038151605790003531075002151605790003531*
00000000010002704668КР1202309302023070100038151605790003531075003151605790003531075
00000000010002704668КР1202309302023070100038151605790003531075003151605790003531*
Развернуть колонки в строки
 
МатросНаЗебре, сколько вы хотите за такую работу? Я как бы реальной уже не против заплатить за труд профи, ибо я уже поняла, что это разряд не "просто для профи" , а "тут подводных камней миллион и 2 штуки" :(
Развернуть колонки в строки
 
surkenny, в исходном варианте имеем таблицу в которой есть часть повторяющихся данных (расчет, даты, номер строки). Для каждой строки есть набор атрибутов в линейном исполнении (станции отправления и назначения, коды груза, коды транспорта и тд).
Так вот, одной строке расчета может соответствовать несколько станций отправления и несколько станция назначения, грузов и транспорта. Может быть ситуация, когда каких то атрибутов и нет.. тут много вариаций "на тему"...
Смысл в том, что макрос или query должны превратить строки с атрибутами в колонки по принципу из сообщения 14.

К примеру, есть расчет (TRC_ID) и его строка (ITEM_NO). По строке есть 1 станция отправки и 2 станции прибытия (таб.1) и к примеру 2 разных кода груза (таб.2) и 2 вида транспорта (таб.3)

Т.е. на каждую вариацию станций, грузов, транспорта для своей строки расчета (ITEM_NO) должна быть отельная строчка, где номера расчета и строки повторяются, а вот дальше идут вариации атрибутов

Таб.1
ST_FROM247206
ST_DEST526908
ST_DEST293609
Таб.2
CODE_ETSNG264432
CODE_ETSNG264*
Таб.3
SUB_RPS003
SUB_RPS002
На выходе мы должны получить таблицу:
CHAR_LOWCHAR_LOWCHAR_LOWCHAR_LOW
003247206526908264432
002247206293609264*
003247206526908264432
002247206293609264*

На тему сообщения 9. Это мой косяк, я не заметила, что данные не продублировались, должно быть
SUB_RPSST_DESTST_FROMCODE_ETSNGCODE_ETSNG
VALIDITY_TOVALIDITY_FROMITEM_NOCHAR_LOWCHAR_LOWCHAR_LOWCHAR_LOWCHAR_HIGH
202401312023100100014003723507036905132356
202401312023100100014003723507036905132*201*
202401312023100100014003638003036905132356
202401312023100100014003638003036905132*201*
Развернуть колонки в строки
 
МатросНаЗебре, как то по-дурацки таблицы в посте показываются. Ниже файл с проверкой, исходником и как должно быть
Развернуть колонки в строки
 
МатросНаЗебре,  не помогло :( по-моему осталось как было :(
00000000010003601152КР1202401312023100100013036905510401132356003
00000000010003601152КР1202401312023100100013036905510401132356036905
00000000010003601152КР1202401312023100100013036905510401132356723507
00000000010003601152КР1202401312023100100013036905510401132356132356
00000000010002757594КР1202309302023070100004247206526908264432002526908247206264432
00000000010002757594КР1202309302023070100004247206526908264432002526908247206264*
00000000010002757594КР1202309302023070100004247206526908264432002293609264432
00000000010002757594КР1202309302023070100004247206526908264432002293609264*
Развернуть колонки в строки
 
МатросНаЗебре, макрос работает так, что оставляет пустые ячейки:
00000000010003601152КР1202401312023100100013036905510401132356003
00000000010003601152КР1202401312023100100013036905510401132356036905
00000000010003601152КР1202401312023100100013036905510401132356723507
00000000010003601152КР1202401312023100100013036905510401132356132356
а должно быть :
00000000010003601152КР1202401312023100100013036905510401132356003 723507 036905 132356
или вот еще вариант
00000000010002757594КР1202309302023070100004247206526908264432002526908247206264432
00000000010002757594КР1202309302023070100004247206526908264432002526908247206264*
00000000010002757594КР1202309302023070100004247206526908264432293609264432
00000000010002757594КР1202309302023070100004247206526908264432293609264*
а должно быть
00000000010002757594КР1202309302023070100004247206526908264432002 526908 247206 264432
00000000010002757594КР1202309302023070100004247206526908264432002 526908 247206 264*
00000000010002757594КР1202309302023070100004247206526908264432003 293609 247206 264432
00000000010002757594КР1202309302023070100004247206526908264432003 293609 247206 264*
Развернуть колонки в строки
 
Alex,  В первую очередь спасибо за участие и попытку помочь!

Ниже файлик с вашей крайней версией PQ. На листе "источник" доп данные выделены желтым, а на "должно быть" оранжевым выделила расхождения в заполнении

Попробую еще раз объяснить что не так.
К примеру, есть расчет (TRC_ID) и его строка (ITEM_NO). По строке есть 1 станция отправки и 2 станции прибытия (таб.1) и к примеру 2 разных кода груза (таб.2) и 2 вида транспорта (таб.3)
Таб.1
ST_FROM247206
ST_DEST526908
ST_DEST293609
Таб.2
CODE_ETSNG264432
CODE_ETSNG264*
Таб.3
SUB_RPS003
SUB_RPS002
На выходе мы должны получить таблицу:
CHAR_LOWCHAR_LOWCHAR_LOWCHAR_LOW
003247206526908264432
002247206293609264*
003247206526908264432
002247206293609264*
Развернуть колонки в строки
 
Alex, не получается :( данные в других колонках не дублируются
Изменено: Мария - - 04.10.2023 23:45:46
Развернуть колонки в строки
 
Alex, Добрый вечер! Спасибо огромное!

В том то и соль :( Ничего не задвоилось все правильно... Разные станции (ST_DEST "от" / ST_FROM "до") и 2 кода грузов одного расчета и одной строки расчета.

Соответственно, на каждое сочетание станций приходится 2 строки с разными кодами грузов (см. таблицу ниже)

И вот с этим "дублированием теперь есть проблема :(
Изящные решения (ваше и макрос от МатросНаЗебре, ) прекрасно работают, но вот такое развитие событий не учитывают..

При чем, может быть не только 2 кода грузов, а на пример 1 код станции ST_DEST "от" и несколько кодов станций ST_FROM "до". и не только :(


SUB_RPSST_DESTST_FROMCODE_ETSNGCODE_ETSNG
VALIDITY_TOVALIDITY_FROMITEM_NOCHAR_LOWCHAR_LOWCHAR_LOWCHAR_LOWCHAR_HIGH
202401312023100100014003723507036905132356
202401312023100100014003723507036905132*201*
202401312023100100014638003036905132356
202401312023100100014638003036905132*201*
Развернуть колонки в строки
 
МатросНаЗебре, простите, не поняла
Развернуть колонки в строки
 
МатросНаЗебре, данные заполнены по принципу работы PowerQuery. Т.е. если одного атрибута несколько строк для одного расчета + строки, то строка дублируется
В данном примере видно, что у нас 2 сочетания ST_DEST и ST_FROM (см.табл1) и атрибут CODE_ETSNG с разными значениями (132356 и 132*)
ST_DESTST_FROM
CHAR_LOWCHAR_LOW
723507036905
638003195001
по итогу мы должны получить вот такую таблицу:
ST_DESTST_FROMCODE_ETSNG
CHAR_LOWCHAR_LOWCHAR_LOW
723507036905132356
723507036905132*
638003195001132356
638003195001132*
и да! ОГРОМНОЕ спасибо макрос работает, но не учитывает пример, который я описала в этом сообщении
Развернуть колонки в строки
 
Sanim, вы мне сейчас предложили простой способ перевернуть всю таблицу. А мне не нужно переворачивать всю, первые колонки должны остаться как есть. Поэтому мою задачу такой способ не решит.
Развернуть колонки в строки
 
Добрый день, Уважаемые знатоки!

Помогите, пожалуйста. Есть исходник из базы данных: номер расчета, строка, даты и тд (повторяются), а также данные, относятся к каждой строке (кол. имя атрибута 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
 
artemkau88, Спасибо большое за попытку помочь, но с самой загрузкой что-то пошло не так.. пока разбираюсь, но главное меняет. Сдаваться не буду.


RAN, и Вам ОГРОМНОЕ спасибо! У нас обновили офис, и ваш вариант заработал! и загрузка проходит правильно.
VBA. Замена точки на запятую из Excel в TXT
 
Я так тоже пробовала. Все равно меняет запятые на точки. А в моем случае крайне критично оставить именно точки
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. Открыть Excel файл с SharePoint не в ReadOnly
 
Дмитрий(The_Prist) Щербаков, да, именно в ReadOnly. Если открываю с сайта "руками", все ок.
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. Скопировать листы из одной книги в другую
 
МатросНаЗебре, Спасибо ОГРОМНОЕ! Работает
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. Заполнить ячейки формулой до последнего столбца
 
Mershik, ОГРОМНЕЙШЕЕ Вам спасибо! Все оказалось гораздо проще, чем я пыталась изобразить  :D  
VBA. Заполнить ячейки формулой до последнего столбца
 
Вообще в итоге должны будут получиться сцепленные значения через " : " из 4й и 5й строк, но только начиная с колонки Х
т.е. в Х4 = XD22, Х5 = Free of charge disc, а в итоге в Х6 = XD22 : Free of charge disc

Но по факту это может быть не только формула сцепки 2х ячеек
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
Копировать листы все кроме
 
Названия части листов в 2х файлах одинаковые и в файле, из которого копируем, есть листы отличные по названию (например, NL_2021-03). Вот как раз его и нужно скопировать.
Код это делает, только он его вставляет 11 раз. А если листов таких не 1, а 2, то второй он вообще игнорирует и не копирует.
Копировать листы все кроме
 
Он начал копировать нужные листы, НО в 11ти экземплярах и при чем только 1 лист из 2х (( Как будто он вовремя не остановился
Код
For i2 = 1 To Sheets.Count
    If Sheets(i2).Name = "Main" _
    Or Sheets(i2).Name = "SAM" _
    Or Sheets(i2).Name = "AUREUS DEAL" _
    Or Sheets(i2).Name = "Deal for pricing" _
    Or Sheets(i2).Name = "FX" _
    Or Sheets(i2).Name = "PL" _
    Or Sheets(i2).Name = "Ship-to data" _
    Or Sheets(i2).Name = "GUARDRAILS by Sold-to" _
    Or Sheets(i2).Name = "ProdName" _
    Or Sheets(i2).Name = "rules" _
    Or Sheets(i2).Name = "STL&Distr" _
    Or Sheets(i2).Name = "Project for pricing" _
    Or Sheets(i2).Name = "Projects" _
    Or Sheets(i2).Name = "LPC_old" _
    Or Sheets(i2).Name = "LPC" Then
    Else: Sheets(i2).Copy After:=Workbooks(sModel).Sheets(Workbooks(sModel).Sheets.Count)
       End If
Next i2
Изменено: Мария - - 06.03.2021 09:13:20
Копировать листы все кроме
 
Помогите, пожалуйста, поправить код в файле (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" _


все бы ничего, но мой макрос копирует как раз таки все что не нужно, а что нужно игнорирует (((
Страницы: 1 2 3 4 След.
Наверх