Artem1977 Пользователь Сообщений: 163 |
Здравствуйте уважаемые форумчане. Прикрепленные файлы
Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
vikttur Пользователь Сообщений: 47199 |
Прописать действия в код события выхода из Frame |
Artem1977 Пользователь Сообщений: 163 |
vikttur, это понятно, что надо прописать. Вопрос в том — что? Просто так эта процедура не вызывается, я не могу её вызвать по коду Call Textbox1_Exit Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#4 20.01.2022 16:37:31
плохо понятный вопрос. Событие:
а зачем Вам вызывать её по Textbox1_Exit? Я этого не очень понимаю, но тем не менее вызвать можно так:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||||
Artem1977 Пользователь Сообщений: 163 |
Понял свою ошибку. Спасибо Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
Artem1977 Пользователь Сообщений: 163 |
Когда текстбокс один, два или три можно для каждого написать строчку кода вызывающего процедуру Exit, а если их много? Как в цикле их вызвать? Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
Artem1977, у Вас странная задача (или формулировка задачм): Вы хотите ВЫЗВАТЬ процедуру, которую ВЫЗЫВАТЬ не нужно — событие произойдёт и без Вызова. |
Artem1977 Пользователь Сообщений: 163 |
Юрий М, вроде бы в начале темы описал что мне нужно. повторюсь ещё раз. при выходе из каждого текстбокса должно происходить определённое действие, например форматирование текста, размещённого в этом текстбоксе. при переходах между текстбоксами размещённых в одном фрейме, эти действия выполняются. Но при переходе в текстбокс размещённый в другом фрейме событие для текстбокса в котором были перед переходом не выполняются и текст остаётся неотформатированным. Вот мне и нужно в событие frame_exit прописать код который вызовет событие exit для всех текстбоксов, размещённых в нём. Текстбоксов может быть не один и не два, поэтому необходимо в цикле их обойти Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#9 25.01.2022 08:20:42
затея так себе, конечно….Лучше пересмотреть логику, наверное. Но тем не менее:
кстати, здесь чуть подробнее описывал механизм подобных переборов: Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы) Изменено: Дмитрий(The_Prist) Щербаков — 25.01.2022 08:21:36 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#10 25.01.2022 09:49:32
выполните например так:
добавьте процедуру
в модуль вашей формы Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||||||
Artem1977 Пользователь Сообщений: 163 |
#11 25.01.2022 10:34:53 Ігор Гончаренко, нет, не это.
и т.д. до TBx10 Так вот при переходе из Frame1 в Frame2 в последнем текстбоксе где находилсиь событие Exit для него не выполняется.
А как-то так:
Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
||||||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#12 25.01.2022 15:28:47
так я и не понял ни фига в итоге…Я ровно такой же код дал. Пример вызова события Exit для контрола из любой процедуры у Вас есть. Что теперь-то не получается?
Изменено: Дмитрий(The_Prist) Щербаков — 25.01.2022 15:42:34 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Artem1977 Пользователь Сообщений: 163 |
Наверное это я нифига не понимаю. Для каждого контрола — свой код должен выполняться. А не один и тот же. Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
sokol92 Пользователь Сообщений: 4445 |
Если все Ваши элементы управления логически связаны, то для чего Вы их сгруппировали в разные фреймы? Изменено: sokol92 — 25.01.2022 16:32:18 |
Artem1977 Пользователь Сообщений: 163 |
Понятно. Раз ответ сразу не поступил — значит его нет. Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
Artem1977 Пользователь Сообщений: 163 |
#16 25.01.2022 16:43:29 Понятно. Раз ответ сразу не поступил — значит его нет.
Меня интересовал именно этот кусок кода. Что именно я должен написать, чтобы инициировать выполнение события Exit для контрола, который в данный момент перебирается в цикле. Microsoft Office 2010 64-bit, Windows 10 Professional 64-bit |
||
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#17 25.01.2022 17:46:27
ничего Вы здесь не напишите, потому что событийную процедуру нельзя сопоставить с объектом цикла. События — это специальные процедуры, создание которых лежит на плечах внутренних ресурсов Excel и VBA. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#18 25.01.2022 17:57:53
да, вполне возможно, я не читаю мысли, я читаю вопрос и отвечаю на него, если ответ на вопрос вам совсем не нужен, то понятно, что это не то)) Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
RAN Пользователь Сообщений: 7091 |
А ларчик просто открывался.. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#20 25.01.2022 20:02:13 Artem1977, Вы меня не поняли: ведь Вам при выходе из Frame нужно выполнить некие действия, которые Вы храните в событии Exit для конкретного TextBox. И пытаетесь обратиться именно к этому событию. А зачем? Вызывайте не событие, а внешнюю процедуру, которая сделает с последним активным TextBox всё нужное. Прикрепленные файлы
|
Ответы с готовыми решениями:
Как вызвать событие кнопки?
Вопрос наверное глупый, а ответ на него простой, но я недавно начал изучать vb.net, так что не…
Как правильно вызвать событие ?
Добрый день.
Использую контрол типа TCSpinEdit в связке с кнопкой TButton. После ввода или…
Как вызвать событие у тега <A>?
когда мы кликаем по тегу <A> браузер начинает загружать страницу указанную в артрибуте href;
хочу…
Принудительно вызвать событие, если произошло другое событие
Сразу оговорюсь, это тема про события, а НЕ про Windows Forms, да бы ни кто не переносил тему.
В…
2
I’m building a userform where it has two text boxes to enter dates. Once the date is entered, I’m validating them when the Exit
event fires. If the validation turns up that the user data isn’t what is needed, the user is notified, the text box is cleared, and the focus is returned back to the textbox.
The issue comes if the user uses the mouse to select outside of the box, rather than Tab. If Tab is used, it fires perfectly and as expected, and the field is cleared and the focus is returned. If the mouse is used, it doesn’t fire. According to this article, this is expected behavior (It’s for Access, but I didn’t see the similar relevant MSDN article for Excel.)
So instead I tried the AfterUpdate
event. However, SetFocus
doesn’t work within an AfterUpdate
event, I’m assuming because of the chain of events as outlined in the response to this question. Thus, I don’t have a way to return the focus back to the textbox after it has fired. That thread had a suggestion as an alternate answer to SetFocus
to another control and come back as a workaround, but that doesn’t work for me, so I assume that may be an Access-specific workaround.
My last option I’ve considered is having the AfterUpdate
event just call the Exit
event, however the Exit
event has a required argument (ByVal Cancel As MSForms.ReturnBoolean)
, which is how you cancel out of the exit and return the user to the textbox. As such, there isn’t a value that you can pass to it that doesn’t throw an error that I can find (the closest I found was passing Nothing
but it failed out when trying to set it to True
later to cancel the exit.)
Is there a way to achieve what I’m looking for here, or should I just stick to the AfterUpdate
and ignore the SetFocus
I’m trying to achieve?
- Remove From My Forums
-
Question
-
Excel 2010 VBA
I have three textboxes in a frame; I use the frame so that these three textboxes only become visible after other textboxes have successfully received user input. When I tab between the textboxes within the frame, the textbox Exit event fires normally when
passing from the first to the second, and the second to the third. However, when I tab out of the third textbox — and also leave the frame — the Exit event for the third textbox doesn’t fire until I return focus somewhere in the frame. The
problem seems to be when tabbing out of the textbox at the same time leaving the frame. It seem like I exit the frame and move onto another textbox not in the frame before I exit the final textbox that is in the frame.Thanks in advance for any help.
Exit Event On Field Not Firing When Exiting A Frame In Vba — Excel |
|
Since it took me some time to find the solution to this, I thought I’d append a solution I found after a lot of googling. As the various hits said, this only seems to be relevant if you have an exit event for a textbox and it’s the last control in a frame. Many thanks to Dialup for his suggestion at http://www.mrexcel.com/forum/showthr…it+event+frame
Basically, the «normal» exit routine might look like this
Code:
Private Sub Limit_amount_entry_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim Lvalue As Boolean Dim amount As Currency Lvalue = IsNumeric(Limit_amount_entry.Value) If Lvalue = True Then ' amount is valid - use it belopp = Limit_amount_entry.Value End If Select Case True Case Lvalue = False MsgBox "Invalid value" ' The Exit event procedure has a Cancel argument (conveniently). ' If you want to cancel the exit set it to true. So instead of: ' TextBox1.SetFocus ' use: ' Cancel = True Cancel = True Case belopp
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
(80% Discount Ends Soon!)
View Course
Similar Topics
Thought I’d start this topic since there seem to be a number of topics where the answer seems to be to use one of the above rather than other. Thought I’d kick off with my 2 cents’ worth.
I have a userform with frames containing textboxes. The user enters a currency value and once they leave the control, then a protected textbox next to it shows the corresponding value in SEK. I started off using the exit event but ran into 2 problems.
If you tabbed out of the last textbox in the frame, the exit event never kicked in (this is documented in other topics but took some time to find). This resulted in me using the exit event for all except the last textbox in the frame that used afterupdate instead
I then discovered that the exit events didn’t kick in if, instead of tabbing out of the field, I deliberately placed focus in a control elsewhere on the form. Changing the event from exit to afterupdate corrected this.
My question then is … could you guys document in this topic when you would/must use the exit rather than the afterupdate event (or vice-versa).
Thanks
I am using the code below to disable the save function very successafully. However, is there a work around to allow a macro to save?
———————————————————————-
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
‘this disables the save function on the XLS
MsgBox «****Save is Disabled****»
‘ Following line will prevent all saving
Cancel = True
‘ Following line will prevent the Save As Dialog box from showing
If SaveAsUI Then SaveAsUI = False
End Sub
hi,
I have a login form with an Exit button. I want my workbook to close as I click Exit button.
I’m trying to use VBA to go to a website that requires a User Name, Password, and a Submit Button.
So far I can get everything to work besides the Submit part. The code runs without errors, but doesn’t actually «hit» the submit button on the webpage.
For posting, I removed my actual user name and password and and used the generic » User Name » and » Password » highlighted in blue.
I highlighted another section in green that I took from a previous post hoping it would solve my problem. The link is: http://www.mrexcel.com/forum/showthr…xplorer+submit
Here is the code I am using:
Sub GoToWebSiteAndPlayAroundNew()
Dim appIE As Object ‘ InternetExplorer.Application
Dim URL As String
Set appIE = CreateObject(«InternetExplorer.Application»)
URL = » https://efolio.morgankeegan.com/escripts/defaultLogon.asp?errCode=2 »
With appIE
.navigate URL
.Visible = True
Do While .busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop
.document.getelementbyid(«fUserName»).Value = » UserName «
.document.getelementbyid(«fPassword»).Value = » Password »
End With
On Error Resume Next
x = 0
For Each mitem In IE.document.all
mitem.Value = «x»
x = x + 1
Next
x = 0
For Each mitem In IE.document.all
If x = «Submit» Then
mitem.Click
Exit For
End If
Next
End Sub
Is there an on error exit sub command. I would like my Macro to just stop running if there is an error instead of an error message popping up. Thanks in advance
I did a bit of browsing on this problem. Found others suffering the same but haven’t found any conclusive answer yet.
Every so often when I attempt to save a file, (including save as), Excel won’r let me. By won’t let me I mean:
using Save doesn’t appear to do anything
using Save As doesn’t either do anything, the dialog is not displayed and if I am doing via the File menu then the File menu is exited and the previous ribbon tab is displayed (i.ethe one I was on before clicking ‘File’)
if I close the workbook I am prompted to save, close without saving or cancel. Clicking save just invokes the same msgbox again.
I can’t work out when it goes into this mode. Some days I can work without this problem, other days I encounter this 2 or 3 times.
The only thing I could suspect was I think this started around about the time I installed xlDennis’ code library. I have uninstalled the addin and so far so good, but I cannot categorically say that this was the cause.
Anyone have any idea?
Cheers
Jon
Edit: I have read this: http://support.microsoft.com/kb/271513
Doesn’t seem to cover the issue I describe
I have a requirement to change the panes in excel.
My excel file will contain more than one tab.
I have to free the first two lines in all the tabs except the first one.
I tried the following code.
Code:
xlsobj.Worksheets(1).Rows("1:2").Select ActiveWindow.FreezePanes = True
But in this I have to change the Active Worksheets in VBA, Which I want to avoid.
Is there any method to achieve this without selecting the cells.
Something like
Code:
xlsobj.Worksheets(1).Rows("1:2").FreezePanes = True
Hello,
i’ve got the following problem:
I want users to double-click on a row on a protected sheet and then do some code based on the row-number of the clicked cell. I’ve protected the sheet because it contains a lot of formula’s.
When a user double-clicks a row it triggers the code through the Workbook_SheetBeforeDoubleClick event.
After the code is executed Excel shows a message that the cell that was clicked was protected etc etc.
How can I prevent this message from popping up?
I’ve already tried
Code:
application.displaywarnings = false
but that didn’t work
Thanks
Hi,
I need the necessity do delete a sequence of sheets in my workbook.
If I use this code:
With ActiveWorkbook
If .Worksheets.Count >= 5 Then
For n = 5 To .Worksheets.Count
Worksheets(n).Delete
Next n
End If
End With
I receive a confirmation message box with this message:
«Data may exist in the sheet(s) selected for deletion. To permanently delete the data, press Delete» [DELETE] [CANCEL]
I wish to delete all sheets without receiving any message.
Is it possible?
Many thanks in advance for your kind support.
Regards,
Giovanni
Is there an Excel guru that can help with this — its related to «drop down menus»
I have 2 colombs of data.
AT the bottom of the first, I have created a drop down menu using the «data validation» feature in excel.
At the bottom of the second colomb, I have used an «IF» function that returns a result, which depends on what value is chosen from the drop down menu in colomb 1
The problem I have is that I want the TRUE result from the IF function to be another drop down menu, being the data in colomb 2.
How do you write an IF function where the TRUE result is a drop down menu??
I tried to create a drop down menu of colomb2 elsewhere in the spread sheet, and used that cells location as the TRUE value, but this didn’t work either…
ANy suggestions??
Corporate edict.
I have a worksheet that is locked and protected now, except for cells in a certain collumn. I have named the cells in that column «MS96A».
If a user enters a date in a cell or range of cells anywhere in the column, the changed cells also need to be locked and protected (Once they enter a date, it is not allowed EVER to be changed again. Corporate requirement! *Shrug*).
What I am looking for is this. If the user selects that cell again, they will get the usual pop-up message, «The cell or chart that you are trying to change is protected…»
I think I am close, but I am getting an «End If without block If» error on the If Clause.
Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim MRange As Range
Set MRange = Range(«MS96A»)
‘ If Not Intersect(Target, MRange) Is Nothing Then
For Each cell In MRange
Sheets(«Sheet1″).Unprotect Password:=»temp»
cell.Interior.ColorIndex = 3
cell.Font.Color = vbBlack
Selection.Locked = True
Selection.FormulaHidden = False
Next cell
ActiveSheet.Protect Password:=»temp», _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
I have searched and read all the help files. I find the properties of
an object, I see how I can «lock», «size and move with cells» or «not
move with cells». No matter what I select, the object moves off the
screen, when the user, scrolls to the right of the spreadsheet.
Is there a way to lock the position, let’s say , in the upper right
corner and have it stay there?
This would be quite useful for an EXIT button, that I have created,
that will close the program without saving (it’s a read-only file.)
Thanks to all the wonderful people here that have been so helpful and
give us their valuable insight and time.
Jo
Hello,
My Cell C3 is a numeric value…..I have set conditional formatting to
make the text red and bold when the number is equal or less than 10,000
is there a way I can make cell E3 display a message when the C3
condition is true?? or if not a message is there a way to make a
message box pop up when my C3 condition of less then or equal to 10,000
is true?
how would I do something like this?
I found this solution for «drop down list with hyperlink» but it did not work.
Perhaps a better solution is to use a workaround that relies on the HYPERLINK function to refer to whatever is selected in the drop-down list. For instance, if you have your data validation drop-down list in cell A1, then you might put the following formula in cell B1:
=HYPERLINK(A1, «Goto Link»)
The solution directly above provides exactly what I am looking for
in the field where I write the formula, but it fails to hyperlink.
I have created a drop down list and linked each one of them to a
specific worksheet. When I select them individually they link to
appropriate worksheet. But when I select them in the drop down
list I receive the following error when I select the Hyperlink in
cell B1 as directed above.
«Cannot open the specified file»
Any thoughts?
Bob
I’m using some basic code below in an on Workbook Open event to format cells with a value less then 2 and less than 1 with a particular color.
The code works, but it really slows my worksheet down when opening. Is there better way to write this? Thanks!
Code:
Dim myRange As Range Dim cell As Range Set myRange = Range("V6:V50000") For Each cell In myRange If cell.Value < 2 Then cell.Font.ColorIndex = 5 If cell.Value < 1 Then cell.Font.ColorIndex = 3 Next
Hi All,
I got the below macro which uses IE and open the URLs. I want to create a userform with listbox with radio button and commandbutton on the same which will help me to connect to each url when I select the same in listbox and click on the commandbutton.
Code:
Sub DoBrowse1() Dim ie As Object Set ie = CreateObject("Internetexplorer.Application") ie.Visible = True ie.Navigate "www.google.com" End Sub
Any suggestions..
i have a cell i have to check if it contains six characters. I have a list of data that i need to narrow down to six characters. I have successfully done that, but some of the cell has 5, 6, or 7 characters. The list contains about 600 cells, but i don’t have time to format them individually. I want to create a formula that returns true or false if the cell contains 6 characters and false if it is above or below 6.
Can somebody help me, i’m new to excel!
Dear Sirs,
Am in need for this solution very badly and what could be a better place than excelforum !
I have an MS Excel File (2007 version) sample file attached, which has name, designation, blood group and so on. The last column is for hyperlinking photographs of individuals.
In the same folder where I have saved this excel file, are lying photographs of individuals. While scanning the photographs, I have saved them serially i.e. 1,2,3 and so on.
In the Excel file, in last column, I have given the respective serial numbers. In order to hyperlink one has to select that particular Cell, press Ctrl K and you automatically go to the folder containing individual photographs, you select that photo and OK.
Problem :
I have to do this hyperlinking one by one and if there 1000 photos, lot of time is wasted.
Solution Needed :
Just in case of excel formula, which we copy and paste, Can I get a command by virtue of which the column titled Photo or column next to it gets automatically Hyperlinked to respective photo WHEN I copy and paste such command to all cells in that column.
Thanks a million and warm regards ::: Jack
I am needing a formula that would cause a currency amount from a calculation to round up or down to the nearest 100.00 mark. The current formula is ie: =E10*F10 (e10 being an amount of money and f10 being a percentage fo it.) I am needing the resulting answer to round up or down to the nearest 100. So if the answer is below the 50 mark it would round down and above it would round up. If that is not possible then just rounding down would be acceptable.
How do i do this??
Thanks
Hi Guys,
Could you be so kind as to provide some code that will enable me to display a text box on a userform rounded up to 1 decimal place.
Where am I going wrong….
it calculates the number entered in textbox1 and divides it by a value that changes in cell O26 but the answer is in about 8 or more decimel places.
Only need like 65.3 as an answer not 65.277756942
This is the code ive used.
Private Sub CommandButton1_Click()
TextBox2.Value = Val(TextBox1.Value) / Range(«O26»).Value
End Sub