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

Страницы: 1 2 След.
Выравнивание и редактирование заголовка UserForm
 
Доброе. Имеется код который убирает крестик в UserForm. Возможно ли его доработать так, что бы заголовок UserForm выравнивался по центру имел шрифт "Times New Roman", жирный, размер 14.
Код
Private Const GWL_STYLE As Long = -16& 'для установки нового вида окна
Private Const GWL_EXSTYLE = -20& 'для расширенного стиля окна
Private Const WS_CAPTION As Long = &HC00000 'определяет заголовок
Private Const WS_BORDER As Long = &H800000 'определяет рамку формы
'Функции API, применяемые для поиска окна и изменения его стиля
#If VBA7 Then
    Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As LongPtr) As Long
#Else
    Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hwnd As Long) As Long
#End If

Sub NoQueryClose(FormName As String)
    Dim ihWnd, hStyle
    'ищем окно формы среди всех открытых окон
    If Val(Application.Version) < 9 Then
        ihWnd = FindWindow("ThunderXFrame", FormName) 'для Excel 97
    Else
        ihWnd = FindWindow("ThunderDFrame", FormName) 'для Excel 2000 и выше
    End If
    'получаем информацию о найденном окне(стили и т.д.)
    hStyle = GetWindowLong(ihWnd, -16&)
    'убираем кнопку крестика
    SetWindowLong ihWnd, -16&, hStyle And Not &H80000
End Sub
Создать TextBox и разрешить вводить только цифры
 
Доброе. У меня не получается с помощью кода создать TextBox и ограничить ввод символов. Подскажите, как реализовать?
Так же нужно, что бы во время ввода пропадал Label1 а если TextBox пустой Label1 появлялся.
Создать новую книгу и сохранить как скрытый файл
 
Доброе, имеется код который проверяет наличие файла и если файла нет то он создаёт его, однако мне нужно что бы файл был скрытым. Как это сделать?
Код
    If Len(Dir$(ThisDocument.Path & "/" & "Data.xlsx", vbHidden)) > 0 Then
        MsgBox ("Файл существует!")
    Else
        Workbooks.add
        Application.Visible = False 'Делаем запуск приложения невидимым
        'Вставляем данные
        Worksheets(1)
        Range("A1").Value = "Фамилиё"
        Range("B1").Value = "Имя"
        Range("A1:B1").Font.Bold = True
        Range("A2").Value = "Doe"
        Range("B2").Value = "John"
        'Отключаем системные сообщения
        Application.DisplayAlerts = False
        'Сохраняем книгу
        Workbooks.SaveAs ThisDocument.Path & "/" & "Data.xlsx"
        'Включаем системные сообщения
        Application.DisplayAlerts = True
        'Закрываем книгу
        Workbooks.Quit
    End If
Обмен данными из UserForm Word с Excel
 
Доброе, помогите реализовать идею. В файле Word Есть UserForm в которой имеются TextBox (Фамилия, имя, отчество), так же две кнопки, "Добавить" и "База". Каким образом можно сделать что бы при нажатии кнопки добавить ФИО сохранялось в Excel а при нажатии кнопки База открывается еще окно со списком ранее сохранённых ФИО при выборе нужного человека, TextBox заполняется выбранными данными.
Автоматическое форматирование даты в TextBox
 
Доброе.
Решил поделиться своим решение автоматического форматирования даты в TextBox. Возможно кому-то пригодится.
Так же выкладываю для обсуждения и критики. Я не очень опытный в плане написания кода так что возможно код окажется примитивным.
Буду рад любой критике и любым предложениям по доработке.

Из возможностей: Возможно вводить только цифры, точку и подчёркивание
При нажатии кнопки Tab сразу вставляется текущая дата
Так же если ввести число и нажать Tab то сразу вставляется текущий месяц и год
Там есть еще много разных комбинаций, в общем тестируйте кому интересно)

Единственная проблема которую не смог решить это авто постановка точек.
Желаемый результат: что бы при вводе 2 и 5-го символа точка ставилась сразу, однако в таком варианте не получается потом точку удалить в случае необходимости.
Текущий результат: точка делит цифры на части при попытке ввести 3 и 6-й символ, в таком случае пользователь может сам нажимать всегда точку и даже не узнать что мог этого не делать)
Запрет показа MsgBox при закрытии UserForm
 
