What is the syntax to open a userform in the top-right screen corner?

 Me.StartUpPosition = 0
 Me.Top = Application.Top + 25
 Me.Left = Application.Left + Application.Width - Me.Width - 25
'example - place in UserForm_Activate procedure
Private Sub UserForm_Activate() 'when form opens
   Me.StartUpPosition = 0
   Me.Top = Application.Top + 25
   Me.Left = Application.Left + Application.Width - Me.Width - 25
End Sub

 

Tips for User Interface Design [updating]

  1. Use simple dialog understandable by your target user (ie) no jargon
  2. Rely little on user memory (ex) lesser steps for user to memorize/follow
  3. Output meaningful error messages (ex) when error happens, tell them using normal english vs something like “error code 1035”
  4. Avoid limitless choices (ex) Give them a limit of choices as often as possible, vs an open text field that could produce all sorts of data mismatch errors
  5. Always have an exit (ie) never put user in a place where they cannot go back or get out
  6. Exploit consistency (ie) familiarity equates speedy learning
  7. Provide continuous feedback (ex) instead of just a loading bar, have a label underneath that tells the user what step the computer is on
  8. Purpose (not beauty) dictates design (ex) look at how ugly but popular sites like Reddit, Craigslist are

What is the syntax to get the date selected for a calendar?

  1. Add a calendar to your userform (for instructions, click here)
  2. As shown in the screenshot below, select your calendar control (default name is always MonthView1)
  3. Select DateClick, as shown circled in red below
  4. A procedure will be auto-generated, containing a parameter called DateClicked
  5. User’s selected date is automatically contained in variable DateClicked

unnamed.png

What is the syntax to open a userform?

Put the code below in a separate module from that of the userform. A common choice for users is the proceduce of Workbook_Open() under module ThisWorkbook.

Private Sub Workbook_Open()
    <user form name>.Show
End Sub

 

Do not use the load method, as this just loads the form but does not make it visible. Besides, Show option automatically loads it anyway.

Load <user form name>