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

Страницы: 1
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Добавил видео инструкции - как устанавливать надстройки и как пользоваться надстройками.
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Обновил в облаке - Выпадающий список (версию с интерфейсом и без). В него был добавлен функционал (в настройках выбирается): 1) переход на Поиск по названию после ввода 2) можно добавлять после значения # и что либо после него (так скажем для того что бы использовать для более быстрого поиска) 3) добавил для # функционал - можно вставлять то что написано после него, справа через столбик или слева в следующий столбик (справа через один что бы не нарушать дополнительную вставку) 4) так же есть функционал убирать ли # и то что после него при вставке. 5) если в списке всего лишь одна позиция то сразу её выделяет 6) в поле количество если нажать ентер или пробел теперь будет сразу происходить вставка.

Вот наглядные примеры как это работает:
Колбаса #032.2345.2354 <<< так выглядит значение, если у нас стоит галочка убирать # и что после то значение при вставке будет - Колбаса
Колбаса #032.2345.2354 <<< так выглядит значение, если у нас  стоит галочка вставлять что после # справа то при вставке вставит Колбаса , а через столбик вставит 032.2345.2354
Колбаса #032.2345.2354 <<< так выглядит значение, если не одна галочка не выбрана то вставит Колбаса #032.2345.2354
Это все сделано для быстрого поиска что бы можно было искать по номенклатурной позиции к примеру 2354 в поиске забивать и нам выдаст сразу нужный результат.
Изменено: Accel - 08.03.2024 19:51:52
Как обойти доступ к объективной модели
 
Цитата
написал:
У VBA есть объектная (от слова объект) модель.   и Вы к ней не объективны)Ну логически подумайте - КАК можно что то изменять в объектной модели проектов VBA без доступа к ней?! Вроде сами какие-то надстройки пишите...
Да я понимаю что для всего этого требуется доступ, как на создание модуля так и на изменение содержимого и удаление модуля. Мне хотя бы способ воспроизвести код из отдельного файла к примеру через .bas, но без доступа к объективной модели. Я хоть и делаю надстройки но в коде плохо разбегаюсь  :D, код за меня нейросеть пишет. Поэтому совета у людей спрашиваю так как робот не помогает. Я смог сделать только вот таким способом с объективной моделью - берем код из файла .bas, создаем модуль в текущей книге, загружаем в него код, воспроизводим код и.т.д. Пытался напрямую код через .bas запустить, но не как не вышло (по идее для этого бы наверное не требовался бы доступ к объективной модели).
Как обойти доступ к объективной модели
 
