LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 586
Default Reset a User Defined Types Values

Chip,

Do you have any information on UDTs on your website? If not, do you know a
good reference website or book with advanced programming text for VBA?

Is there a way to loop thru the UDT? I will need to reset the UDT for 15
Userforms so it would be benifical to have a "one size fits all" procedure to
reset the UDT instead of explicitly setting each variable in the type to 0.
For example,

Sub ResetUDT(ByRef UDT As Variant)

Dim var As Double

For Each var In UDT
var = 0
Next var

End Sub
--
Cheers,
Ryan


"Chip Pearson" wrote:


There is no built-in way to do it. You could, however, write a very
simple procedure that resets the values, and then call that procedure,
passing it the UDT to reset. For example,


Type Sign
Height As Double
Width As Double
Illuminated As Currency
Mounted As Currency
End Type

Sub ResetUDT(ByRef UDT As Sign)
' this resets the values of the Sign UDT
' back to defaults
With UDT
.Height = 0
.Illuminated = 0
.Mounted = 0
.Width = 0
End With
End Sub


Here, the ResetUDT procedure sets the elements back to defaults. You
can use this code as shown below, in particular the line marked with
<<<<. Once you have the ResetUDT proc written, it is a one-liner to
reset the UDT back to defaults.


Sub Test()
Dim UDT As Sign
' setup some values and print them
With UDT
.Height = 100
.Width = 200
.Illuminated = 120
.Mounted = 1234
Debug.Print .Height, .Illuminated, .Mounted, .Width
End With

' reset the UDT back to factory defaults
ResetUDT UDT ' <<<< RESET UDT

' confirm reset values
With UDT
Debug.Print .Height, .Illuminated, .Mounted, .Width
End With
End Sub

Cordially,
Chip Pearson
Microsoft MVP
Excel Product Group
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)




On Wed, 19 Nov 2008 11:35:01 -0800, RyanH
wrote:

I have a UDT that is used by a userform to calculate the price of a product.
Is there a way to reset the UDT? For example, you can reset an object with
Set Object = Nothing, or reset a variable with Variable = Empty.

The problem occurs when I fill out the userform, set Checkbox1 = True, and
click my CommandButton1 below, a price calculates and the userform remains
open. But if I set Checkbox1 = False then click the buttton, the price
remains the same. The price should be $300 less. This is why I need to
reset the UDT. I have alot of If...Then statements and I would prefer not to
do Else .Illuminated = 0 .Mounted = 0.

'in standard module
Type Sign
Height As Double
Width As Double
Illuminated As Currency
Mounted As Currency
End Type

' userform code
Option Explicit
Base Option 1

Dim TEST As Sign

Sub CommandButtton1_Click()

With TEST
.Height = textbox1
.Width = textbox2
If Checkbox1 = True Then
.Illuminated = 100
.Mounted = 200
End If
End With
End Sub


 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Reading values into an array of User Defined Types Susan[_6_] Excel Programming 6 December 12th 07 01:47 PM
Checking user defined types for Nothing jayklmno Excel Programming 5 May 3rd 06 09:21 PM
subs or functions with user defined types Ray Pixley Excel Programming 2 February 27th 06 03:25 AM
User-defined data type; Error: Only User-defined types... tiger_PRM Excel Programming 1 July 18th 04 03:32 PM


All times are GMT +1. The time now is 07:49 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"