Добрый вечер Уважаемые форумчане.
Подскажите как ревизовать.
На UserForm находится ComboBox в который необходимо вводить определённые данные если данные не верны то при переходе к следующему ComboBox появляется MsgBox.
Однако в той ситуации когда введены не верные данные а пользователь просто хочет закрыть UserForm это уведомление не нужно.
Хочу в событие Exit из ComboBox добавить проверку на предмет закрытия UserForm, если UserForm закрыто то Exit sub.

Или возможно в Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
прописать что-то что не позволит выполнять какие либо действия другим объектам

подскажите пожалуйста как прописать такое.
Изменено: vikttur - 27.09.2021 21:48:03
Автокоррекция ввода даты в TextBox
 
Доброго
Помогите реализовать.
В UserForm есть TextBox в который пользователь должен ввести дату.
Идея заключается в том, когда человек ввел число, например 12 то сразу автоматом ставится точка, потом он вводит 10 и так же подставляется точка, дальше может быть два развития события либо человек написал 2019 и его курсор автоматический переводится на следующий TextBox или он просто пишет 19 и перейдя на следующий TextBox либо с помощью Tab или курсором 12.10.19 переделывается в 12.10.2019. Так же нужно что бы можно было писать только цифры и подчеркивание "_".
[ Закрыто] Переменная
 
Доброе Уважаемые форумчане.
Меня мучает один вопрос и я решил спросить опытных людей.

У меня есть много текстбоксов в итоге их будет около 30 в каждом текст боксе буду свои правила форматирования текста. Вопрос в следующем.
В данном случае есть ли смысл в переменных? я имею в виду не глупо будет присваивать переменной txt_surname, как вообще делают в таких случаях опытные люди?
Код
Dim Фамилия As String = txt_surname.Text
плохо что я использую русские имена для переменных?
есть ли в этом смысл, возможно в такой ситуации переменная это просто лишнее?
возможно такое действие благотворно влияет на программу и операции будут проходить быстрее?

В качестве примера приведу программный которым я сейчас занимаюсь  (особая благодарность Ігор Гончаренко)
Код
' *****************************************************************************
' ComboBox Кызы \ Оглы
'
Private Sub cbo_kz_og_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If cbo_kz_og.Text = "" Then lbl_kz_og.Visible = True
End Sub

Private Sub cbo_kz_og_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Then Exit Sub
    If lbl_kz_og.Visible = True Then lbl_kz_og.Visible = False
End Sub
' *****************************************************************************
' TextBox Фамилия
'
Private Sub txt_surname_Enter()
    ВключитьРусскуюРаскладку
End Sub
Private Sub txt_Surname_Change()
    If txt_surname.Text <> "" Then txt_surname.Text = Up1Letter(txt_surname.Text)
End Sub

Private Sub txt_Surname_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If txt_surname.Text = "" Then lbl_surname.Visible = True
    txt_surname = Trim(txt_surname)
    
End Sub

Private Sub txt_surname_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Then Exit Sub
    If lbl_surname.Visible = True Then lbl_surname.Visible = False
    If KeyCode = vbKeyDelete Then
        If txt_surname > "" Then
            txt_surname.Value = ""
    End If
    End If
End Sub

' *****************************************************************************
' TextBox Имя
'
Private Sub txt_name_Enter()
    ВключитьРусскуюРаскладку
End Sub
Private Sub txt_name_Change()
    If txt_name.Text <> "" Then txt_name.Text = Up1Letter(txt_name.Text)
End Sub

Private Sub txt_name_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If txt_name.Text = "" Then lbl_name.Visible = True
End Sub

Private Sub txt_name_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyTab Then Exit Sub
    If lbl_name.Visible = True Then lbl_name.Visible = False
    If KeyCode = vbKeyDelete Then
        If txt_name > "" Then
            txt_name.Value = ""
    End If
    End If
End Sub
Авто форматирование TextBox
 
Доброго.
Помогите реализовать.
Нужно что бы при появление UserForm в TextBox1,2,3,4 были надписи Фамилия, Имя, Отчество, Дата рождения.
--Текст серый и полупрозрачный.
--Как только нажимаешь на поле или переходишь на поле с помощью Tab текст пропадает и вводишь то, что нужно.
--Если в поле нечего не вводилось, то текст с информацией должен появиться снова.
--Так же в TextBox Фамилия, Имя, Отчество нужно сделать, так что бы первая буква автоматический становилась заглавной, а другие строчными (на случай если регистр перепутал).
--В поле дата рождения нужно, что бы текст сам подгонялся под формат дата, к примеру, если я написал 2101999 или 2 11 1999 или 02 октября 1999 а так же 02октября1999 после перехода на другое поле с помощью Tab или курсора мыши введенное значение должно стать 02.10.1999
--в случае когда в это поле было введено любое другое значение, которое ни как не связано с датой, на 5 сек. должно появиться всплывающее уведомление о том, что формат даты не верен, автоматически заполняем поле датой 11.04.1992, фокус на поле дата рождения и выделяем весь текст в поле, начиная с левого края.
--Нужно чтобы исправления, например, в поле Фамилия происходили сразу, как перешёл на другое поле с помощью Tab ли курсора мыши.

