Solved

How to transfer input data to Excel form

Posted on 1998-09-15
6
175 Views
Last Modified: 2010-04-30
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?
0
Comment
Question by:okuda
  • 2
  • 2
  • 2
6 Comments
 

Expert Comment

by:NateT
ID: 1435075
where is the info originating from?
0
 

Author Comment

by:okuda
ID: 1435076
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
 

Expert Comment

by:NateT
ID: 1435077
Go Ahead and send it to NTownsley@Darlingii.com
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 12

Accepted Solution

by:
mark2150 earned 150 total points
ID: 1435078
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
 

Author Comment

by:okuda
ID: 1435079
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
 
LVL 12

Expert Comment

by:mark2150
ID: 1435080
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

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now