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

Страницы: 1
Как обойти доступ к объективной модели
 
Вот код что только не пробовал, требует доступ к объективной модели VBA иначе не работает.
Скрытый текст
Тут только действие которые требуют доступ к объективной модели VBA, если ли какие то варианты выполнить то же самое без доступа к объективной модели VBA. Один я знаю воспроизводить код из уже созданного заранее модуля, но он не подходит так как мне надо что бы кодом выполняло. Мне хотя бы способ воспроизводить код из файла .bas без доступа к объективной модели.
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
Поиск дубликатов и их копирование., Нужно исправить макрос
 
Код
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
Автозаполнение макросом, Так как стандартное не работает, заполнение другим способом.
 
Есть серийные номера такого типа :
3425453246436437222334635643 -начало
3425453246436437222334635943 -конец

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

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

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


1       3425453246436437222334635643 -начало
2       3425453246436437222334635943 -конец
1       4347694576857547645745654234 -начало
2       4347694576857547645745654734 -конец
Улучшение надстройки
 
Нашел надстройку (Выпадающий список со своим списком) которая подходит для нужных мне задач. Все хорошо, только бы ещё приделать бы ей количество сколько вставить: если пустое то стандартно 1 если вписать 10 то 10 раз друг за другом. Вместе с надстройкой загрузил скрины как выглядит стандартно и как хотелось бы.

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