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

Страницы: 1
Формирования выпадающего списка данных в ComboBox, по двум критериям поочередного поиска
 
Добрый день
Нужна ВАША помощь в написании кода, в таблице присутствует дата, имя пользователя (они формируются автоматически при открытии файла)  и числа (это и есть результат выпадающего списка) . Цель работы в том чтобы как только Ярослав откроет EXCEL документ при определенной дате на ПК например 08.07.2021, в ComboBox3 был сформирован список из соответствующих чисел  808, 355, 604. если откроет EXCEL Максим в 08.07.2021 то в ComboBox3 был сформирован список из 642, 340, 480, 696, 480.
Ниже наведен код который формирует данные с одного поискового значения и ComboBox. Подскажите как переделать код. благодарю за поддержку

Код
Private Sub UserForm_Initialize()
'(отбор уникальных значений)
Dim AllCells As Range, rCell As Range
Dim NoDupes As New Collection
Dim Item
     
    With Worksheets("справка")
    'Элементы находятся в столбце A
        Set AllCells = .Range("AA2:AA" & .Cells(Rows.Count, 27).End(xlUp).Row)
    End With
    'заполняем коллекцию элементами без повторений
    On Error Resume Next
    For Each rCell In AllCells
        NoDupes.Add rCell.Value, CStr(rCell.Value)
    Next rCell
    On Error GoTo 0
 
    'Добавление уникальных значений в  ComboBox
    For Each Item In NoDupes
        Me.ComboBox1.AddItem Item
    Next Item
End Sub
 
 
Private Sub ComboBox1_Change()
Dim i As Long, LastRow As Long, kategorija As String
    kategorija = Me.ComboBox1
    With Sheets("справка")
        LastRow = .Cells(Rows.Count, 27).End(xlUp).Row
        For i = 2 To LastRow
            If .Cells(i, 27) = kategorija Then
            End If
        Next
    End With
End Sub
Изменено: Вадим - 19.07.2021 14:37:38
Блокировка ввода однозначных чисел в TextBox
 
Здравствуйте.
Нужна помощь в доработке кода.
Ниже приведен код который позволяет ввести двухзначные значения от 26,1 до 75,9, другие двухзначные числа не вводятся в TextBox, но если ввести однозначные числа от 0 до 9 они вводятся
Как заблокировать ввод однозначных чисел от 0 до 9  .
Код
Private Sub TextBox1_Change()
If TextBox1 = "" Then Exit Sub
T = TextBox1
If Len(TextBox1) > 1 Then: If T > 75.9 Or T < 25.9 Then TextBox1 = "": MsgBox "неверный ввод" & vbNewLine & "Значения от 26,1 до 75,9, " & vbNewLine & "" & vbNewLine & "Пример    42,1", vbOKOnly + vbExclamation, ""
End Sub
Изменено: Вадим - 07.07.2021 11:58:31
Cдвинуть данные столбца вниз при вводе данных
 
Всем привет. Ниже приведен код который сдвигает вправо данные при условии записи в E3:E26.

как переделать код чтобы он сдвигает данные вниз при вводе данных в строку E30:AF30.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E3:E26")) Is Nothing Then
    x = Target.Row
    Range(Cells(x, 10), Cells(x, 31)).Copy Destination:=Cells(x, 11)
    Cells(x, 10) = Target
End If
End Sub 
Изменено: vikttur - 05.06.2021 00:16:57
Запись в одну ячейку данных с ComboBox1,ComboBox2,TextBox1
 
Здравствуйте!

Подскажите возможно ли ввести данные с ComboBox1,ComboBox2,TextBox1. в одну ячейку на Лист2 G2. или все таки ввести по отдельности а потом формулой сцепить.
Запись данных на листы с UserForm
 
Здравствуйте!

Нужна Ваша помощь

При выборе продукта (Манго...итд) в UserForm, ввожу килограммы в TextBox1/2/3 (Приход/Отгрузку/Склад), как реализовать запись данных, в последнюю пустую ячейку выбранного продукта (Манго...итд) на Листе1 Склад, Листе2 Приход/Отгрузку.
Изменено: Вадим - 17.05.2021 16:04:35
Автоформирование списка в UserForm
 
Здравствуйте !

Планирую реализовать сбор данных в UserForm с Листа1 колонки (продукт А2 по А20) которые достигли 100% колонки (% В2 по В20), после вводить данные отгрузки в % соотношении в ComboBox напротив каждого продукта (название в Label) в UserForm и оно будет вводиться в колонку (% отгруз.. С2 по С20).

