Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default Basic Looping

If I have interpreted your code correctly, these four lines of code should
replace ALL the code you posted (including that parts that would be covered
by the etc.)...

WeekTotalJan = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan

--
Rick (MVP - Excel)



"ecce_ego" wrote in message
...
I have made a form that will enter customer data in a worksheet and
calculate
several things, including checking a date range and adding totals to a
table
of weekly totals for the month. The code I wrote works, but I am new to
programming and do not know how to create a more logically structured
program.

Here is a portion of the code I've written; how do I use a loop to
accomplish the same thing?

---------------------

If aMonth = "1" Then
If Week = "1" Then
WeekTotalJan = 0
Range("K4").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "2" Then
WeekTotalJan = 0
Range("K5").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "3" Then
WeekTotalJan = 0
Range("K6").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "4" Then
WeekTotalJan = 0
Range("K7").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "5" Then
WeekTotalJan = 0
Range("K8").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
End If
End If
End If
End If
End If
Else
If aMonth = "2" Then
If Week = "1" Then
WeekTotalFeb = 0
Range("N4").Select
WeekTotalFeb = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalFeb
Else
If Week = "2" Then..........etc....
--------------------------

It's really a pain to write all those ifs!


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default Basic Looping

Whoops! I missed the switch over between WeekTotalJan to WeekTotalFeb when
aMonth changed. The BEST way to handle this would be to convert your
individual WeekTotalJan, WeekTotalFeb, WeekTotalMar, etc. to an array. This
would require you to change other parts of your code where you use these
variables, but using arrays makes constructions such as this so much more
streamlined. So, wherever you have Dim'med the variables WeekTotalJan,
WeekTotalFeb, WeekTotalMar, etc., delete them and replace them with this...

Dim WeekTotal(1 To 12) As Long

Now, wherever in your code you have WeekTotalJan, replace it with
WeekTotal(1) and wherever in your code you have WeekTotalFeb, replace it
with WeekTotal(2), and wherever in your code you have WeekTotalMar, replace
it with WeekTotal(3), etc. (you can use Edit/Replace from the VB editor's
menu bar to make all the replacements... make sure to use the "Current
Project" option). Now, once you have done that, here is the modification to
the four lines of code I posted previously....

WeekTotal(aMonth) = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan

--
Rick (MVP - Excel)



"Rick Rothstein" wrote in message
...
If I have interpreted your code correctly, these four lines of code should
replace ALL the code you posted (including that parts that would be
covered by the etc.)...

WeekTotalJan = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan

--
Rick (MVP - Excel)



"ecce_ego" wrote in message
...
I have made a form that will enter customer data in a worksheet and
calculate
several things, including checking a date range and adding totals to a
table
of weekly totals for the month. The code I wrote works, but I am new to
programming and do not know how to create a more logically structured
program.

Here is a portion of the code I've written; how do I use a loop to
accomplish the same thing?

---------------------

If aMonth = "1" Then
If Week = "1" Then
WeekTotalJan = 0
Range("K4").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "2" Then
WeekTotalJan = 0
Range("K5").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "3" Then
WeekTotalJan = 0
Range("K6").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "4" Then
WeekTotalJan = 0
Range("K7").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "5" Then
WeekTotalJan = 0
Range("K8").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
End If
End If
End If
End If
End If
Else
If aMonth = "2" Then
If Week = "1" Then
WeekTotalFeb = 0
Range("N4").Select
WeekTotalFeb = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalFeb
Else
If Week = "2" Then..........etc....
--------------------------

It's really a pain to write all those ifs!


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default Basic Looping

WeekTotal(aMonth) = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan


CORRECTION... the above has errors. I just noticed you set the WeekTotalJan,
WeekTotalFeb, etc. variable twice, once to 0 (which was totally unnecessary
because later on) you set it to AmountDueTextBox.Value which overrides your
original assignment of 0 to them. So, my four line replacement becomes this
three line replacement instead...

Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotal(aMonth) = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotal(aMonth)

Sorry about any confusion my multiple posts may have caused you. To
summarize, use the array structure I outlined in my last posting, but use
the above three lines of code to replace all your originally posted code.

--
Rick (MVP - Excel)



"Rick Rothstein" wrote in message
...
Whoops! I missed the switch over between WeekTotalJan to WeekTotalFeb when
aMonth changed. The BEST way to handle this would be to convert your
individual WeekTotalJan, WeekTotalFeb, WeekTotalMar, etc. to an array.
This would require you to change other parts of your code where you use
these variables, but using arrays makes constructions such as this so much
more streamlined. So, wherever you have Dim'med the variables
WeekTotalJan, WeekTotalFeb, WeekTotalMar, etc., delete them and replace
them with this...

Dim WeekTotal(1 To 12) As Long

Now, wherever in your code you have WeekTotalJan, replace it with
WeekTotal(1) and wherever in your code you have WeekTotalFeb, replace it
with WeekTotal(2), and wherever in your code you have WeekTotalMar,
replace it with WeekTotal(3), etc. (you can use Edit/Replace from the VB
editor's menu bar to make all the replacements... make sure to use the
"Current Project" option). Now, once you have done that, here is the
modification to the four lines of code I posted previously....

WeekTotal(aMonth) = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan

--
Rick (MVP - Excel)



"Rick Rothstein" wrote in message
...
If I have interpreted your code correctly, these four lines of code
should replace ALL the code you posted (including that parts that would
be covered by the etc.)...

WeekTotalJan = 0
Cells(3 + Week, "K").Offset(0, 3 * (aMonth - 1)).Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan

--
Rick (MVP - Excel)



"ecce_ego" wrote in message
...
I have made a form that will enter customer data in a worksheet and
calculate
several things, including checking a date range and adding totals to a
table
of weekly totals for the month. The code I wrote works, but I am new to
programming and do not know how to create a more logically structured
program.

Here is a portion of the code I've written; how do I use a loop to
accomplish the same thing?

---------------------

If aMonth = "1" Then
If Week = "1" Then
WeekTotalJan = 0
Range("K4").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "2" Then
WeekTotalJan = 0
Range("K5").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "3" Then
WeekTotalJan = 0
Range("K6").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "4" Then
WeekTotalJan = 0
Range("K7").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
Else
If Week = "5" Then
WeekTotalJan = 0
Range("K8").Select
WeekTotalJan = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalJan
End If
End If
End If
End If
End If
Else
If aMonth = "2" Then
If Week = "1" Then
WeekTotalFeb = 0
Range("N4").Select
WeekTotalFeb = AmountDueTextBox.Value
ActiveCell.Value = ActiveCell.Value + WeekTotalFeb
Else
If Week = "2" Then..........etc....
--------------------------

It's really a pain to write all those ifs!


Reply
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
Looping David T Excel Discussion (Misc queries) 2 August 30th 06 10:51 PM
Looping...but why? cherrynich Excel Programming 2 May 12th 06 04:57 PM
Can I run Visual Basic procedure using Excel Visual Basic editor? john.jacobs71[_2_] Excel Programming 3 December 26th 05 02:22 PM
Problem with basic looping and criteria Jeff Excel Programming 2 December 29th 04 10:05 PM
Looping Gusset Gadder Excel Programming 2 December 11th 04 09:16 PM


All times are GMT +1. The time now is 02:13 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"