How to transfer input data to Excel form

Once all the necessary information is inputed the information must be placed on a Excel form that has already been made. How do I code this to transfer the information to the appropriate space on the excel form?
okudaAsked:
Who is Participating?
 
mark2150Commented:
Use the sendkeys command to drive the excel spreadsheet. You can force it to a specific cell and then send it one line at time. Go into excel and do the sequence by hand, noting every keypress you make. This forms the basis of your SendKeys script.

Here is a code excerpt I wrote to update an excel spreadsheet using this method:

'
' Launch Excel & give it focus. We'll try it later as a minimized app
'
retval = Shell("X:\MSoffice\office\EXCEL.EXE", vbNormalFocus)
AppActivate retval
DoEvents
'
' Tell Excel to open source file
'
AppActivate retval
SendKeys "%FO", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%N" + srce$ + ".XLS", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%O", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "^{HOME}", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "+^{END}", True
DoEvents
AppActivate retval
DoEvents
'
' Ask for HTML save
'
AppActivate retval
SendKeys "%FH~", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "{TAB} ~", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%O", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%A{home}{DEL 60}C:\VB\ROBOT.TEM~", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%S", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%A{home}{DEL 60}C:\VB\ROBOT.NEW~", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "~{esc 5}^{home}", True
DoEvents
AppActivate retval
DoEvents
'
AppActivate retval
SendKeys "%FXN~", True
DoEvents
AppActivate retval
DoEvents
'
' Wait here for Excel to catch up
'
On Error GoTo holder
'
' Name "robot.new" As "robot.xxx"
'
holdmore:
If FileLen("robot.new") < 1 Then GoTo holdmore
'
GoTo drain
' =================
'
holder:
Resume
'
drain:
End
'
End Sub

0
 
NateTCommented:
where is the info originating from?
0
 
okudaAuthor Commented:
info is originating from the input of several forms within my application. All information is being sent to a temp form prior to placing on the excel form or workbook sheet. On the Temp form Cmd Button to print should send the information to the excel workbook sheet at a specific location. ie name first, number second, level third, comments fourth etc. This program is to assign a bed and cell to a young offender within a specific unit. Cell 1A being first line Cell 1B being second line. If there is an email address that I may send a copy of the excel worksheet to so that you can see what I mean please let me know...
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
NateTCommented:
Go Ahead and send it to NTownsley@Darlingii.com
0
 
okudaAuthor Commented:
That seems to be way above the current level of V/B that I am currently at but I will give it a try and see if it works. If I have trouble at least I have a place to start...Thanks
0
 
mark2150Commented:
It shouldn't be too hard. The SendKeys help file explains that all those %F's and {Esc}'s and such mean. If you can walk thru the spreadsheet *WITHOUT THE MOUSE* noting each and every key you press, you'll do fine.

If you look at the Excel menus, one option is usually underlined. <Alt> and that underlined character will pop up that option. So File, Open becomes <Alt F><O> Even simpler is to use the shortcuts listed on the menu. <Ctrl O> alone will pop the file open screen.

Take your time and run it full screen. You'll see Excel do it's thing. Watch closely and see where it zigs when you wanted it to zag and your macro will run just fine.

If you want to cut down on the VB code, create a macro in Excel and then just have VB fire *THAT* instead of having VB do every little stroke. This has the added advantage in that you can change the macro in Excel instead of having to recompile. Is not hard. Give it a shot. If you look at the code above, most of it is repeats of the same few lines:

Accepted Answer
    From: mark2150
                                                                                  Date: Tuesday, September 15 1998 - 11:22AM PDT

    Use the sendkeys command to drive the excel spreadsheet. You can force it to a specific cell and then send it one line at time. Go into
    excel and do the sequence by hand, noting every keypress you make. This forms the basis of your SendKeys script.

    Here is a code excerpt I wrote to update an excel spreadsheet using this method:

    '
    ' Launch Excel & give it focus. We'll try it later as a minimized app
    '
    retval = Shell("X:\MSoffice\office\EXCEL.EXE", vbNormalFocus)
    AppActivate retval
    DoEvents
    '
    ' Tell Excel to open source file
    '
    AppActivate retval
    SendKeys "%FO", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "%N" + srce$ + ".XLS", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "%O", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "^{HOME}", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "+^{END}", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    ' Ask for HTML save
    '
    AppActivate retval
    SendKeys "%FH~", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "{TAB} ~", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "%O", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "%A{home}{DEL 60}C:\VB\ROBOT.TEM~", True
    DoEvents
    AppActivate retval
    DoEvents
    '
    AppActivate retval
    SendKeys "%S", True
    DoEvents
    AppActivate retval
    DoEvents
    '
 The "AppActivate retval" makes sure that Excel is hot. The "SendKeys..." sends *1* command at a time, and the DoEvents lines cede execution to the OS to give Excel a chance to digest the command.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.