Нужна Ваша помощь в реализации.

То есть чтобы при вызове UserForm формировался отчет с 1-го или более продуктов который достиг 100%  в самом UserForm, а который не достиг чтоб от там не фигурировал. Исходный файл слишком большой это лишь часть. Поиски не дали адекватного результату сам не знаю насколько это возможно.

Благодарю за помощь.
Отобразить в MsgBox количество символов после изменения в ячейке
 
Здравствуйте.

Пожалуйста подскажи макрос который...
При вводе данных в ячейку с А1 по А100 подсчитывает символы в водимой ячейке и если данная ячейка имеет до 50 символов то выводить мс бокс до 50 если больше 50-ти то мс бокс боле 50-ти.
Поиск одного или нескольких искомых данных в разных ячейках
 
Здравствуйте
Нужна помощь в создании кода.

1) Если в диапазоне А1:А16 отсутствуют слова "Москва" и "Санкт-Петербург"  тогда ничего
2) Если в диапазоне А1:А16 присутствует "Москва" и "Санкт-Петербург" запуск макроса 1 MsgBox.   Только 1- раз
3) Если в диапазоне А1:А16 присутствует минимум 1 раз слово "Санкт-Петербург" запуск макроса 1 MsgBox. Только 1- раз
4) Если в диапазоне А1:А16 присутствует минимум 1 раз слово "Москва" запуск макроса 2 MsgBox. Только 1- раз
Ниже на веден код который решает 1-3-4 условия как прописать на решениэ 2-рого условия. Причем макрос 2-го и 3-го условия будт однаковый.

Код
Sub Macros5()
Sheets("Лист1").Select
Set fcell = Columns("A:A").Find("Санкт-Петербург")
If Not fcell Is Nothing Then
    MsgBox "Санкт-Петербург Нашел в строке: " + CStr(fcell.Row)
Set fcell = Columns("A:A").Find("Москва")
If Not fcell Is Nothing Then
    MsgBox "Москва Нашел в строке: " + CStr(fcell.Row)
End If
End If
End Sub


Изменено: Вадим - 10.03.2021 15:07:19
Отображение GIF в UserForm вместо ProgressBar
 
Здравствуйте. Нужна помощь.
На Вашем сайте нашел код расширенного фильтра
ссылка https://www.planetaexcel.ru/techniques/2/197/

Немного изменив его под свои требования.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:J2")) Is Nothing Then
    UserForm1.Show 0
    UserForm1.Repaint
        On Error Resume Next
        ActiveSheet.ShowAllData
        Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:J2")
    End If
    Unload UserForm1
End Sub


А также нашел способ запуска ProgressBar.
ссылка https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=137399&a...

При вводе данных в диапазон В2;J2 срабатывает авто фильтр и запускается UserForm1 но запустить GIF файл не могу, при одновременной работе макроса фильтра. Подскажите где я ошибся. Огромную благодарность приношу всем трудящимся.)
Из за ограничения по размеру не могу сбросить файл который буде запускать UserForm на длительное время.
Изменено: Вадим - 05.03.2021 15:46:49
Сравнение и запись даты в ячейки при условии записи только имен
 
Здравствуйте.
На Вашем сайте https://www.planetaexcel.ru/techniques/6/44/ нашел замечательный код
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("A2:A100")) Is Nothing Then  'если изменененная ячейка попадает в диапазон A2:A100
            With cell.Offset(0, 1)         'вводим в соседнюю справа ячейку дату
               .Value = Now
               .EntireColumn.AutoFit  'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
            End With
       End If
    Next cell
End Sub

Подскажите что нужно добавить чтоб при вводе только имен (тексту) в ячейку диапазона A2:A100 дат сегодня сравнивался с датой ячейки диапазона B2:B100, и заменяла дату ячейки диапазона B2:B100 при условии если в ячейке диапазона B2:B100 она меньше чем сегодня.
Изменено: Вадим - 20.02.2021 18:50:39
Вводить в ячейки только дату
 
Здравствуйте

