Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Loop +2, +4, etc. help

I am trying to loop a routine using SENDKEYS that performs a function 2
times, then 4 times, then 6 times (all previous + 2 essentially). The below
code runs through the whole routine 70 times which I want to keep, but I
would like the:
SendKeys "{TAB}", False
command to essentially send TAB twice, then 4x, then 6x, etc, all +2 based
on the previous number. If anyone could help, I would greatly appreciate it.

<------ full code below --------

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))



SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Loop +2, +4, etc. help

If you are doing something on a worksheet, this is the wrong approach.


Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer
k = 0
For i = 1 To 70
k = k + 2
for j = 1 to k
SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))
Next j


SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

--
Regards,
Tom Ogilvy


"tmwilkin" wrote:

I am trying to loop a routine using SENDKEYS that performs a function 2
times, then 4 times, then 6 times (all previous + 2 essentially). The below
code runs through the whole routine 70 times which I want to keep, but I
would like the:
SendKeys "{TAB}", False
command to essentially send TAB twice, then 4x, then 6x, etc, all +2 based
on the previous number. If anyone could help, I would greatly appreciate it.

<------ full code below --------

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))



SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Loop +2, +4, etc. help

That worked perfectly - Thanks! I'm using the sendkeys to make changes to a
web browser page.

"Tom Ogilvy" wrote:

If you are doing something on a worksheet, this is the wrong approach.


Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer
k = 0
For i = 1 To 70
k = k + 2
for j = 1 to k
SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))
Next j


SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

--
Regards,
Tom Ogilvy


"tmwilkin" wrote:

I am trying to loop a routine using SENDKEYS that performs a function 2
times, then 4 times, then 6 times (all previous + 2 essentially). The below
code runs through the whole routine 70 times which I want to keep, but I
would like the:
SendKeys "{TAB}", False
command to essentially send TAB twice, then 4x, then 6x, etc, all +2 based
on the previous number. If anyone could help, I would greatly appreciate it.

<------ full code below --------

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))



SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9
Default Loop +2, +4, etc. help

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

' 1st iteration sends 2 tabs (2*1)
' 2nd iteration sends 4 tabs (2*2)
' 3rd iteration sends 6 tabs (2*3)
' ...
For t = 1 To (2 * i)
SendKeys "{TAB}", False
Next t

'Application.Wait (Now + TimeValue("0:00:01"))

SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

HTH

Brian Herbert Withun

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Loop +2, +4, etc. help

I see you are using the VBA sendkeys, so I believe this would work as well

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Long, k as Long
k = 0
For i = 1 To 70
k = k + 2
SendKeys "{TAB " & k "}", False
'Application.Wait (Now + TimeValue("0:00:01"))
' note the space after the TAB

SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

--
Regards,
Tom Ogilvy


"tmwilkin" wrote:

I am trying to loop a routine using SENDKEYS that performs a function 2
times, then 4 times, then 6 times (all previous + 2 essentially). The below
code runs through the whole routine 70 times which I want to keep, but I
would like the:
SendKeys "{TAB}", False
command to essentially send TAB twice, then 4x, then 6x, etc, all +2 based
on the previous number. If anyone could help, I would greatly appreciate it.

<------ full code below --------

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))



SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 772
Default Loop +2, +4, etc. help

For j = 1 To i*2 ought to get you what you need.
You can specify how many times to tab on the line like Application.SendKeys
"{TAB 4}", False but i couldn't get a variable to work in its place.
--
-John
Please rate when your question is answered to help us and others know what
is helpful.


"tmwilkin" wrote:

I am trying to loop a routine using SENDKEYS that performs a function 2
times, then 4 times, then 6 times (all previous + 2 essentially). The below
code runs through the whole routine 70 times which I want to keep, but I
would like the:
SendKeys "{TAB}", False
command to essentially send TAB twice, then 4x, then 6x, etc, all +2 based
on the previous number. If anyone could help, I would greatly appreciate it.

<------ full code below --------

Public Sub FIXED()

Application.Wait (Now + TimeValue("0:00:05"))
Dim i As Integer

For i = 1 To 70

SendKeys "{TAB}", False
'Application.Wait (Now + TimeValue("0:00:01"))



SendKeys "{ENTER}", False
'Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "^%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{a}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{g}", False
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{INSERT}", False
Application.Wait (Now + TimeValue("0:00:01"))

Next

End Sub

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
Naming Worksheets - Loop within a loop issue klysell Excel Programming 5 March 29th 07 05:48 AM
Naming Worksheets - Loop within a loop issue klysell Excel Programming 0 March 27th 07 11:17 PM
(Complex) Loop within loop to create worksheets klysell Excel Programming 1 March 20th 07 12:03 AM
Advancing outer Loop Based on criteria of inner loop ExcelMonkey Excel Programming 1 August 15th 05 05:23 PM
Problem adding charts using Do-Loop Until loop Chris Bromley[_2_] Excel Programming 2 May 23rd 05 01:31 PM


All times are GMT +1. The time now is 12:10 PM.

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"