Собственно в этот период до и после установки обновления с макросом начало происходить странное, он просто перестал работать, Запускаю его (не важно фул мод или медиум) и файл(эксель) просто закрывает без каких либо ошибок, как будто кто-то закрыл процесс через диспетчер задач. открываю этот же файл повторно, и слева выходит окошко "восстановление документов".
Путем экспериментов вывел, что если запустить макрос, в чистом только что созданном файле excel (т.е. в файле ничего нет) макрос отрабатывает как нормально(ну собственно там и чистить нечего), а если в новом файле поставить любой символ, в любой ячейке, сохранить, закрыть, затем открыть заного и запустить макрос, будет ситуация как описал выше.
Начал копать дальше запустил макрос через F8 и смотрел по шагам, наткнулся на то что эксель закрывается без каких либо ошибок, вот на этом моменте (см. скриншот). На строке 232 когда в окне Local в параметре X заначение -4123.
Для уточнения: Такая ситуация происходит только на рабочем ПК( если точнее то на 8 из 21 ПК в офисе), на других ПК и на домашнем таких проблем нет.
Переустановка офиса/изменение расположения хранения макроса, запуск из под админа/других юзеров/учеток результатов не принесли, Переустановить винду, такой опции нет к сожалению.
Какие могут быть идеи, куда копать?)
Испульзуемый макрос
Код
Sub ПочиститьФаилZVI()
' ZVI:2009-08-08 Active workbook excess formatting clearing
' Idea & original code of Just_Jon: http://www.mrexcel.com/forum/showthread.php?t=120831
' First attempt of modification: http://www.mrexcel.com/forum/showthread.php?t=339144
' Bugs tracking:
' 1. Range("A1") fixed to .Range("A1")
' 2. Exchanging:
' .EntireRow.RowHeight to ws.StandardHeight
' .EntireColumn.ColumnWidth to ws.StandardWidth
' Revised:2010-06-16
' 3.(ZVI:2010-06-16) Code for StandardHeight corrected. Comments shapes are skipped
' https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&TID=73659&MID=617994#message617994
' 4.(ZVI:2019-03-08) Deleting of entire columns & rows is used instead of Clear method
' https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&TID=114886&MID=954470#message954470
Const Title = "MrExcelDiet: Just_Jon's code modified by ZVI"
Const vbTab2 = vbTab & vbTab
Dim Wb As Workbook, Ws As Worksheet, LastCell As Range, Shp As Shape, Chrt As Chart
Dim Prot As Boolean, ProtWarning As Boolean, DoCharts As Boolean
Dim LastRow&, LastCol&, ShpLastRow&, ShpLastCol&, i&, AC, x
Dim SheetsTotal&, SheetsCleared&, ChartsCleared&, SheetsProtSkipped&
Dim FileNameTmp$, BytesInFileOld&, BytesInFileNew&
' Choose the clearing mode
Set Wb = ActiveWorkbook
x = MsgBox("Excess formatting clearing of " & Wb.Name & vbCr & vbCr & _
"Apply full clearing?" & vbCr & vbCr & _
"Yes" & vbTab & "- Full mode, including chart's AutoScaleFont=False" & vbCr & _
"No" & vbTab & "- Medium mode, without charts processing" & vbCr & _
"Cancel" & vbTab & "- Stop clearing & Exit", _
vbInformation + vbYesNoCancel, _
Title)
If x = vbCancel Then Exit Sub
DoCharts = (x = vbYes)
' Freeze on
With Application
.ScreenUpdating = False
.EnableEvents = False
AC = .Calculation: .Calculation = xlCalculationManual
End With
' Calculate the old file size
On Error Resume Next
With CreateObject("Scripting.FileSystemObject")
FileNameTmp = .GetSpecialFolder(2) & "\" & Wb.Name & ".TMP"
Wb.SaveCopyAs FileNameTmp
BytesInFileOld = .GetFile(FileNameTmp).Size
End With
' Processing in each worksheet
ProtWarning = True
SheetsTotal = Wb.Sheets.Count
For Each Ws In Wb.Worksheets
With Ws
' Clear an error flag
Err.Clear
' Inform on processing status
Application.StatusBar = "MrExcelDiet: processing of sheet " & Ws.Name
' Check protection
Prot = .ProtectContents
' Try to unprotect without password
If Prot Then .Unprotect ""
If (Err <> 0 Or .ProtectContents) And ProtWarning Then
SheetsProtSkipped = SheetsProtSkipped + 1
x = MsgBox(Ws.Name & " is protected and will be skipped" & vbCr & vbCr & _
"Skip warning on protected sheets?" & vbCr & vbCr & _
"Yes" & vbTab & "- Skip warning, clear sheets silently" & vbCr & _
"No" & vbTab & "- Warning on each protected sheets" & vbCr & _
"Cancel" & vbTab & "- Stop clearing & Exit", _
vbExclamation + vbYesNoCancel, _
Title)
ProtWarning = (x = vbNo)
If x = vbCancel Then GoTo exit_
Else
' Count processed worksheets
SheetsCleared = SheetsCleared + 1
' Determine the last used cell with a formula or value or comment in Ws
Set LastCell = GetLastCell(Ws)
' Determine the last column and last row
If Not LastCell Is Nothing Then
LastCol = LastCell.Column
LastRow = LastCell.Row
End If
' Determine if any merged cells are beyond the last row
For Each x In Range(.Cells(LastRow, 1), .Cells(LastRow, LastCol))
If x.MergeCells Then
With x.MergeArea
LastRow = Max(LastRow, .Rows(.Rows.Count).Row)
End With
End If
Next
' Determine if any merged cells are beyond the last column
For Each x In Range(.Cells(1, LastCol), .Cells(LastRow, LastCol))
If x.MergeCells Then
With x.MergeArea
LastCol = Max(LastCol, .Columns(.Columns.Count).Column)
End With
End If
Next
' Determine if any shapes are beyond the last row and last column
ShpLastCol = LastCol
ShpLastRow = LastRow
For Each Shp In .Shapes
If Shp.Type <> msoComment Then ' ZVI:2010-06-16
ShpLastCol = Max(ShpLastCol, Shp.BottomRightCell.Column)
ShpLastRow = Max(ShpLastRow, Shp.BottomRightCell.Row)
End If
Next
' Clear cells beyond the last column
If LastCol < .Columns.Count Then
With .Range(.Columns(LastCol + 1), .Columns(.Columns.Count))
.EntireColumn.Delete ' rev4.
If LastCol >= ShpLastCol Then
' Set StandardWidth to columns which are beyond the last col
.EntireColumn.ColumnWidth = IIf(Ws.StandardWidth, Ws.StandardWidth, 8.43) 'Ws.StandardWidth
End If
End With
If ShpLastCol < .Columns.Count Then
' Set StandardWidth to columns which are beyond the Shapes
With .Range(.Columns(ShpLastCol + 1), .Columns(.Columns.Count))
.EntireColumn.ColumnWidth = IIf(.StandardWidth, .StandardWidth, 8.43) 'Ws.StandardWidth
End With
End If
End If
' Clear cells beyond the last row
If LastRow < .Rows.Count Then
With .Range(.Rows(LastRow + 1), .Rows(.Rows.Count))
.EntireRow.Delete ' rev.4
If LastRow >= ShpLastRow Then
' Set StandardWidth to rows which are beyond the last row
.EntireRow.RowHeight = IIf(Ws.StandardHeight, Ws.StandardHeight, 12.75)
End If
End With
If ShpLastRow < .Rows.Count Then
' Set StandardHeight to rows which are beyond the Shapes
With .Range(.Rows(ShpLastRow + 1), .Rows(.Rows.Count))
.EntireRow.RowHeight = IIf(.StandardHeight, .StandardHeight, 12.75)
End With
End If
End If
' Reset last cell position of the sheet
With .UsedRange: End With
' Protect the sheet if it was unprotected
If Prot Then .Protect
End If
' Apply setting to worksheet's charts: ChartArea.AutoScaleFont = False
If DoCharts Then
For i = 1 To .ChartObjects.Count
Application.StatusBar = "MrExcelDiet: processing of chart " & .ChartObjects(i).Name
.ChartObjects(i).Chart.ChartArea.AutoScaleFont = False
ChartsCleared = ChartsCleared + 1
Next
End If
End With
Next
' Apply setting to workbook's charts: ChartArea.AutoScaleFont = False
If DoCharts Then
With Wb
For i = 1 To .Charts.Count
' Clear an error flag
Err.Clear
' Inform on processing status
Application.StatusBar = "MrExcelDiet: processing of chart " & .Charts(i).Name
' Check chart sheet protection
Prot = .Charts(i).ProtectContents
' Try to unprotect chart sheet without password
If Prot Then .Charts(i).Unprotect ""
If (Err <> 0 Or .Charts(i).ProtectContents) And ProtWarning Then
SheetsProtSkipped = SheetsProtSkipped + 1
x = MsgBox(Ws.Name & " is protected and will be skipped" & vbCr & vbCr & _
"Skip warning on protected sheets?" & vbCr & vbCr & _
"Yes" & vbTab & "- Skip warning, clear sheets silently" & vbCr & _
"No" & vbTab & "- Warning on each protected sheets" & vbCr & _
"Cancel" & vbTab & "- Stop clearing & Exit", _
vbExclamation + vbYesNoCancel, _
Title)
ProtWarning = (x = vbNo)
If x = vbCancel Then GoTo exit_
Else
' Set AutoScaleFont = False for chart sheet
.Charts(i).ChartArea.AutoScaleFont = False
SheetsCleared = SheetsCleared + 1
ChartsCleared = ChartsCleared + 1
' Protect the chart sheet if it was unprotected
If Prot Then .Charts(i).Protect
End If
Next
End With
End If
exit_:
' Calculate the new file size
Wb.SaveCopyAs FileNameTmp
BytesInFileNew = CreateObject("Scripting.FileSystemObject").GetFile(FileNameTmp).Size
Kill FileNameTmp
' Freeze off
With Application
.Calculation = AC
.ScreenUpdating = True
.EnableEvents = True
End With
' Report on results
Application.StatusBar = False
x = MsgBox("Statistics of excess formatting clearing" & vbLf & vbLf & _
"Workbook:" & vbTab & ActiveWorkbook.Name & "'" & vbLf & _
"Sheets total:" & vbTab2 & SheetsTotal & vbLf & _
"Sheets cleared:" & vbTab2 & SheetsCleared & vbLf & _
"Protected sheets skipped: " & vbTab & SheetsProtSkipped & vbLf & _
"Other sheets skipped:" & vbTab & SheetsTotal - SheetsCleared - SheetsProtSkipped & vbLf & _
"Charts cleared:" & vbTab2 & ChartsCleared & vbLf & _
"File size old:" & vbTab & Format(BytesInFileOld, "# ### ##0") & " Bytes" & vbLf & _
"File size new:" & vbTab & Format(BytesInFileNew, "# ### ##0") & " Bytes" & vbLf & _
vbLf & _
"Save the cleared workbook to keep the changes?" & vbLf & _
"Yes" & vbTab & "- Save & Exit" & vbLf & _
"No" & vbTab & "- Exit without saving, cleared", _
vbInformation + vbYesNo + IIf(BytesInFileNew < BytesInFileOld, vbDefaultButton1, vbDefaultButton2), _
Title)
If x = vbYes Then Wb.Save
End Sub
' ZVI:2009-02-02 Get last cell within values/formulas/comments of sheet Sh
' Auto-filtered & hidden rows/columns are also calculated without ShowAllData
' ActiveSheet is used if optional Sh is missing
' If VisibleOnly=True then only visible cells are searched
Function GetLastCell(Optional Sh As Worksheet, Optional VisibleOnly As Boolean) As Range
Dim SpecCells(), rng As Range, r&, c&, x, a
SpecCells = Array(xlCellTypeConstants, xlCellTypeFormulas, xlCellTypeComments)
On Error Resume Next
If Sh Is Nothing Then Set Sh = ActiveSheet
Set rng = Sh.UsedRange
If VisibleOnly Then Set rng = rng.SpecialCells(xlCellTypeVisible)
For Each x In SpecCells
For Each a In rng.SpecialCells(x).Areas
With a.Cells(a.Rows.Count, a.Columns.Count)
c = Max(c, .Column)
r = Max(r, .Row)
End With
Next
Next
If r * c <> 0 Then Set GetLastCell = Sh.Cells(r, c)
End Function
' Aux function: max value of arguments
Private Function Max(ParamArray Values())
Dim x
For Each x In Values
If x > Max Then Max = x
Next
End Function
Привет Может кто знает в какой программе есть функционал такой. сейчас делаю руками и глазами через paint(скриншот во вложении) Он мне показывает левый верхний угол, длину и высоту, и уже на основании этих данных я вычисляю правый нижний угол.
левый верхний угол (коорд.X) левый верхний угол (коорд.Y) правый нижний угол (коорд. X) правый нижний угол (коорд. Y) длина высота
Устал уже альтабаться и глаза ломать, 10 страниц гугла перевернул, и ничего не нашел где можно выделить область и как то скопировать эти данные. Отображает в тонне программ, скопировать не дает не в одной....
Добрый день, уважаемые! Я опять пришел к вам отдавать деньги, т.к. нужно комплексное решение Собственно ТЗ во вложении. 1.Первая часть тз как собственно делается всё сотрудниками руками. 2.Вторая часть собственно как должно работать и почему.
отвечу сразу, слияние не подходит по многим причинам)
Файлы с данными скину по запросу в личку на форуме(сылка на гугл диск) т.к. в данных персоналочки очень много, с готовым примером как должны быть/шаблонами/и голыми данными.
Бюджет: 1000? 1500? ****? сложно оценить, то в чем не шаришь. Предлагайте. Контакты в профиле (предпочтительно телега), email не читаю.
P.S. Активно присутствую и отвечаю с 9:00 до 18:00 по мск. потом домашняя суета
Понадобилось тут для нескольких отделов автоматизировать график отпусков Унифицированная форма № Т-7 Утверждена Постановлением Госкомстата России от 05.01.2004 № 1 Собственно вот берите пользуйтесь. Инструкция на первом листе "ИНСТРУКЦИЯ" Собственно что может: 1)На основании внесенных данных автоматически полностью заполнить всю форму Т-7 чтобы осталось только нажать печать 2)Контроль кол-ва дней отпуска 3)Создать список Праздничных и выходных дней с дальнейшим учетом (лист "производственный календарь") 4)Контроль кол-ва выходных и праздничных дней в отпуске и автоматический подсчет в форме т-7 5)на основании листа "хотелки" заполнить данные на листе "график" и при желании в ручную корректировка периодов во избежании не желательных пересечений.
Выкладываю на диски, т.к. сюда не помещается. Если надо ещё на какую нибудь шару закинуть, пишите либо в теме, либо в личку. Вес 1мб Yandex V 1.0 Google V 1.0
ОЧЕНЬ ВАЖНАЯ ИНФОРМАЦИЯ
P.S. Сделано всё на коленке, под лестницей, без света. но работает) У кого будет желание доделать/переделать милости просим)
Добрый день, Уважаемые Я VBA - дуб/дерево/баобаб, сделайте пжлста. Собственно сабж в названии. Так же есть лист желаемый результат Более расширено: Есть 2 листа. "график" - название листа неизменно (столбец "В" - ФИО, строки "4,51,98" - ДАТЫ) "хотелки" - название листа неизменно (столбец "А" - ФИО, столбец "В" - "дата С", столбец "С" - "Дата ДО"). НА одно ФИО может как быть 10 строчек с датой так и вообще не быть. На листе "График" необходимо поставить 1, Согласно ФИО и ДАТА с листа "хотелки", напротив ФИО и ДАТА на листе "ГРАФИК". На листе "график" есть 3 диапазона куда надо ставить 1, по 44 строки в каждом.
Скрытый текст
1.Суть такая изначально работники заполняют свои хотелки по отпускам. 2.Нажимается волшебная кнопочка и формируется/визуализируется график. 3.Далее уже в ручном режиме корректируется в зависимости от возможностей. 4.И в конечном итоге формируется форма Т-7 по отпускам.
P.S. Руклю надо именно вот так вот видеть, с разделением в 3 диапазона.......Я пытался добиться внятного ответа зачем и почему и т.д., но собственно не вышло...
P.S.S Из файла вырезано для примера тонна всего, кому интересно по итогу закину в облако итоговый файл и создам отдельную тему.
Доброго дня) пробовал сам отсюда >>>но быстро понял, что уже на 1 этапе мне не подходит. Пробовал в гугол но везде либо одинакова шапка у таблицы, либо это join как тут например >>>.
Суть, мне нужно собрать таблицы(с разной шапкой из разных файлов xlsx) в одну общую таблицу(прикрепил пример "ОБЩИЙ")
1)Оставляем столбик имя исходного файла 2)первый файл любой берём как есть, последующие, проверяем название столбца, совпадает = вставляем инфу в найденый столбец, иначе создаём новый столбец и вставляем на нужной нам строке инфу. 3)Magic 4)Профит
Доброго дня. Продолжение темы, первая часть тут ТЫЦ
Для тех кто не хочет переходить
Добрый день. Попал в ступор.....вот как до работы с датами доходит, вообще тупняк......и формулами мне кажется тут не справиться. мб не прав На листе "Расчет УК" есть столбцы Улица/дом/квартира/ПЕРИОД На листе "База" есть столбцы Улица/дом/квартира/дата начала/дата конца.
Надо на листе "расчет УК" в столбце S поставить статус: "Договора нет" - если по данному адресу + период, НЕ попадает в период действия договора на листе "База" "Договор есть" - если по данному адресу + период, попадает в период действия договора на листе "База"
Если при статусе "Договор есть" период на листе "Расчет УК" выпадает на "дату начала" или "дату окончания" на листе "БАЗА" поставить такие даты в соседние ячейки рядом со статусом. (пример в файле 18 и 23 строка). Вот обзац выше про даты, возможно выходит за рамки правил (одна тема один вопрос) если надо создам отдельно, но тут информация больше для понимания общей задачи, вдруг, будет макрос, и при добавлении условия что нужны ещё даты, придётся переписывать вообще с 0. Так что в случае чего Пнуть ногой в бочину, будем создавать отдельно)
Файл в реальной структуре, всё лишнее удалено. P.S. кол-во строк на каждом листе более 10000 по факту. Сортировал Улица/дом/кв/период - но в реальных файлах сортировки может не быть. Но если без сортировки никуда, будем делать)
Необходимо чтобы в Столбцах W (Дата начала) и X (дата конца) на листе "Расчет УК", проставлялась даты (выделил оранжевым на обоих листах). Если Период на листе "Расчет УК"(период подразумевается месяц т.е. например: 01.11.2017 = Ноябрь 2017), попадает на дату начала или дату конца действия договора на листе "БАЗА". Соответствующие даты проставлялись в соответствующие столбцы в ином случае пусто.
Нюансы: 1) На одном Адресе может быть несколько договоров. 2) Так же могут быть разрывы между действиями договоров.(как оказалось....) 3) Сортировка которая присутствует в примере сделана руками, по умолчанию из базы выгружается фарш (скажите если она обязательна для вашего решения) 4) Если в столбце V (cтатус НЕ Истина) на листе "Расчет УК", даты 100% быть не может. 5) В реальных рабочих файлах 50тыщ+ строк
UPD: Первоначальное решение найдено тут лютый франкенштейн, но работает.
Добрый день. Попал в ступор.....вот как до работы с датами доходит, вообще тупняк......и формулами мне кажется тут не справиться. мб не прав На листе "Расчет УК" есть столбцы Улица/дом/квартира/ПЕРИОД На листе "База" есть столбцы Улица/дом/квартира/дата начала/дата конца.
Надо на листе "расчет УК" в столбце S поставить статус: "Договора нет" - если по данному адресу + период, НЕ попадает в период действия договора на листе "База" "Договор есть" - если по данному адресу + период, попадает в период действия договора на листе "База"
Если при статусе "Договор есть" период на листе "Расчет УК" выпадает на "дату начала" или "дату окончания" на листе "БАЗА" поставить такие даты в соседние ячейки рядом со статусом. (пример в файле 18 и 23 строка). Вот обзац выше про даты, возможно выходит за рамки правил (одна тема один вопрос) если надо создам отдельно, но тут информация больше для понимания общей задачи, вдруг, будет макрос, и при добавлении условия что нужны ещё даты, придётся переписывать вообще с 0. Так что в случае чего Пнуть ногой в бочину, будем создавать отдельно) UPD: создал под эту часть отдельную тему ТЫЦ
Файл в реальной структуре, всё лишнее удалено. P.S. кол-во строк на каждом листе более 10000 по факту. Сортировал Улица/дом/кв/период - но в реальных файлах сортировки может не быть. Но если без сортировки никуда, будем делать)
В столбце F имеется эталонная сумма (является значением округлено до 2 знаков после запятой, вообще это выгрузка из БД) В столбце G эта же сумма расчитаная формулой
Собственно проблема: сумма эталон: 1603,39 Сумма рассчитанная формулой: 1603,39510451613 Я ставлю формат ячейки 2 знака после запятой и результат 1603,40 Я использую ОКРУГЛ результат 1603,40
Мне надо чтобы в этой же ячейки получился результат 1603,39 и при сравнении была истина. Как округлить до двух знаков чтобы при этом 39 не превратилось в 40 P.S. покурил вот это IEEE 754, но видать поставщик был плохой как то победить не понял :С
Суть мы указываем 2 диапазона которые необходимо сравнить между собой и между идентичными данными создать гиперссылки друг на друга. Пропуская пустые ячейки. Может быть выделен как столбец/так отдельный диапазон. Диапазоны не всегда равны друг другу (т.е. в 1 может быть 1 ячейка, а 2 может быть 500, и на оборот) Может быть так что 1 значение ведёт на 10, т.е. гиперсылка из А1 может ссылаться на B1:B10 Все диапазоны предварительно всегда будут отсортированы по возрастанию. (я так понимаю это в любом случае необходимо т.к. если будет ситуация как я написал на строчке выше, на "разорванный" диапазон гиперссылку сформировать нельзя(да и это глупо)).
Грубо говоря(объяснение школьника) ВПР по 1 столбцу только,вместо результата, создание гиперссылки на результат.
При его запуске, открывается Юзер форма которая содержит 4 элемента 1) поле с указанием одного диапазона 2) поле с указанием второго диапазона 3) окей 4) закрыть(отмена)
Хм... ну бюджет 300? 400? (Пишите в личку на форуме, цена/где удобнее общаться).
P.S. на первом листе сделал пример 1 ячейку которая ведёт на другой лист и на оборот. P.S.S. Рабочий день всё такое, так что не прям сразу же отвечаю
Собственно код для письма взял тут >>> Что нужно добавить и куда в код, чтобы при формировании письма, отправлялось от другого имени. Ручками то я могу выбрать. после создания письма. а вот как кодом.
P.S. гугл упорно не хочет давать ответом на мои вопросы. мб я неправильно его спрашиваю.
Доброго дня Даты а особенно время темный лес :С Суть: В столбце F дата модификации в столбце G надо поставить 1 если модификация совершена в период с 09:00 до 18:00, поставить 0 если модификация совершена в другой период или дата является исключеним в столбце H список дат исключений.
Доброго дня Товарищи нужна помощь с формулой/макросом. даже не знаю с какой стороны подойти. Суть: В столбце А имеются ИД объекта В столбце Б имеются Даты Надо найти самую крайнюю дату которая относится к ИД объекта. и проставить в столбец F
Во вложении ещё первые пару десятков строк раскрасил цветом для понимания. и чучуть доп комментов.
Увидел на пикабу решил поделится ТЕКСТ ОТ СЮДА, НЕ МОЁ https://pikabu.ru/story/nebolshaya_neyronnaya_set_v_yeksel_na_vba_7175038 ПАРОЛЬ ОТ АВТОРА 123 стоял но для удобства снял его Доброго времени суток! Несколько месяцев назад писал небольшую нейронную сеть в экселе на VBA в учебных целях и практики программирования на VBA. Книга с одним листом, в котором настройки нейронной сети, обучающая выборка и веса. Параметры сети: прямая, обучение методом обратного распространения ошибки; активационная функция- биполярная сигмоида; входы- до 20; формат входов- подаются данные (1;-1) слоев- 2 (один скрытый слой); нейронов в скрытом слое- до 100; выход-1. Файл старался сделать наиболее простым и понятным. Для запуска сети необходимо ввести следующие данные: - примеры для обучения и указать их количество в настройках; - правильные ответы; - количество входов; - количество нейронов в скрытом слое; - скорость обучения; - сколько эпох обучать сеть Нажать кнопку "Старт" Эксель не очень подходит для этих целей, поэтому обучение может занять довольно длительное время.
Если есть вопросы или идеи по применению пишите в комментариях или на электронную почту ****** (ПОЧТА УКАЗАНА В ПОСТЕ ПО ССЫЛКЕ ВЫШЕ т.к. правилами запрещена публикация контактов в тексте темы) P.S. по вложениям в 300кб уложился P.S.S. Местным извращенцам думаю понравится )))))) P.S.S.S Весь в код в комментариях создателя.
Ну собственно сабж в названии. Что мешает добавить? Много же возникает вопросов судя по основной ветке форума. + это будет приток новых людей, как с вопросами так и думаю тех кто будет помогать в решении.
или это плохая идея?
ОФК я понимаю что гугл таблицы не эксель и вроде как сайт планета эксель и всё такое.
Доброе утро товарищи Суть в принципе в названии, но чуть подробнее Есть столбец назначение платежа, из этого стобца нужно вытащить ФИО которое идёт перед индексом Это не всегда так но в большинстве случаев. ЗА ФИО считаем 3 слова которые идут перед индексом.
P.S. в 5 строке в примере, фио по такому принципу не вытащить, такие случаи буду уже руками отрабатывать. Пока что ничего другого как вытаскивать от индекса в голову не приходит. В файле есть мои "попыточки". В модуле регулярка, ей индекс вытаскиваю из текста.
P.S. На всякий случай все индексы которые могут присутствовать вывел на отдельный лист.
Добрый день. Имеется столбец с все возможным написанием обозначения корпуса т.е. "к, корп.,-, и т.д" Мне же надо именно например 15к5 превратить в 15/5 именно через слеш. Через найти и заменить не получается. всё превращается либо в дату либо в числовой вариант даты. (на скриншоте какие параметры выбираю) Формула не вариант, форма не позволяет добавление столбцов. Flash Fill да работает но опять же упираюсь что нужен доп столбец
Сейчас делаю так, копирую столбец в другой файл там формулами меняю и обратно макросом который вставляет в отфильтрованный выделенный диапазон.
Хотелось бы на VBA. Как я себе это представляю. всегда начинается с цифр. далее после цифр может быть все мозможное написание A-z А-я *-\@#(любые знаки) или пробел и далее опять цифры т.е. мы оставляем первые цифры и последние всё что между ними заменяем на /.
Нюансы. Только для видимых ячеек По выделенному диапазону Строк бывает вобщем более 10тысяч без учёта отфильтрованых. если общее то до 50тысяч.
Доброго дня, товарищи. Собственно порыскав в интернете ничего путного не нашел. кроме трёх которые во вложении. (в архиве потому что больше 300кб, а вдруг кому пригодятся)
Может есть у кого ещё, поделитесь, если не жалко
Вопрос к модераторам, может надо было создать в курилке, если да, перенесите пожалуйста но сюда вроде побольше народу заглядывает.
Доброго времени суток всем собственно сабж в названии ) но хотелось бы акцентировать внимание на этом.....(изменения последней версии)
Цитата
Из-за проблем с защитой исходного кода убрана возможность встраивать в книгу пользовательские функции PLEX.
из за этого на виртуальном ПК приходится использовать старую версию ( чтобы встроить и отправить....дико не хватает.... Мб есть вариант чтобы при встройке так же блокировался проект как сам plex. и нам когда нибудь вернут это чудо )
Добрый день) Во вложении в столбце К, текст вида (ИП1667/19/11002-ИП); ИД № 2-4152/2017 от 10.01.2018г. должник - Чекина Екатерина Васильевна 169905, Россия, г. Воркута, ул.Матвеева, д.6, кв.33 из него мне нужно получить только это. 2-4152/2017
Попытался регуляркой вытащить но не всегда получается потому что где то отсутствует "от" где то нет пробелов, где то слитно сразу дата? бывает что нет двойки - типо 4152/2017 а надо чтобы получилось в итоге 2-4152/2017, в примере такое тоже имеется. В файле мои попытки.
(\s2-\.?).*от это работает то когда именно формат как выше написал( но есть нюансы. смотрите в файлике которые не получились. не получается написать универсально. Не претендую на регулярки, может по доброте, душевной кто-то напишет VBA или PQ. я пытался
Добрый день, Товарищи) Почему не в ветке "работа".Тема создана специально для тех кто любит поковыряться в чём нибудь интересном т.д. просто интересно есть ли более лучшие варианты чем Fuzzy lookup. И не устраивать же кастинг в ветке "работа" в стиле кто лучше и быстрее(такое вроде низя) Собственно всё что описано ниже решается Fuzzy lookup с настройкой 0,8 точности (уже испытано и верчено 100500 раз, но довольно таки не быстро, 1000 строк примерно за 20 минут... и не прям 100% сопоставляет но это не страшно) Итак: Нам надо сопоставить РР с Базой В файле есть 2 листа (РР и БАЗА)(третий лист как раз то в каком ввиде я хочу видеть результат) не обязательно на отдельный лист(ниже пояснения) Нужно сопоставить "Адрес (местоположение):" с лита РР, "Ключ АДРЕС" с листа База.(написание адресов разное) При совпадении вывести все данные с листа база по строке, а с листа РР только которые отмечены зелёным и красным.(если на отдельный лист) Или подставить на листе РР все данные с листа База (если на лист РР) Кол-во строк на листах не совпадает. На листе РР по столбцу "Адрес (местоположение):" могут быть дубли НО "кадастровый номер" разный В связи с этим нескольким строкам на листе РР может соответствовать 1 строка с листа База и она должна быть в каждой из этих строк.
Теперь немного оффтопик(и свои мысли)
Ключ АДРЕС столбец склеивал для надстройки Fuzzy lookup формулу не стал убирать. Есть идея как сопоставлять но руки у меня выглядят примерно вот так (\/) ^_^ (\/) по этому сам реализовать не смогу. В столбце "Адрес (местоположение):" на листе РР. Всегда идёт такой порядок но могут быть отсутствия.(ниже опишу порядок) Республика, город, село(пгт, и тд.), улица, дом, квартира. (Любого из этого может не быть, но порядок всегда один) На листе база есть столбцы CDEF (Населённый пункт, улица, дом,квартира). Если в столбце С не "Воркута" подставляем значение "Воркута"а затем значение уже из этой ячейки(как в формуле) столбец А Пример: РР Республика Коми, г. Воркута, п. Цементнозаводский, ул. Ватутина, д. 21, кв. 22 База Воркута Северный Ватутина 21 22 Логика: город совпадает, посёлок нет, улица да, квартира да, кв да. почему именно так, потому что если в Базе я могу склеить как угодно. То в РР может не быть (ул. кв. п. птг) то есть все возможные написания типов П-птг-пос. это всё одно и тоже...и вариантов предусмотреть нереально......Если есть посёлок города может быть и не указано. Основной критерий сопоставления (улица, дом,) квартиры может не быть, например ИЖД(индивидульный жилой дом) г. Воркута, ул. Красных зорь, д. 3 Отвечу на возможный вопрос. Данная сверка проводится в пределах одного города. В связи с этим основной критерий (улица,дом). если бы сверка была массовая не в рамках одного города. обязательно было вы всё. Т.е. Берём строчку с листра РР Республика Коми, г. Воркута, п. Цементнозаводский, ул. Ватутина, д. 21, кв. 22 1)И ищем вхождение по очереди. С начало ищем вхождение Населённый пункт столбец С из листа дата, Цементнозаводский, Если в столбце С не "Воркута" подставляем значение "Воркута" + значение из столбце C. (МОЖЕТ ОТСУТСТВОВАТЬ) это или это(то что ниже) 2)Вхождение Воркута найдено. Цементнозаводский не найдено.(МОЖЕТ ОТСУТСТВОВАТЬ) 3)Ищем второе вхождение Улица т.е. ищем в строке РР, улицу из столбца D листа БАЗА, нашли. (ОБЯЗАТЕЛЬНО) 4)Ищем третье вхождение ДОМ (№ домов которые соответствуют этой улице с листа база) нашли.(ОБЯЗАТЕЛЬНО) 5)Ищем четвертое вхождение КВ (Список квартир которые соответствуют УЛИЦЕ И ДОМУ) (МОЖЕТ ОТСУТСТВОВАТЬ) Именно в таком порядке по причинам которые написанны выше. грубо говоря =ПОИСК("Ватутина";А1) потом после ватутина =ПОИСК("21";А1) и т.д. типо если находит значит 1 ИСТИНА, при 1 1 1, считаем что строка из БАЗЫ подходит к РР и копируем её рядом к строке РР.
Версия на гугл диске(больший объем чем в файле примере) но всё равно не такой какой будет. По факту будем иметь примерно 10 таких файлов по 100к строк.(сейчас на Воркуте, потом на остальных больших городах республики) Гугл диск
Раз уж тут вопросы по работе форума, думаю можно и по части правил задать. С подвигло меня это узнать вот эта тема тыц не ради разведения холи вара а ради интереса..... Сколько в жизни на формах сидел первый раз такое правило встречаю.... Чем мешают цифры и другие символы? vir2oz, и переписывание типо вир два оз, но ведь когда жмёшь кнопку имя ты не вслух это произносишь и не по телефону общаешься, нажал и всё (я не говорю сейчас про ники типо @mail.ru и т.д.) Вот у меня ник W1ld.Godlike. но при регистрации заставили поменять на Wild.godlike.... Собственно чего тогда и от точки не отказаться....не читаете же "вайлд точка годлайк" (или прям так реально?) или вот это меня вообще прикалывает ))) _Boroda_ (нижнее подчеркивание борода нижнее подчеркивание) Dark1589, к этому товарищу вообще замечаний не видел )))) или видел как то чувака с ником 2pizza(тоже заставили поменять), ну вот он либо две пиццы или тупица, ну вот ник такой у чувака такой что плохова то?
Ну вот собственно вопрос, как и говорил ради интереса, т.к. в принципе данное правила неудобств не доставляет. с чем связано то? ))) И если причина реально "потому что мы так хотим" то тоже имеет место быть))) как говорится в чужой огород со своей тыквой не лезут....
Привет:) Собственно последнее время стал часто видеть такую надпись. При условии что только что открыл страницу форма, и тем ни каких не создавал на момент появления данной надписи. Данная плашка висит даже если обновлять страницу. Но со временем пропадает ) Я так понимаю какой то глюк в движке форума\прав.
Добрый день Есть файлик с данными с сайта Росреестр (исходный формат Лист1) Нужно создать создать лист "Готово" (сейчас он называется как надо) И на него скопировать все строки с Лист1 которые содержат кадастровый номер. Почти всегда эти строчки начинаются на 11:16: по этому мне кажется лучше искать по маске ??:??: (Не настаиваю просто ИМХО) И переносе данных на другой лист разделить Поле "Полный адрес объекта" которое находится на листе 1 как показано на листе "как надо"(на несколько столбцов)
Так же чтобы была возможность выбора(обработать папку с такими файлами\файлы которые я просто выделю(не всю папку)) И желательно чтобы было прогресс выполнения (шкала или типо того) Т.К. файлов очень много. По сути мне нужно открыть каждый файл создать лист "готово" привести исходные данные в нужный вид сохранить закрыть и следующий файл.
Решение нужно на VBA
Больше файликов для тестов скину в личку или куда будет удобно исполнителю.
Сроки "не горит, но надо" (2-3дня)
Деньги кхм.... 500-1000? (Предлагайте)
p.s. пока писал подумал что может возникнуть вопрос что почему не использовать PQ (если я правильно понимаю PQ сделает всё что мне надо и соберёт в одну таблицу в 1 файл) а мне ещё нужно дополнительно именно в каждом файле на отдельном листе.
Добрый день. Есть файл в котором 2 столбца А - ИМЯ КОНТРАГЕНТА B - АДРЕС
Скрытый текст
Рябова Анастасия Юрьевна Авиационная 55-3 Рябов Юрий Васильевич Авиационная 55-3 Рябов Юрий Васильевич Авиационная 55-3 Рябов Юрий Васильевич Авиационная 55-3
Если на адресе несколько имён как тут. поставить что нибудь в столбец С или залить ячейки B с адресом. Т.е. ЕСЛИ НА ОДИН АДРЕС ПРИХОДИТСЯ РАЗНЫЕ ИМЕНА ПОМЕЧАЕМ ЕГО МОЖНО ВАРИАНТ И НА PQ, или VBA не принципиально. Формулой думаю это будет жостко ) но интересно ) Один адрес может быть в списке как 1 раз так и 10, и не обязательно друг за другом. Реальные файлы которые надо проверять содержат более 300000 строк
Подробнее в файле.( в файле выделил что должно пометиться)
Была у меня тут проблема. На работе 2 монитора. На одном файл эксель с данными, на другом программа. в файле много информации которую надо сверять с БД и т.д. когда работаешь с файлом excel(выделяешь его как активное окно) выделение видно нормально Но если перейти в работу с другим приложением или другим файлом эксель выделение пропадает. Открыл для себя вот это. Вставлять в модуль нужного листа. Может уже было или кто-то уже знает об этом но захотелось поделится.
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete
With Target
.FormatConditions.Add Type:=xlExpression, Formula1:=True
.FormatConditions(1).Interior.ColorIndex = 46 '19
End With
End Sub
У кого 1 монитор для тех врятли это будет актуально а для тех у кого 2 думаю будет полезно. по крайней мере лично мне стало значительно легче работать.
Тут на днях была тема по очистке файла и Сергей, скинул файл с макросом от ZVIСылка
По непонятным для меня причинам, рабочий файл из 6.5 мегабайт, превратился в 47.2мб О_О Удивлению моему не было придела. Собственно интересно как так и почему. Урезать файл чтобы выложить его сюда без толку.
Кому интересно могу скинуть на почту. или пишите на какой файл-обменик выложить. (пока что выложил на гугл диск если надо на другие перезалью)
UPD. Тема больше дня обсуждения а не для помощи, на усмотрение модераторов можно перенести в курилку. Сразу чёт не додумался