Ниже наведен макрос который блокирующий ввод данных в ячейку А5:А100  при условии если ввели не число а дату или текст.
Как переделать чтоб множа было вводить только дату (формат 17.02.2021) при условии если она сегодня, а день начинается с 9:00. И не плохо было бы если при удалении даты (очистка) ячейка не очищалась, то есть ячейка постоянно должна быть заполнена датой.
Понимаю что много на писал, сбросьте информацию по возможности. Благодарю
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vRange As Range
  Set vRange = Range("A5:A100")
  Set Target = Intersect(Target, vRange)
  If Target Is Nothing Then Exit Sub
  For Each vRange In Target
    If Not IsNumeric(vRange) Then
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
      MsgBox "Ввод отменён. Недопустимое значение", vbCritical
      Exit Sub
    End If
  Next
End Sub

Бегущая строка загрузки с процентами в UserForm
 
Здравствуйте.
Имею файл создания папок и документов но не знаю как оттуда вытащить макрос бегущей строки и процента загрузки в числовом формате, + он некорректно работаєт. но мне нужно только строка и % загрузки в таблице. Подскажите пожалуйста где они находятся.
Благодарю!
Изменено: Вадим - 10.02.2021 18:09:18
Удаление файла при условии открытия вне заданной папки, доступ к файлу с несколько дисков
 
Здравствуйте!
На Вашем сайте нашел полезеный макрос
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=136033&a...
Код
Private Sub Workbook_Open()
If ActiveWorkbook.Path <> "C:\Users\Badim\Desktop\Новая папка" Then
    Application.DisplayAlerts = False
    ThisWorkbook.ChangeFileAccess xlReadOnly
    Kill ThisWorkbook.FullName
    Application.DisplayAlerts = True
    ThisWorkbook.Close 0
  End If
  End Sub

Но у меня осуществляться доступ к файлу с несколько локальных дисков

Что нужно добавить в код чтобы с 1 по 10 путь не удаляло файл.
Например

1 путь "C:\Users\Badim\Desktop\Новая  папка"
2 путь "Z:\Users\Badim\Desktop\Новая папка"...
10 путь "D:\Users\Badim\Desktop\Новая папка"
Пробовал ставить звездочки, дублировать типа.
Код
If ActiveWorkbook.Path <> "C:\Users\Badim\Desktop\Новая папка" Then
If ActiveWorkbook.Path <> "Z:\Users\Badim\Desktop\Новая папка" Then
If ActiveWorkbook.Path <> "D:\Users\Badim\Desktop\Новая папка" Then
Изменено: Вадим - 04.01.2021 17:27:01
Установка отметки выполнено "галочки" в заполненной ячейке текстом.
 
Как установить отметку "галочку" после заполнения ячейки текстом в колонке AE как в колонке AD
Изменено: Вадим - 26.12.2020 23:36:05
Закрасить ячейку, в тексте которой есть сегодняшняя дата
 
Здравствуйте.
Нужна помощь, при автоматическом объединении даты и ФИО в колонку 35 чтобы заливка ячейки колонки 35 выполнялся цветом, при условии если день сегодня, если же день вчера то без цвета.
VBA макрос обеднение данных по условию изменение двух ячеек.
 
Здравствуйте! Благодарю сайт, и небезразличных людей которые помогли мне в создании этого файл на Вашем сайте. Нужна Ваша помощь.
В прикрепленном файле присутствует макрос который при изменении данных ТОЛЬКО В ДВУХ ЯЧЕЙКАХ AD-AE, (даты и ФИО) объединяет две ячейки AD-AE, и записывает эти данные в ячейку с AI...по AL. При нажатии на кнопку (Нажми) вызывается Toolbox из выпадающим списком и в тоже время удаляются все данные с столбца AE для ввода нового ФИО, а также крайний столбец AL чтобы данные дальше не вводились.
Как оно сейчас работает
После смены даты в ячейке AD8 (06.12.2020) и ввода ФИО в AE8 (Иванов) эти данные объединяются и вводятся в ячейку AI8 (07.12.2020 Иванов) . Если же в ячейке AI8 уже прописана дата и ФИО (06.20.2020 Иванов) то после изменении даты в AD8 на (07.20.2020) и ввода того же ФИО AE8 (Иванов) данные уже не будет вводится.
Оно почему то реагирует на не измененную ФИО ячейку хотя она была пустая (после нажатия на кнопку Нажми).
Стоит изменить ячейку даты AD8 (06.20.2020) на (07.20.2020) и ФИО AE8 (Иванов) на (Петров) ячейка AI8 среагирует и внесет изменение (07.20.2020 Петров) с сдвигом данных.
Моя преследуемая цель такова. Чтобы при смене данных в двух ячейках даты AD8 и ввода любого ФИО (одинакового - неодинакового)в AE8, изменялись данные на новые в столбце АІ8 и они сдвигались по AL, дальше ввод данных прекращался но сдвиг происходил.
Благодарю все кто хотя бы прочитал данный пост, и заранее извиняюсь если нарушал закон, правило форума перед модераторами.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:I2")) Is Nothing Then
     ActiveSheet.Unprotect Password:=""
        On Error Resume Next
        ActiveSheet.ShowAllData
        Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
        ActiveSheet.Protect Password:=""
   End If
  Dim rg As Range, rw As Range, r&
  Set rg = Intersect(Target, Range("AD:AE"))
  If rg Is Nothing Then Exit Sub
  ActiveSheet.Unprotect Password:=""
  For Each rw In rg.Rows
    r = rw.Row
    If Cells(r, 30) <> "" And Cells(r, 31) <> "" And _
    InStr(Cells(r, 35), Cells(r, 30).Text) = 0 And _
    InStr(Cells(r, 35), Cells(r, 31)) = 0 Then
      Application.EnableEvents = False
      Range(Cells(r, 35), Cells(r, Columns.Count).End(xlToLeft)).Copy Cells(r, 36)
      Cells(r, 35) = Cells(r, 30).Text & " " & Cells(r, 31): Application.EnableEvents = True
    End If
  Next
  ActiveSheet.Protect Password:=""