Так же есть просьба.... в коде писать описание что делается и зачем.
ComboBox с добавлением новых элементов в Userform
 
Доброго и с Наступающим.
Помогите реализовать.
В UserForm есть ComboBox добавил в него значения с помощью такой формулы
Код
Private Sub UserForm_Initialize()
    ComboBox1.List = Array("Capella", "DIY Flavor Shack", "Flavor West", "Flavorah", "Inawera")
End Sub
Как в таком случае добавить новые элементы в Userform и удалить старые, а так же добавить предупреждение что в списке такой элемент уже присутствует? Мне нужно что бы не было связи ни с диапазоном ни с ячейками.

Заранее спасибо.
Как заставить combobox запоминать последнее значение?
 
Доброе. Нашел на просторах интернета такой вариант.
Подскажите как сделать так что бы данное действие работала и с ComboBox1, ComboBox2, ComboBox3 и т.д.
Заранее спасибо)
Код
Private Sub UserForm_Initialize()
  ComboBox1.AddItem "Иванов"
  ComboBox1.AddItem "Петров"
  ComboBox1.AddItem "Сидоров"
  
  Dim i As Integer
  On Error Resume Next
  i = CInt(ThisDocument.Variables("ComboboxLastChoice").Value)
  If Err.Number <> 0 Then Err.Clear
  ComboBox1.ListIndex = i
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Dim var As Variable
  For Each var In ThisDocument.Variables
    If var.Name = "ComboboxLastChoice" Then
      Exit For
    End If
  Next
  If var Is Nothing Then
    ThisDocument.Variables.Add "ComboboxLastChoice", ComboBox1.ListIndex
  Else
    var.Value = ComboBox1.ListIndex
  End If
End Sub
Мульти ВПР или что то подобное
 
Доброе. Снова Я)

Прошу прощения за такое количество вопросов.
Есть таблица с информацией в ней пункты приема, сотрудники и улицы которые они обслуживают.
На другом листе выподающй список.
Хочу сделать так,что бы при выборе из выпадающего списка определенного пункта показывалось какие сотрудники там работают и какие дома они обслуживают.
Многие скажут что тут мульти ВПР подойдет. Частично да.
Из за того что фамилии часто повторяются результат от мульти ВПР не тот что я хотел.
Помогите решить задачу) Заранее спасибо)
Несколько результатов из выпадающего списка.
 