Вот код что только не пробовал, требует доступ к объективной модели VBA иначе не работает.
Скрытый текст
Тут только действие которые требуют доступ к объективной модели VBA, если ли какие то варианты выполнить то же самое без доступа к объективной модели VBA. Один я знаю воспроизводить код из уже созданного заранее модуля, но он не подходит так как мне надо что бы кодом выполняло. Мне хотя бы способ воспроизводить код из файла .bas без доступа к объективной модели.
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Цитата
написал:
Accel , напишите пожалуйста, ваша надстройка с фиксированными названиями полей/разделов) или названия полей/разделов можно изменять?  Например, можно ли без изменения кода поменять название "количество" на "объем"?
Можно поподробней ? какая надстройка, где название это. Просто у меня два варианта Макросы (этикетки) и Заполнение или даже 3 вариант шаблон для заполнения габаритов.
Изменено: Accel - 31.12.2023 10:04:27
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Просьба к модераторам можно ли изменить название темы на 4 Полезные надстройки (для работников логистики). Что то я не учел при создании темы, что название не совсем конкретизирует к чему относятся надстройки и для кого они полезны. И после удалить это сообщение.
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Залил к надстройкам шаблон для надстройки - заполнения, как выглядит ниже показано. В шаблоне кнопка для активации макроса - который подстраивает формулы подсчета объема, общего объема и общего веса. Так же делает границы и убирает все лишние границы и формулы до данных и можете не боятся удалить формулы они статичные, макросом вставляются. Так же добавил поле ввода для точности - сколько знаков после запятой, вводить можно от 1 до 6 остальной ввод блокирует. Подстраивает под данные, только когда заполнено с A по H и до последнего такого заполнения и если между данными есть пустые строки или где то из ячеек с A по H не заполнено то не заполнит в этих строках.
Скрытый текст
Изменено: Accel - 27.12.2023 17:19:01
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Обновил надстройки и ссылки них. Было много изменений: 1) Теперь две версии надстроек с визуальным интерфейсом (обложкой) и без визуального интерфейса (все стандартно). Обе работают одинаково разница лишь визуальная, ну и у кого слабые компьютеры без визуального быстрей грузится. 2) Исправлены недочеты и ошибки в некоторых надстройках и так же добавлен функционал сохранения списков. 3) Переделана, ну или точней добавлен функционал для надстройки - Заполнения. Теперь можно с помощью надстроек разбивать на части габариты и так же убирать надписи. Так же добавлена функция копирования выведенных раньше раздельных значений. У копирования много условий что бы не допускались ошибки поэтому при выводе когда нет надписей количество помечается курсивом и номер нижним подчеркиванием. Если не копируется значит не соблюдены условия. 4) У макросов теперь добавлен функционал что бы скрывать ненужные кнопки и сама форма тоже при этом уменьшается и так же подправил некоторые макросы. 5) Подправил так же создание шаблонов теперь можно любую строку удалять, а не только под номером 1. На этом все, спасибо за внимание  8)  
Изменено: Accel - 29.12.2023 15:07:05
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Цитата
написал:
Мой вопрос только в том. Несет ли полезный функционал оформление. Впрочем это не мне решать. Я люблю простые интерфейсы, без вывертов. Но кто-то любит разные шкуры.
Понял  :). Как нибудь выложу версии со стандартным интерфейсом, просто много слишком убирать надо (я уже думал как то об этом что кому то может не понравиться внешний вид).
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Цитата
написал:
может и стоит поискать компромисс между размером, пользой и красотой. Я собственно об этом.
Проблема в том что выкладываю ссылки с файлами на сторонние ресурсах ?), если да то уменьшить до 300 кб я не смогу. У меня не выйдет с тем функционалом и внешним видом. Я по крайней мере не знаю способа сжать все и навыков на это не хватит. Если нарушаю правила форума то извиняюсь и можно удалить тему полностью что бы не было нарушений. Так как выложить ресурсами форума я не могу из за ограничения в 300кб, а полностью переписывать код, убирать визуальный вид я не желаю. Слишком много времени потрачено что бы оно было так как сейчас. Так что компромисс невозможен к сожалению  :cry: .
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Цитата
написал:
Accel , Вы б посмотрели что у вас там так размер файлов растит.
Я уже писал что из за интерфейса там в каждой надстройке фон у каждой формы + у каждой кнопки фон. В результате суммарно с кодом до 1,5+ мб файл выходит  :)  и к сожалению загрузить можно только 300 кб, вот и пришлось облаком выкручиваться  :( . Инструкции 5мб, надстройки 6.5мб не так уж и сильно много  :sceptic: .
Изменено: Accel - 16.10.2023 16:41:01
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Обновил тему - добавлены инструкции к надстройкам и как их ставить.
4 Полезные надстройки, Выпадающий список, Заполнение, Макросы, Создание шаблонов.
 
Вот ссылка на надстройки и шаблоны для этикеток (для надстройки с макросами), в основном этикетки будут интересны тем кто занимается логистикой.

>>>Сами надстройки как с визуальным интерфейсом и без<<< В облако только загрузить удалось  :)

Просто демонстрация, описывать все подробно не буду. Там не сложно во всем разобраться, а так же вот вам инструкции по всем надстройкам и как устанавливать надстройки >>>Инструкции (Скриншоты) - установка и как пользоваться<<<
Видео инструкции:
Добавление надстроек в Excel https://youtu.be/LW8VdMhyJlg
Выпадающий список https://youtu.be/eqnDHF1hGyg
Макросы https://youtu.be/00mIRL00J9o
Создание шаблонов https://youtu.be/YrEKx1uduHU
Заполнение https://youtu.be/E2TvqQcclPk

И так настройка выпадающего списка:
Скрытый текст
И так надстройка заполнение:
Скрытый текст
И так надстройка макросов:
Скрытый текст
И так надстройка создание шаблонов:
Скрытый текст

