Jumat, 03 Mei 2013

Re: [ExcelVBA] Problem: sort sheets according to two sets of criteria

Hi again Paul,

I hope that all that you write to me helps others too, because I feel I am taking much of your attention, and I start to feel bad, like if I was receiving private lessons.

1. Counting the VBA lines:

I will try it not only for the fun of it, but because this is TOTALLY new to me.
I like you always use UCase when comparing string. This is something that I will start doing.

2. About Text Pad.
Pleeeaaase, do not take my Text Pad away from me!
I bought it in 1997, had all the upgrades for free, and this here I started writing my first HTLM, then my first JS, and all those Internet languages.
I promise, Mr Professor, I will try all those mysterious (for me) features of the VBE.

So yes I'll try, but I doubt this will completely replace my Text Pad: I need the libraries too much, and this I have tried to do in the VBE, and it's really not comparable. And all the other features. It takes as much place of my life as Excel.

3. Option explicit.
I do use Option Explicit, although not all the time, but this is not really to prevent typos: I would make so many anyway, that once I have created a name, I do not write it twice, I copy paste all the time.

Thank you again.

Louise G.



Le --03052013 à 08:19, Paul Schreiner <schreiner_paul@att.net> a écrit :

> wow!
> thanks for the compliments!
> I'll try to address a couple of questions and comments:
> ----------------------------------
> Counting VBA lines:
> ----------------------------------
> Unfortunately, there's no SIMPLE way of counting the lines.
> There IS a VBA "property" (or "method"?) that does though!
>
> Each Workbook can have a VB Project.
> Each VBProject has Components
> Each Component has a CodeModule
> and each CodeModule has a CountOfLines property!
> wow... that's a stretch.
>
> So, what I do is open all of the workbooks that I want to count the VBA lines.
>
> Then use this to cycle through all open workbooks:
> For Each w In Workbooks
> If (UCase(Left(w.Name, Len("Personal.xls"))) <>
> UCase("Personal.xls")) Then
> Workbooks(w.Name).Activate
> rcnt = rcnt + 1
> ThisWorkbook.Sheets("VBA Macros").Cells(rcnt,
> "A").Value = ActiveWorkbook.Name
> ThisWorkbook.Sheets("VBA Macros").Cells(rcnt,
> "B").Value = CountAllMacros_Summary
> End If
> Next w
>
> The CountAllMacros_Summary function looks like:
>
> Public Function CountAllMacros_Summary()
> Dim vbaModule 'As VBProject.VBComponents
> Dim VBComp, tmp, TTL, lcnt
> Set vbaModule = ActiveWorkbook.VBProject.VBComponents
> TTL = 0
> Application.StatusBar = "Counting Modules..."
> Application.EnableEvents = False
> For Each VBComp In vbaModule
> lcnt =
> ActiveWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule.CountOfLines
> TTL = TTL + lcnt
> Next VBComp
> Application.EnableEvents = True
> Application.StatusBar = False
> CountAllMacros_Summary = TTL
> End Function
> -----------------------------------------------------------------------------------------------------------------------------
>
> I have a similar option that gives me a detail list of lines in each code module
> instead of the total lines for the workbook.
>
> -------------------------------------------------------------------------------
> You said that you write in TextPad for the line numbers and libraries, then
> asked about debugging..
>
> Oh MY!!!
> I think once you get really used to the VBEditor, you'll no longer need to use
> TextPad!
>
> Here's a couple of tips:
> First, right-click on the "Menu bar" and be sure to turn on "Debug", "Edit" and
> "Standard".
>
> "Dock" any of these toolbars that are "floating" underneath the rest of the
> icons.
>
> There are several of these that REALLY come in handy!
> First of all, some of the colors are "configurable", so YOUR VBEditor might look
> different than mine.
>
> Bookmarks: Notice the set of blue flags? These are bookmarks. If your cursor is
> on a line and you hit the first blue flag, it places a littel blue box in the
> left-hand border. Now, whenever you're in another function or module, hitting
> the blue flag with the arrow (pointing right or left) will step through each of
> your bookmarks.
> of course, hitting the flag with the "x" will remove all bookmarks.
>
> Breakpoints: If you want to debug a macro, it is sometimes helpful to run the
> macro to a specific point, then halt the execution and step through the macro
> one line at a time. Using the "hand" icon, you set a "breakpoint".
> It puts a colored circle (mine is maroon) and highlights the line. Now, when
> you run your macro, it will PAUSE when it gets to this breakpoint. Instead of
> using the icon, you can simply click in the left-border (where the circle
> appeared) and either turn on or off the breakpoint. (using the menu
> Debug->ClearAllBreakpoints will remove them all, so you don't have to remove
> them one at a time)
>
> Watches: If you right-click on one of your variables, you can select to "add
> Watch". This will place the variable in a "watch window" and show you the value
> of the variable as you step through the macro!
>
> You'll notice that, while the macro is running, the line currently being
> "executed" is highlighted in Yellow, with an arrow in the border.
> If, after you step through the line, the watch variable doesn't show what you're
> expecting, you CAN edit the previous line, then simply "drag" the yellow arrow
> back to the previous line (or before) and step through again!
> If, for instance, a variable has a value, and you want to change the value for
> testing purposes, you can change it in the Watch Window, and continue
> executing your macro!
>
>
> Variable Declaration.
> Have you ever set a variable to a value, then later tried to use the variable
> and it isn't working, then you discover that you keyed the name wrong?
> Like:
> Dim NewVariable as String
>
> then:
> NewVariabel = "test"
>
> If, at the top of each Module, you enter the line:
> Option Explicit
>
> This tells the compiler that all variables have to be declared "Explicitly".
> But it ONLY applies to the current code module. So you need this in each
> module.
> (you can use the menu: Tools->Options and select "Require Variable Declaration"
> to set the "default")
>
> By declaring all variables, as you type you can tell if you've miskeyed
> something.
> for the variable declared as "NewVariable", if you typed: newvariable = "test",
> the Editor will automatically change the name to: NewVariable.
>
> also, if you've written your code in separate subs or functions, when you're
> USING the function:
> (like: Cells(rcnt, "B").Value = CountAllMacros_Summary)
> you can right-click on the function name and select "Definition", and it will
> take you to the function!
>
> hope this helps...
>
> let me know if you have any more questions (or if I've missed any)
>
>
> Paul
> -----------------------------------------
> "Do all the good you can,
> By all the means you can,
> In all the ways you can,
> In all the places you can,
> At all the times you can,
> To all the people you can,
> As long as ever you can." - John Wesley
> -----------------------------------------
>
>
>
>
> ________________________________
> From: Louise Gariépy <garilou@cgocable.ca>
> To: ExcelVBA@yahoogroups.com
> Sent: Fri, May 3, 2013 2:06:14 AM
> Subject: Re: [ExcelVBA] Problem: sort sheets according to two sets of criteria
>
> Hi again, Paul
>>
>> Glad I could help.
>
> You sure did! As I said, I think about you at least 2 times a day!
> It saves me so much time that I sort more often.
>>
>> As for the "X" in:
>>
>> If (Sheets("Source").Cells(R, "B").Value & "X" <> "X") Then
>>
>> I manage nearly 100,000 lines of VBA code spread across several applications!
>
> Hum, how do you count them?
> I am not only joking: is there a way the see the line numbers in VBE?
> There are still lots of features in the VBE that I do not use because I don't
> know what they are for or how they work.
>
> I am sure I would be more efficient if I mastered this.
>
> I write all my subs first in Text Pad, and I do appreciate the line numbers
> (and also all the pieces of code that I can store in the libraries)
>> As you can imagine, troubleshooting problems can be difficult.
>
> This reminds me of an old question a few years ago, with subject : How do you
> debug?
> I did not expect so many replies, but there were, and this helped me a lot!
>
>>
>> On occasion, I've encountered cases where the "value" in a cell is "null".
> .............
>
>> .. unless someone asks...
>
> Well I asked and got a good trick that I will use, because as a matter of fact,
> this has happened to me, and I always found workarounds that were time
> consuming.
>
>> --------------------------------------------------------------------------------------------
>> -
>>
>> The other "trick" to speed things up is that I turn off screen updating.
> As for screen updating turned off, maybe it was not written in the sample book,
> but I use this all the time.
> It does not only save time, even if it is the main reason, with screen updating
> off, you don't see things that I not necessarily pretty (on a hidden sheet for
> example). I am glad that I do not work for a client: my pages are not always
> good looking.
>
> As well as calculation turned to manual.
> When I need to refresh 10 queries per page on 40 pages, if it calculated each
> time, not only it would take so long, but some results would present a error if
> all the data are not yet in.
>
>>
>> --------------------
>> Sorting
>> --------------------
>> What I did was perform what is called a "bubble sort".
>
> I had found "bubble sort" in my long googling hours, but no example helped me
> understand how to do it, at least in the case I needed.
> The examples were applied to too simplistic tasks.
>
>> I loaded the array with sheet names and values.
>> I then cycled through the array from first to last and compared the "value"
>> from
>>
>> one sheet to the next.
>> If the values need to be reversed, I load one set of array contents into the
>> "bubble" and use this to swap values.
>>
>> I COULD have combined the array sort and sheet move into one loop.
>> However, that means that whenever the "values" require the sheets to be
>> "swapped", the actual sheets would be moved, which would take WAY more
>> processing time.
>>
>> ----------------
>> To be honest, we COULD have simply combined the data into one sheet, sorted
>> it in the sheet, and then used VBA to move the sheets into the proper order.
>
> This was what I was starting to do when I thought I could not do it, but I also
> prefer VBA solutions.
>
> What you did - and it did not come to my mind - is that you did it in 2 steps:
> First sort all according to criteria 2, and only after bring back the pages I
> needed first according to criteria 1.
> This made every thing much more simple.
>>
>> But... I like VBA solutions best!
>>
>> let us know if you need anything else...
>
> I sure will.
> But I really try to find my solutions before I ask.
> When I came here first, I knew so little that I did not even know which words to
> google for.
> Now I am more efficient at finding answers on my own.
> But if you saw all my code lines, you would probably want to re write a lot!
>
>
>>
>> Paul
>> -----------------------------------------
>> "Do all the good you can,
>> By all the means you can,
>> In all the ways you can,
>> In all the places you can,
>> At all the times you can,
>> To all the people you can,
>> As long as ever you can." - John Wesley
>> -----------------------------------------
>>
>
> I can see that you act - and probably not only on this group - according to the
> text that you use as signature.
> You are really generous, and a good teacher too.
> This is beautiful: another gift from you
>
> Thanks again
>
> Louise
>
>>
>>
>>
>> ________________________________
>> From: Louise Gariépy <garilou@cgocable.ca>
>> To: "ExcelVBA@yahoogroups.com" <ExcelVBA@yahoogroups.com>
>> Sent: Wed, May 1, 2013 10:07:21 PM
>> Subject: Fwd: [ExcelVBA] Problem: sort sheets according to two sets of
> criteria
>>
>> Hi again Paul!
>>
>> Fantastic.
>> As expected, it worked perfectly at the first run on the sample book.
>>
>> Then it took me about 30 minutes to adapt it to the real book.
>> I had to change the first sorting, because I needed the sheets to be sorted
>> from
>>
>> the largest number to the smallest.
>> Then I understood why you were using
>>>> If (Sheets("Source").Cells(R, "B").Value & "X" <> "X") Then.
>>
>> And I tried:
>> If (Sheets("Source").cells(R."B").value > "") then
>> ...
>> and it worked well
>> (I do not have 1000 sheets, and I hope I will never have so many, so the sub
>> runs in about 1/2 sec.
>> To do this - without mistakes - it took me sometimes up to 10 minutes (and the
>
>> sheets that were not on "Source" were not sorted).
>>
>> I thank you so much, I wish so much I could do something to thank you.
>>
>> The only thing that I could offer to you would be to trade stocks for you.
>>
>> The "A,B,C..." from the sample book are in fact stock tickers.
>> Since I came to this group for the first time, I have not stopped refining my
>> indicators, and this new book helps me to size the positions so that my
>> portfolio is always fully invested with the best performing stocks, and most of
>>
>> all to quickly catch the day winners, bull or bear market!
>> With this new book, I am real good, and beat the markets every day by 0.5% to
>> 1.5%.
>> I am only joking, but my son has invested a few thousand dollars in my "Fund"
>> and he is really pleased.
>>
>> So every night, when I will reallocate my portfolio, I'll have a good thought
>> for you.
>>
>> Till the next time,
>>
>> Louise
>>
>>
>>
>>
>>
>>
>>
>>
>> Début du message réexpédié :
>>
>>> De : Louise Gariépy <garilou@cgocable.ca>
>>> Objet : Rép : [ExcelVBA] Problem: sort sheets according to two sets of
>> criteria
>>> Date : 1 mai 2013 20:19:45 HAE
>>> À : ExcelVBA@yahoogroups.com
>>> Répondre à : ExcelVBA@yahoogroups.com
>>>
>>> Hi Paul,
>>>
>>> First, sorry for the empty message.
>>> I am not familiar with this mail program, and I do stupid mistakes.
>>>
>>> Wow!
>>>
>>> You did much more then I was asking, (I did not ask for a complete code).
>>> But the main reason I asked to the group was to come out of my habits and try
>
>>> to learn something new, here it is!
>>> I knew I should sort the array, and I did not know how.
>>> I am so glad.
>>> Now I have concrete to work with.
>>>
>>> I am not sure if I understand the "X" in:
>>>> If (Sheets("Source").Cells(R, "B").Value & "X" <> "X") Then
>>>
>>>
>>> but let me think a little bit.
>>>
>>> I will study and try the code and give you feedback.
>>>
>>> Yes I will remove the sheet "Problem Description", but in the real book, I have
>>>
>>> 4 sheets before the "A,B,C..." sheets to sort.
>>>
>>> Thank you so much! Once it is done, it will save me so much time and
>> mistakes!
>>>
>>> Louise
>>>
>>> Le --01052013 à 11:47, Paul Schreiner <schreiner_paul@att.net> a écrit :
>>>
>>>> Louise,
>>>>
>>>> Here's what I came up with.
>>>> it's not really "efficient", but it gets the job done.
>>>> If I knew that the values in A1 of each sheet were NUMERIC,
>>>> and the range of values, then I might be able to make it run more
>> efficiently.
>>>>
>>>> Even so, I created some test data (1000 sheets) and it ran in about 5
>> seconds.
>>>>
>>>> Here's what I came up with:
>>>> The premise is to load the sheet names and values from (A1) into an array and
>>
>>
>>>> sort the array based on the A1 values.
>>>> Skipping sheets with the name "Source" and "Problem Description".
>>>>
>>>> Then, move the sheets to the "end" of the workbook based on this array.
>>>> Next, move the sheets in your "special" list to the front. (in reverse
> order)
>>>>
>>>> Note: I used .Move After:=Sheets(2)
>>>> which would put them after the 2nd sheet, which is "Problem Description"
>>>> If you remove that sheet, and want the sheets to appear after the first sheet,
>>>
>>>
>>>> then change Sheets(2) to Sheets(1).
>>>>
> -----------------------------------------------------------------------------
>>>> Option Explicit
>>>> Sub SortSheets()
>>>> Dim R, nRows, sht, inx
>>>> Dim ShtArray(1500, 1)
>>>> Dim SortFlag, LoopCnt
>>>> Dim tmpval0, tmpval1
>>>> On Error GoTo 0
>>>> '------------------------------------------------------
>>>> ' Load Sheet Names and Values (from Cell A1) into array
>>>> '------------------------------------------------------
>>>> inx = -1
>>>> For Each sht In Sheets
>>>> If ((UCase(sht.Name) <> UCase("Source")) _
>>>> And (UCase(sht.Name) <> UCase("Problem description"))) Then
>>>> inx = inx + 1
>>>> ShtArray(inx, 0) = sht.Name
>>>> ShtArray(inx, 1) = sht.Cells(1, 1).Value
>>>> End If
>>>> Next
>>>> '---------------------------------------
>>>> ' Sort Array by Values
>>>> '---------------------------------------
>>>> SortFlag = True
>>>> LoopCnt = 0
>>>> While SortFlag And LoopCnt < 1000000
>>>> LoopCnt = LoopCnt + 1
>>>> SortFlag = False
>>>> For inx = 0 To UBound(ShtArray) - 1
>>>> If ((ShtArray(inx, 0) <> "") And (ShtArray(inx + 1, 0) <> ""))
>> Then
>>>> If (ShtArray(inx, 1) > ShtArray(inx + 1, 1)) Then
>>>> tmpval0 = ShtArray(inx, 0)
>>>> tmpval1 = ShtArray(inx, 1)
>>>> ShtArray(inx, 0) = ShtArray(inx + 1, 0)
>>>> ShtArray(inx, 1) = ShtArray(inx + 1, 1)
>>>> ShtArray(inx + 1, 0) = tmpval0
>>>> ShtArray(inx + 1, 1) = tmpval1
>>>> SortFlag = True
>>>> Exit For
>>>> End If
>>>> End If
>>>> Next inx
>>>> Wend
>>>> '----------------------
>>>> ' Move Sheets
>>>> '----------------------
>>>> Application.ScreenUpdating = False
>>>> For inx = 0 To UBound(ShtArray)
>>>> If (ShtArray(inx, 0) <> "") Then
>>>> Sheets(ShtArray(inx, 0)).Move After:=Sheets(Sheets.Count)
>>>> Else
>>>> Exit For
>>>> End If
>>>> Next inx
>>>> '-----------------------------------------------
>>>> ' Move first sheets from "First" list to front
>>>> '-----------------------------------------------
>>>> nRows = Sheets("Source").Cells(1, 1).SpecialCells(xlLastCell).Row
>>>> For R = nRows To 1 Step -1
>>>> If (Sheets("Source").Cells(R, "B").Value & "X" <> "X") Then
>>>> ' Sheets(Sheets("Source").Cells(R, "B").Value).Move
>>>> Before:=Sheets(1)
>>>> Sheets(Sheets("Source").Cells(R, "B").Value).Move
> After:=Sheets(2)
>>>> End If
>>>> Next R
>>>> Application.ScreenUpdating = True
>>>> Sheets("Source").Select
>>>> MsgBox "Finished"
>>>> End Sub
>>>>
>>>>
> -----------------------------------------------------------------------------
>>>> Paul
>>>> -----------------------------------------
>>>> "Do all the good you can,
>>>> By all the means you can,
>>>> In all the ways you can,
>>>> In all the places you can,
>>>> At all the times you can,
>>>> To all the people you can,
>>>> As long as ever you can." - John Wesley
>>>> -----------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> From: Louise Gariépy <garilou@cgocable.ca>
>>>> To: ExcelVBA@yahoogroups.com
>>>> Sent: Wed, May 1, 2013 7:05:35 AM
>>>> Subject: Re: [ExcelVBA] Problem: sort sheets according to two sets of
>> criteria
>>>>
>>>>
>>>> Hi, David,
>>>> Thank you for trying.
>>>> But this does not solve my problem.
>>>> Or in other words, yes this list that you suggest was generated in the sheet
>
>>>> "Problem description". (Columns M and N)
>>>>
>>>> I was hoping to find a method to go directly from the columns B and C,
>>>> (Criteria
>>>>
>>>> 1) and E and F (criteria 2) to the sheet sorting process.
>>>> I guess if the whole cannot be done in one step, I will keep on with my not too
>>>>
>>>>
>>>> elegant program that I have started, generating all columns that were
>>>> illustrated in that sheet.
>>>>
>>>> From there on, it will not be too difficult with the:
>>>> sheets(s).move after.
>>>> to move the sheets with the largest numbers to the end.
>>>>
>>>> I guess that if I could not find the solution while googling for so long, it
>
>>>> was
>>>>
>>>> because there was no way to do it.
>>>> Thanks anyway.
>>>> This gave me the opportunity to say hello to everyone ;-)
>>>>
>>>> Louise
>>>>
>>>> Le --27042013 à 20:29, David Grugeon <yahoo@grugeon.com.au> a écrit :
>>>>
>>>>> Hi Louise
>>>>>
>>>>> I think the easiest way to do this is to create a list of the sheet names
>>>>> in order, then step through this list in order moving each sheet to the
>>>>> end. I think you would use something like
>>>>>
>>>>> Sheets(s).move after:=Sheets(Sheets.Count)
>>>>>
>>>>> Put this in a loop which picks up the next sheetname as s.
>>>>>
>>>>>
>>>>> On 28 April 2013 09:27, garilou <garilou@cgocable.ca> wrote:
>>>>>
>>>>>> Hi group, and all the genius programmers!
>>>>>>
>>>>>> I have not been asking much for quite a long time, but I keep programming
>>>>>> almost every day.
>>>>>>
>>>>>> David has put on the group page a sample sheet that I have prepared to
>>>>>> better explain what I am trying to do.
>>>>>> As I told David, I have Googled for days, and all what I found were
>>>>>> programs to sort alphabetically, which is not what I need.
>>>>>> ==============================
>>>>>>
>>>>>> I have a workbook with more almost 40 data sheets.
>>>>>>
>>>>>> I must rearrange those sheets at least once a day: when there were only 5
>>>>>> to 10, I made it manually, but it took a long time, and I made so many
>>>>>> mistakes that the rest of the tasks did not work.
>>>>>>
>>>>>> The sheets must be ordered according to 2 sets of criteria.
>>>>>>
>>>>>> Between 1 and maximum 10 sheets must be ordered first, in an order
>>>>>> determined on another sheet (« source »). (Criteria 1)
>>>>>>
>>>>>> The other ones must be ordered according to a number (between 20 and 100)
>>>>>> that I have set in cell A1 from every sheet of the sample book. (Criteria
>> 2)
>>>>>>
>>>>>> For the sake of this sample, I have created those values with a random
>>>>>> formula.
>>>>>>
>>>>>> "In real life", this could be more complicated, because some sheets could
>>>>>> have the same value in cell A1, but those could be placed side by side,
>>>>>> with no special order.
>>>>>>
>>>>>> The names on sheet «Source » are different every day, as well as the value
>>>>>> in Cell A1 of the other sheets.
>>>>>>
>>>>>> I do not expect any one to write the whole program for me, but if I could
>>>>>> get some methods to follow, steps to go through, some keywords that I
> could
>>>>>> Google that would help me find a solution.
>>>>>>
>>>>>> Then I might try and come back with more specific questions.
>>>>>>
>>>>>> Thank you to all who will be so kind to look at this.
>>>>>>
>>>>>> Louise
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------
>>>>>>
>>>>>> ----------------------------------
>>>>>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go
>>>>>> here: http://www.mousetrax.com/techtrax to enter the ezine, then search
>>>>>> the ARCHIVES for EXCEL VBA.
>>>>>>
>>>>>> ----------------------------------
>>>>>> Visit our ExcelVBA group home page for more info and support files:
>>>>>> http://groups.yahoo.com/group/ExcelVBA
>>>>>>
>>>>>> ----------------------------------
>>>>>> More free tutorials and resources available at:
>>>>>> http://www.mousetrax.com
>>>>>>
>>>>>> ----------------------------------Yahoo! Groups Links
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> [Non-text portions of this message have been removed]
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------
>>>>>
>>>>> ----------------------------------
>>>>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
>>>>>
>>>>>
>>>>> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
>>>>
>>>>
>>>>> for EXCEL VBA.
>>>>>
>>>>>
>>>>> ----------------------------------
>>>>> Visit our ExcelVBA group home page for more info and support files:
>>>>> http://groups.yahoo.com/group/ExcelVBA
>>>>>
>>>>> ----------------------------------
>>>>> More free tutorials and resources available at:
>>>>> http://www.mousetrax.com
>>>>>
>>>>> ----------------------------------Yahoo! Groups Links
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> [Non-text portions of this message have been removed]
>>>>
>>>>
>>>>
>>>> ------------------------------------
>>>>
>>>> ----------------------------------
>>>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
>>>>
>>>> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
>>>
>>>> for EXCEL VBA.
>>>>
>>>>
>>>> ----------------------------------
>>>> Visit our ExcelVBA group home page for more info and support files:
>>>> http://groups.yahoo.com/group/ExcelVBA
>>>>
>>>> ----------------------------------
>>>> More free tutorials and resources available at:
>>>> http://www.mousetrax.com
>>>>
>>>> ----------------------------------Yahoo! Groups Links
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> ------------------------------------
>>>
>>> ----------------------------------
>>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
>>>
>>> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
>>
>>> for EXCEL VBA.
>>>
>>>
>>> ----------------------------------
>>> Visit our ExcelVBA group home page for more info and support files:
>>> http://groups.yahoo.com/group/ExcelVBA
>>>
>>> ----------------------------------
>>> More free tutorials and resources available at:
>>> http://www.mousetrax.com
>>>
>>> ----------------------------------Yahoo! Groups Links
>>>
>>>
>>>
>>
>>
>>
>> [Non-text portions of this message have been removed]
>>
>>
>>
>> ------------------------------------
>>
>> ----------------------------------
>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
>>
>> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
>
>> for EXCEL VBA.
>>
>>
>> ----------------------------------
>> Visit our ExcelVBA group home page for more info and support files:
>> http://groups.yahoo.com/group/ExcelVBA
>>
>> ----------------------------------
>> More free tutorials and resources available at:
>> http://www.mousetrax.com
>>
>> ----------------------------------Yahoo! Groups Links
>>
>>
>>
>> [Non-text portions of this message have been removed]
>>
>>
>>
>> ------------------------------------
>>
>> ----------------------------------
>> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
>> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
>> for EXCEL VBA.
>>
>>
>> ----------------------------------
>> Visit our ExcelVBA group home page for more info and support files:
>> http://groups.yahoo.com/group/ExcelVBA
>>
>> ----------------------------------
>> More free tutorials and resources available at:
>> http://www.mousetrax.com
>>
>> ----------------------------------Yahoo! Groups Links
>>
>>
>>
>
>
>
> ------------------------------------
>
> ----------------------------------
> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here:
> http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES
> for EXCEL VBA.
>
>
> ----------------------------------
> Visit our ExcelVBA group home page for more info and support files:
> http://groups.yahoo.com/group/ExcelVBA
>
> ----------------------------------
> More free tutorials and resources available at:
> http://www.mousetrax.com
>
> ----------------------------------Yahoo! Groups Links
>
>
>
> [Non-text portions of this message have been removed]
>
>
>
> ------------------------------------
>
> ----------------------------------
> Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here: http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES for EXCEL VBA.
>
> ----------------------------------
> Visit our ExcelVBA group home page for more info and support files:
> http://groups.yahoo.com/group/ExcelVBA
>
> ----------------------------------
> More free tutorials and resources available at:
> http://www.mousetrax.com
>
> ----------------------------------Yahoo! Groups Links
>
>
>



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

----------------------------------
Be sure to check out TechTrax Ezine for many, free Excel VBA articles! Go here: http://www.mousetrax.com/techtrax to enter the ezine, then search the ARCHIVES for EXCEL VBA.

----------------------------------
Visit our ExcelVBA group home page for more info and support files:
http://groups.yahoo.com/group/ExcelVBA

----------------------------------
More free tutorials and resources available at:
http://www.mousetrax.com

----------------------------------Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ExcelVBA/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/ExcelVBA/join
(Yahoo! ID required)

<*> To change settings via email:
ExcelVBA-digest@yahoogroups.com
ExcelVBA-fullfeatured@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
ExcelVBA-unsubscribe@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/

Tidak ada komentar:

Posting Komentar