End Sub

Sub ee()
  Application.EnableEvents = True
End Sub

Изменено: Вадим - 21.12.2020 12:10:48
Смещение данных в столбцах при изменении данных в других столбцах
 
Здравствуйте!

На Вашем форму заинтересовал один макрос, который при вводе данных в одну ячейку он автоматически сдвигает строку с данными в право, но если изменить вводимый диапазон то история данных будет вносится в каждую 3-ю ячейку а 2-я будет пустая.
Подскажите пожалуйста что надо исправить в макросе чтобы при смене даты в столбце E3:E26 она  записывалась со смещением в столбец J3:J26 а данные с этого столбца смещались правее в столбцы К3:К26, L3:L26, M3:M26... AF3:AF26.

Буду очень признателен если Вы поможете мне именно на моем примере, так как в найдено макросе не могу это реализовать.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  ff = ActiveCell.Address        
    If ActiveCell.Address = "$B$6" Then
      
    Range("B5:O5").Select
    Range("O5").Activate
    Selection.Copy
    Range("C5").Select
    ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
        IconFileName:=False
Else
Exit Sub
End If
Перенос данных из таблицы Б в таблицу А с заду на перед в неравномерно заполненных строках
 
Подскажите как перенести текст с таблицы Б в таблицу А при условии начала заполнение таблицы А с столбца В?
Изменено: Вадим Яворов - 12.12.2020 16:23:17
Автоматическая защита листа после ее отключения
 
Подскажите макрос который будет прописан в листе с видимым паролем чтоб после снятие защиты с листа (ввода пароля) и редактирование (админ) админ не вводил пароль заново а сохранял лист или что в этом роде для автоматической защити листа паролем который прописан в макросе. Проблема такова что после снятие и ввода пароля иногда забываешь пароль:( . Благодарю
Выпадающий список с автофильтром в объединенных наименованиях
 
Здравствуйте. Благодарю сайт за формулы и макрос с помощью которых я собрал эту таблицу для сортировки данных  но дальше продвинутся не могу. Помогите пожалуйста.
Проблема такова
Єсть макрос который фильтрует данные в ячейках А7 і J7 по А1000 і J1000, но при условии что вводные значения будут прописаны с клавиатуры в ячейку В2 но если описанная назва в ниже описанных ячейках.   А 7 по А1000 будет находится первой в строке. А если она прописана после запятой и тд то она не подтягивается. Пример (Фрукты,Зелень) то при вводе Зелень фильтруются только те ячейки в которых Зелень прописана первой. (Не в середине или конце)
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2:Q2")) Is Nothing Then
   On Error Resume Next
   ActiveSheet.Unprotect Password:="1"
        ActiveSheet.ShowAllData
        Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
   ActiveSheet.Protect Password:=""
    End If
    If Not Intersect(Target, Range("A2:Q2")) Is Nothing Then
        On Error Resume Next
        ActiveSheet.ShowAllData
        Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
    End If
End Sub
Изменено: Вадим Яворов - 02.12.2020 14:01:36
Страницы: 1
Наверх