Пишите что бы вы хотели видеть в той или иной надстройке, а так же пишите о найденных ошибках я постоянно проверяю и исправляю недочеты. Как говорится один тестер в тестировании не воин  :D .
Изменено: Accel - 02.06.2024 10:49:39
Надстройка для макросов., Тему можно удалить.
 
Ладно тему можно удалить на часть вопросов нашел ответ на остальные видно не найду.
Изменено: Accel - 14.06.2023 15:34:48
Поиск дубликатов и их копирование., Нужно исправить макрос
 
Начал мучить другого чат бота - домучил, раза с 20 наверное сделал все как и хотел :) Вот готовый вариант может кому пригодится и тему можно в архив.....
Код
Sub X____Копирование_коробок_по_началу_и_концу()
    Dim dataArray As Range
    Dim searchArray As Range
    Dim pasteRange As Range
    Dim startIndex As Long
    Dim endIndex As Long
    Dim copyRange As Range
    Dim i As Long

    ' Запрос выбора данных массива
    On Error Resume Next
    Set dataArray = Application.InputBox("Выберите диапазон ячеек с данными", "Выбор массива", Type:=8)
    On Error GoTo 0
    If dataArray Is Nothing Then Exit Sub ' Выход из макроса, если пользователь не выбрал диапазон

    ' Если выбран столбец, то расширяем диапазон до последней заполненной ячейки
    If dataArray.Columns.Count = 1 Then
        Set dataArray = dataArray.Resize(dataArray.Rows.Count - WorksheetFunction.CountBlank(dataArray))
    End If

    ' Запрос выбора диапазона для поиска
    On Error Resume Next
    Set searchArray = Application.InputBox("Выберите диапазон ячеек, в котором нужно искать значения", "Выбор диапазона для поиска", Type:=8)
    On Error GoTo 0
    If searchArray Is Nothing Then Exit Sub ' Выход из макроса, если пользователь не выбрал диапазон

    ' Запрос выбора места для вставки результатов
    On Error Resume Next
    Set pasteRange = Application.InputBox("Выберите ячейку, в которую нужно вставить результат", "Выбор места вставки", Type:=8)
    On Error GoTo 0
    If pasteRange Is Nothing Then Exit Sub ' Выход из макроса, если пользователь не выбрал ячейку для вставки

    ' Поиск начального и конечного индексов в массиве
    For i = 1 To dataArray.Rows.Count Step 2
        If Not IsEmpty(dataArray.Cells(i, 1)) And Not IsEmpty(dataArray.Cells(i + 1, 1)) Then
            startIndex = Application.Match(dataArray.Cells(i, 1).Value, searchArray, 0)
            endIndex = Application.Match(dataArray.Cells(i + 1, 1).Value, searchArray, 0)
            If startIndex > 0 And endIndex > 0 Then
                ' Объединение диапазона ячеек, которые нужно скопировать
                Set copyRange = searchArray.Range(searchArray.Cells(startIndex, 1), searchArray.Cells(endIndex, searchArray.Columns.Count))
                
                ' Копирование значений и форматирования в выбранную пользователем ячейку
                copyRange.Copy
                pasteRange.PasteSpecial Paste:=xlPasteAll
                Set pasteRange = pasteRange.Offset(copyRange.Rows.Count, 0)
            End If
        End If
    Next i
End Sub
Изменено: Accel - 05.05.2023 17:09:06
Поиск дубликатов и их копирование., Нужно исправить макрос
 
Цитата
написал:
Цитата
Accel написал:
не может сделать как хочу....
а хочется то как?
В начале темы написано как хочется =) даже с примером.
Поиск дубликатов и их копирование., Нужно исправить макрос
 
Надежда только на людей). Сколько не мучил бота не может сделать как хочу....
Поиск дубликатов и их копирование., Нужно исправить макрос
 
Код
Sub CopyDuplicates()
Dim sourceRange As Range
Dim destinationRange As Range
Dim searchRange As Range
Dim lastRow As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim sourceValue As Variant
Dim destinationValue As Variant
Dim searchValue As Variant
Dim copyRange As Range
Dim copyCell As Range

' Предоставление выбора источника данных
Set sourceRange = Application.InputBox("Выберите диапазон источника данных:", Type:=8)

' Предоставление выбора диапазона для поиска дубликатов
Set searchRange = Application.InputBox("Выберите диапазон для поиска дубликатов:", Type:=8)