Доброе. У меня есть таблица, в первом столбце Фамилии людей, во втором Станции метро. Один человек должен поехать на несколько станций. Я сделал выпадающий список с фамилиями. Хочу что бы при выборе фамилии из выпадающего списка в определённых ячейках появлялись станции на которые он должен ехать. Помоги пожалуйста реализовать идею. Гугл не помог(((
Изменено: Шит - 11.11.2017 18:39:55
Назначить абсолютную ссылку для нескольких ячеек одновременно.
 
Доброе. У меня есть много много заполненных строк в виде ссылок на разные ячейки. Возможно ли выделить все ячейки и разом их сделать абсолютными или придётся каждую выделять и нажимать F4?
Большой проект по заполнению документа word (vba)
 
Нужен человек который хорошо понимает vba word и Excel так как возможно все будет взаимно связано. Самое сложное в том что нужно будет не просто сделать проект но и объяснить мне как все работает так как на его основе я буду делать другие подобные документы. Все вопросы в личку.
Выбрать данные по двум значениям
 
Доброе это снова я).

Есть у меня два взаимосвязанных выпадающих списка. Выбираю улицу, дома. Нужно сделать так что бы по этим данным выпадал нужный судебный участок его адрес и прочее. Подскажите как такое реализовать.
Зависимы выпадающие списки AciveX
 
Доброе. Знаю что можно сделать такой зависимый список http://www.planetaexcel.ru/techniques/1/38/  . Но мне нужно что бы список был AciveX так как там более гибкие настройки. Реально сделать списки AciveX зависимыми как по ссылке выше.
Изменено: Шит - 17.09.2017 11:06:00
Макрос Сохранить Лист с именем из ячейки
 
Доброе. Помогите сделать макрос для сохранения Листа (Рапорт) в отдельный файл xls таким образом что бы не было связей и формул а только текст. Кнопка сохранить будет располагаться на листе (Заполнить). Нужно сделать так что бы Лист сохранялся с именем из ячейки (В2). В той папке где находится Книга (Пример) создавалась папка Рапорт а если такая папка есть то сохранялось в нее.
Еще хотелось бы такой же макрос для сохранения в Формате PDF. И вопрос реально ли сохранить Лист как docx?
В макросах я не разбираюсь(. Так что если не затруднит пишите подробнее.
Заранее Спасибо)
Часы
 
Добрый. В одной ячейке  указываю время. Нужно сделать так что бы в других ячейках это время прибавлялось на 15 минут больше. Столкнулся с проблемой. Не знаю как сделать что бы часы прибавлялись после того как минут больше 60. Прикрепил файл так как я скорее всего не понятно описал проблему)
Перенос текста из одной ячейки в другую
 
Доброе. У меня бланк. Расположение строк нарушить не могу. Нужно сделать так... когда текст не влезает в ячейку, та часть что не влезает переносилась в другую ячейку. Прикрепил файл  прмером.
[ Закрыто] Помогите написать макрос для печати
 
Доброе. Мне нужно что бы нажатием  одной кнопки)) Печатались 3 страницы односторонней печатью с полями с лева 3 см., права 1 см., верх и низ 2 см. Потом 6 страниц двухсторонняя печать с полями с лева 2 см., право 1 см., верх и низ 1 см. и снова 3 листа односторонней печатью. Это реально реализовать?  и что бы печатать можно было на любом пк. В макросах мало понимаю если не сложно пишите подробно с пояснениям какая команда что означает)
[ Закрыто] Вывод на печать с помощью макроса
 
Доброго. Подскажите как реализовать идею.... есть 10 листов некоторые из них нужно печатать односторонней печатью а некоторые двух сторонней. Хочется упростить себе жизнь))) И делать это одним нажатием кнопки. Как написать такой макрос?
Как сделать Скриншот выделенной области Excel 2016
 
Есть таблица которая не вмещается в экран поэтому «Print Screen» не помогает и  это не удобно... Удобнее сделать скрин только нужной области. Подскажите какие варианты есть?
Авто вывод текущего года в ячейке
 
Как сделать так что бы например в ячейке A1 текущий год отражался автоматический?
Изменено: Шит - 01.09.2013 01:04:49
Пустая ячейка ровна Нулю
 
У меня Office 2013. Есть  формула в которой участвуют пустые ячейки офис считает их нулем... в 2003 такого не было он просто не считал по формуле. Как мне сделать что бы было как в 2003? может там в настройках что то сделать?
Изменено: Шит - 12.08.2013 23:22:09
Отображение текущего месяца в Ячеке
 
Хотелось бы сделать так что бы в ячейке например А1 Был написан текущий месяц и что бы он обновлялся с наступлением нового! Помогите реализовать заранее спасибо.
Меню - Сервис - Поиск решения
 
Мне надо сделать задания в инст... там написано зайдите Меню - Сервис - Поиск решения.... я такую функцию не обнарушил и попытался её вкл. У меня выскочиило окно о том что такого компанента нет и предложение его установить я выбрал установить но пишет то что сервис недоступен... что теперь делать??? У меня офис 2003.
Выподающий список
 
Здравствуйте помогите подалуйста.... подскажите как можно в ваподающем списке вписать значение которого не.... а то он мне пишет что нельзя.... а мне надо что бы я моб легко  дату изменить в этом списке...
Операция с датами
 
Здравствуйте.... Подскажите пожалуйста как сделать так... Что бы открываешь файл и там в любой ячейке поевляется сегодняешняя дата..... а потом вписываеешь в другую ячейку ну например 7 лет и он показовает сколько там дней получается с учётом весакосного года... Ну тоесть 5.12.12 вписал 7 лет и он пишет с этого числа по 5.12.19 дней получается... Зарание спасибо))) Если можно то файл с прикрепите)
Выбор нескольких значений в одной ячейке
 
Здравствуйте!!!  
Как сделать так что бы в одной ячейке можно было выберать значение... Ну там поевляется с боку ячейки стрелака на неё нажимаешь и можно выбрать кпримеру 1, 2,3 ит.д ну то что туда впишешь то и выбрать можно! Не помню как делать помогите!) Зарание спасибо)
Страницы: 1 2 След.
Наверх