Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello world
As you know I am new to VBA and trying to learn but what I could really do with is some pointers in shortening code etc. The following code (not written with the macro recorder!) is very long but I don't seem to be able to shorten it with my limited knowledge... I also have a problem with putting Else & End if's in the wrong slot - but you probably guessed that! Anyone want to try and teach an old dog some new tricks. Private Sub Command4_Click() 'This bit makes the correct number of frames visible depending on the user input Dim s As Variant s = Text2.Text If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell us how many products are going on this pallet!", vbInformation Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False Else End If On Error Resume Next If s = "1" Then Frame2.Visible = True Frame3.Visible = False Frame4.Visible = False Else End If If s = "2" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = False Else If s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True Else If s "3" Then MsgBox "You have entered " & s & ". Which bit of Max 3 do you not understand?", vbInformation Else End If End If End If End Sub TIA Mark (InWales) |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Mark,
A bit simpler Private Sub Command4_Click() 'This bit makes the correct number of frames visible 'depending on the user input Dim s As Variant s = Text2.Text Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell how many products are going on this pallet!", _ vbInformation ElseIf s = "1" Then Frame2.Visible = True ElseIf s = "2" Then Frame2.Visible = True Frame3.Visible = True ElseIf s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True ElseIf s "3" Then MsgBox "You have entered " & s & ". The max is 3!", _ vbInformation End If End Sub -- HTH RP "Mark (InWales)" wrote in message ... Hello world As you know I am new to VBA and trying to learn but what I could really do with is some pointers in shortening code etc. The following code (not written with the macro recorder!) is very long but I don't seem to be able to shorten it with my limited knowledge... I also have a problem with putting Else & End if's in the wrong slot - but you probably guessed that! Anyone want to try and teach an old dog some new tricks. Private Sub Command4_Click() 'This bit makes the correct number of frames visible depending on the user input Dim s As Variant s = Text2.Text If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell us how many products are going on this pallet!", vbInformation Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False Else End If On Error Resume Next If s = "1" Then Frame2.Visible = True Frame3.Visible = False Frame4.Visible = False Else End If If s = "2" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = False Else If s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True Else If s "3" Then MsgBox "You have entered " & s & ". Which bit of Max 3 do you not understand?", vbInformation Else End If End If End If End Sub TIA Mark (InWales) |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Bob
A bit simpler, it felt as if I was writing a book! Many thanks Bob for taking the time Mark "Bob Phillips" wrote in message ... Hi Mark, A bit simpler Private Sub Command4_Click() 'This bit makes the correct number of frames visible 'depending on the user input Dim s As Variant s = Text2.Text Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell how many products are going on this pallet!", _ vbInformation ElseIf s = "1" Then Frame2.Visible = True ElseIf s = "2" Then Frame2.Visible = True Frame3.Visible = True ElseIf s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True ElseIf s "3" Then MsgBox "You have entered " & s & ". The max is 3!", _ vbInformation End If End Sub -- HTH RP "Mark (InWales)" wrote in message ... Hello world As you know I am new to VBA and trying to learn but what I could really do with is some pointers in shortening code etc. The following code (not written with the macro recorder!) is very long but I don't seem to be able to shorten it with my limited knowledge... I also have a problem with putting Else & End if's in the wrong slot - but you probably guessed that! Anyone want to try and teach an old dog some new tricks. Private Sub Command4_Click() 'This bit makes the correct number of frames visible depending on the user input Dim s As Variant s = Text2.Text If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell us how many products are going on this pallet!", vbInformation Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False Else End If On Error Resume Next If s = "1" Then Frame2.Visible = True Frame3.Visible = False Frame4.Visible = False Else End If If s = "2" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = False Else If s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True Else If s "3" Then MsgBox "You have entered " & s & ". Which bit of Max 3 do you not understand?", vbInformation Else End If End If End If End Sub TIA Mark (InWales) |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Mark,
See if this helps. <Air Code Dim s as long s=val(Text2.Text) select case s case 0 MsgBox "You must tell us how many products are going on this pallet!", vbInformation case 3 MsgBox "You have entered " & s & ". Which bit of Max 3 do you not understand?", vbInformation end select Frame2.Visible = ((s0) and (s<=3)) Frame3.Visible = ((s1) and (s<=3)) Frame4.Visible = ((s2) and (s<=3)) </Air Code NickHK "Mark (InWales)" wrote in message ... Hello world As you know I am new to VBA and trying to learn but what I could really do with is some pointers in shortening code etc. The following code (not written with the macro recorder!) is very long but I don't seem to be able to shorten it with my limited knowledge... I also have a problem with putting Else & End if's in the wrong slot - but you probably guessed that! Anyone want to try and teach an old dog some new tricks. Private Sub Command4_Click() 'This bit makes the correct number of frames visible depending on the user input Dim s As Variant s = Text2.Text If s = "" Then 'i.e. if no number is entered then display msgbox MsgBox "You must tell us how many products are going on this pallet!", vbInformation Frame2.Visible = False Frame3.Visible = False Frame4.Visible = False Else End If On Error Resume Next If s = "1" Then Frame2.Visible = True Frame3.Visible = False Frame4.Visible = False Else End If If s = "2" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = False Else If s = "3" Then Frame2.Visible = True Frame3.Visible = True Frame4.Visible = True Else If s "3" Then MsgBox "You have entered " & s & ". Which bit of Max 3 do you not understand?", vbInformation Else End If End If End If End Sub TIA Mark (InWales) |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
UserForm code help needed. | Excel Programming | |||
UserForm code help needed. | Excel Programming | |||
UserForm code help needed. | Excel Programming | |||
Amount of code in UserForm | Excel Programming | |||
VBA code for Userform | Excel Programming |