' Предоставление выбора диапазона для вставки результатов
Set destinationRange = Application.InputBox("Выберите диапазон для вставки результатов:", Type:=8)

' Нахождение последней строки в диапазоне поиска
lastRow = searchRange.Rows.Count + searchRange.Row - 1

' Обход каждой ячейки в диапазоне поиска
For i = searchRange.Row To lastRow
searchValue = searchRange.Cells(i, 1).Value

' Проверка наличия повторяющегося значения в диапазоне поиска
If WorksheetFunction.CountIf(searchRange, searchValue) > 1 Then
' Обход каждой ячейки в источнике данных
For j = sourceRange.Row To sourceRange.Rows.Count + sourceRange.Row - 1
sourceValue = sourceRange.Cells(j, 1).Value

' Сравнение значения в источнике с значением в диапазоне поиска
If sourceValue = searchValue Then
' Формирование диапазона для копирования
If copyRange Is Nothing Then
Set copyRange = sourceRange.Cells(j, 1)
Else
Set copyRange = Union(copyRange, sourceRange.Cells(j, 1))
End If
Else
' Вставка диапазона для копирования, если он не пустой
If Not copyRange Is Nothing Then
' Копирование диапазона в указанный диапазон назначения
Set copyCell = destinationRange.Cells(k + 1, 1)
copyRange.Copy copyCell

' Увеличение индекса для следующей строки назначения
k = k + copyRange.Rows.Count

' Очистка диапазона для следующего поиска
Set copyRange = Nothing
End If
End If
Next j

' Вставка диапазона для копирования, если он не пустой после обхода всех значений источника данных
If Not copyRange Is Nothing Then
' Копирование диапазона в указанный диапазон назначения
Set copyCell = destinationRange.Cells(k + 1, 1)
copyRange.Copy copyCell

' Увеличение индекса для следующей строки назначения
k = k + copyRange.Rows.Count

' Очистка диапазона для следующего поиска
Set copyRange = Nothing
End If
End If
Next i

' Вставка последнего диапазона для копирования, если он не пустой
If Not copyRange Is Nothing Then
' Копирование диапазона в указанный диапазон назначения
Set copyCell = destinationRange.Cells(k + 1, 1)
copyRange.Copy copyCell

' Увеличение индекса для следующей строки назначения
k = k + copyRange.Rows.Count
End If
End Sub

Вот код макроса работает так:  1) выбор откуда брать значения. 2)выбор где искать дубликаты этих значений. 3)выбор куда копировать рузультат.

Ищет дубли и копирует их, хотя должен помимо этого копировать что между этими дублями (одинаковыми) и не копировать что за ними между другими дублями. Ниже файл excel как должно работать.

P.S. Макрос написал чат бот xD сколько я его не мучал не может переписать как мне надо.....

Изменено: Accel - 30.04.2023 00:07:07
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Все теперь идеально, огромное спасибо!)
Тему можно закрывать.
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Sub X_____Автозаполнение()
 Dim a, b, i&, j&, n&, p&, r&, s1$, s2$
 a = [a1].CurrentRegion: r = 1: Columns(3).NumberFormat = "@"
 For i = 1 To UBound(a) Step 2
   p = 1: s1 = a(i, 1): s2 = a(i + 1, 1)
   Do While Mid(s1, p + 1, 1) = Mid(s2, p + 1, 1): p = p + 1: Loop
   n = Val(Right(s1, Len(s1) - p))
   ReDim b(0 To Val(Right(s2, Len(s2) - p)) - n, 1 To 1)
   For j = 0 To UBound(b)
     b(j, 1) = Left(s1, p) & j + n
   Next
   Cells(r, 3).Resize(UBound(b) + 1, 1) = b: r = r + UBound(b) + 1
 Next
End Sub

Макрос стандартный использовал изменение в названии только и пустых ячеек нет и чередуются друг за другом. Единственное что цифры выдуманные попробовать решил для проверки, а до этого хорошо все было и без ошибок. Файл прикрепил там использовал макрос и результат с исходом есть.

P.S. Как все таки поменять что бы данные брались с ячейки С не как не выходит изменить (то ошибка то зависает), а вот куда вставить данные нормально. Если не трудно то можно изменённый вариант что бы данные брались с ячейки С - С1 и вставлялись в ячейку А - А2 (если А2 нельзя тогда в ячейку D - D1).

P.S.....Извиняюсь что надоел просто не силен в макросах((
Изменено: Accel - 05.09.2022 11:34:40
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Цитата
написал:
a = [a1].CurrentRegion - получение исходных данных
Cells(r, 3).Resize(UBound(b) + 1, 1) = b - вывод результатоа 3 сдесь № колонки 3-я (колонка С)
Cells(r, 4).Resize(UBound(b) тут на 4 поменял стало в ячейку D результат вставляться как и хотел

a = [a1].CurrentRegion: r = 1: Columns(3).NumberFormat = "@"  тут менял а1 на с1  он серавно берет данные с ячейки А. CurrentRegion: r = 1 - это я так понимаю в какую строку будет вставляется, так как поменял значение на 2 в ячейку D2 начал результат вставляется.

Попробовал поиграться с произвольными номерами (со стандартным макросом) и в результате почему то где то не было 0
634634643643273747743354
634634643643273747743364
634634643643273747743380
634634643643273747743390
634634643643273747743400
634634643643273747743410
634634643643273740000090
634634643643273740000100
634634643643273747743389
634634643643273747743390
63463464364327374774340
63463464364327374774341
63463464364327374774342
63463464364327374774343
63463464364327374774344
63463464364327374774345
63463464364327374774346
63463464364327374774347
63463464364327374774348
63463464364327374774349
634634643643273747743410
63463464364327374000090
63463464364327374000091
63463464364327374000092
63463464364327374000093
63463464364327374000094
63463464364327374000095
63463464364327374000096
63463464364327374000097
63463464364327374000098
63463464364327374000099
634634643643273740000100
Изменено: Accel - 05.09.2022 09:32:54
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Цитата
написал:
А почему с формулой не протянуть? Или не так понял?
Формулой протягивают, просто хочется упростить процесс нажатием 1 кнопки. У меня там цифры перед серийными номерами просто что бы показать как обычно они чередуются, эти цифры не участвуют в процессе. Суть проста в коробке 200 шт чего то на коробке указаны серийные номера начало и конец, просто они слишком длинные и не протягиваются обычным способом.

Ігор Гончаренко,
Работает код отлично, спасибо!) можно ли ещё обозначить какие значения менять - откуда берется и куда вставляется (или MsgBox прикрепить для этого выбора).
Просто сам не совсем понимаю где менять в макросе расположение откуда берет данные и куда их вставляет(по работе макроса понимаю что берет из А вставляет в С, но в макросе этого не вижу).
Изменено: БМВ - 05.09.2022 08:25:46
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Есть серийные номера такого типа :
3425453246436437222334635643 -начало
3425453246436437222334635943 -конец

4347694576857547645745654234 -начало
4347694576857547645745654734 -конец

При протягивании результата нету просто копирует себя. Формулами приходится протягивать - используя дополнительный лист.
Есть ли макрос (пытался искать но найти не могу не как) который бы действовал так : 1) выделите ячейку с началом 2) выделите ячейку с концом 3) выберите куда вставить. Или что было бы ещё лучше : 1) выберите диапазон значений выделяешь все 2) выберите куда вставить.

Где будет всегда 1 начало 2 конец и так чередоваться друг за другом.


1       3425453246436437222334635643 -начало
2       3425453246436437222334635943 -конец
1       4347694576857547645745654234 -начало
2       4347694576857547645745654734 -конец
Улучшение надстройки
 
Тему можно закрывать и в архив...)


Бонусом переделал интерфейс. Стало удобней и видней может кому пригодится эта измененная надстройка - скрин снизу как стало.
Улучшение надстройки
 
Цитата
написал:
Accel,
вроде бы так - во вложении
Огромное спасибо то что нужно!)
Улучшение надстройки
 
Нашел надстройку (Выпадающий список со своим списком) которая подходит для нужных мне задач. Все хорошо, только бы ещё приделать бы ей количество сколько вставить: если пустое то стандартно 1 если вписать 10 то 10 раз друг за другом. Вместе с надстройкой загрузил скрины как выглядит стандартно и как хотелось бы.

Возможно ли реализовать подобное и отважится ли на это кто-нибудь ?)
Страницы: 1
Наверх