Free Microsoft Excel 2013 Quick Reference

Bring Excel to foreground from VBA

I am trying to force Excel window as foregrond from VBA window using some win32 API.But this is not helping out.I followed the steps below.

1.Open Excel
2.Press ALT+F11 to open VBA window
3.Double click the ThisWorkbook and paste the following code in the coding area

Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Sub Test()
Dim exlHandle As Long
Dim exlTitle As String
exlTitle = Application.Caption
exlHandle = FindWindow(vbNullString, exlTitle)
SetForegroundWindow (exlHandle)
End Sub

Call the method Test from VBA immediate window like below and press enter key there.

call ThisWorkbook.Test

It suppose to set Excel as forground but not.Any suggestion?


Post your answer or comment

comments powered by Disqus

this is my first post.
i use windows 2000, with office 2000.

i was wondering whether it is possible to copy/export data from excel to word using VBA or any other features of excel.

basically i want to be able to click a button and the data gets pasted into a word template/document.

is this at all possible?

Selecting is Ok
It is working but it slow down your macro.

I don't matter if you have Excel minimized or not.
Do yave you problems with your code when Excel is minimized ?

Regards Ron de Bruin

"Daniel" <> wrote in message news:ORQcgLmhFHA.3316@TK2MSFTNGP14.phx.gbl...
> ok but if i already have lots of code that selects values it would have to
> be rewritten if i were to do it all minimized?
> "Ron de Bruin" <> wrote in message
> news:uOIiN5lhFHA.2180@TK2MSFTNGP15.phx.gbl...
>> You don't have to select cells to chnage the values
>> This is working for example for the activeworkbook
>> Worksheets(1).Range("A1:A10").Value = 25
>> --
>> Regards Ron de Bruin
>> "Daniel" <> wrote in message
> news:%23LVxoulhFHA.2840@tk2msftngp13.phx.gbl...
>> > is it possible to select and change the values of cells in a minimized
> excel
>> > spread sheet from vba?
>> >
>> >

is it possible to select and change the values of cells in a minimized excel
spread sheet from vba?

How to check from VBA if sheet named "JohnDoe" exists in workbook?

Sub del_sheet()

if exist(sheets("JohnDoe")) then
application.displayalerts = false
application.displayalerts = true
end if

With what code I have to put instead of "exist(sheets("JohnDoe"))"

Regards, Alen

I need basic idea about how to write a VBA Coding to export data from Excel to SAP and reading data from SAP to Excel..

For Example:
In excel i have details of a Sales Order, i need to input this data into SAP through Transaction VA01 and reading the same details from SAP to excel sheet through VA03.

Appreciate, if anyone assist me in writing data transfer coding between SAP and Excel using VBA.

Thank you..

Hello all,

I'm new with vba code, but I need some help. So through searching I've found out how to automate data from excel into word. This vba code takes every sheet from excel and puts it into a word document:

     ' requires a reference to the Word Object library:
     ' in the VBE select Tools, References and check the Microsoft Word X.X object library
    Dim wdApp As Word.Application, wdDoc As Word.Document, ws As Worksheet 
    Application.ScreenUpdating = False 
    Application.StatusBar = "Creating new document..." 
    Set wdApp = New Word.Application 
    Set wdDoc = wdApp.Documents.Add 
    For Each ws In ActiveWorkbook.Worksheets 
        ws.UsedRange.Copy ' or edit to the range you want to copy
        Application.CutCopyMode = False 
         ' insert page break after all worksheets except the last one
        If Not ws.Name = Worksheets(Worksheets.Count).Name Then 
            With wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range 
                .Collapse Direction:=wdCollapseEnd 
                .InsertBreak Type:=wdPageBreak 
            End With 
        End If 
    Next ws 
    Set ws = Nothing 
     ' apply normal view
    With wdApp.ActiveWindow 
        If .View.SplitSpecial = wdPaneNone Then 
            .ActivePane.View.Type = wdNormalView 
            .View.Type = wdNormalView 
        End If 
    End With 
    Set wdDoc = Nothing 
    wdApp.Visible = True 
    Set wdApp = Nothing 
    Application.StatusBar = False 
End Sub 

If you like these VB formatting tags please consider sponsoring the author in support of injured Royal Marines
My problem is that it doesn't style the data into a table, is there any way to do this with the code I have posted? perhaps with a .Style code or something of that sort?

Thank you in advance


I'm having an issue with adding data to word from excel through VBA.

I would like to add the Table to the word doc, then copy and paste data below it. The code works fine. However, after the table gets added to the top of the word doc, the rest of the stuff begins pasting from the top of the doc, causing the table to appear at the bottom...

'Create table
    Set wrdTable = wdDoc.Tables.Add(Range:=wrdRange, NumRows:=names.Count, NumColumns:=1)
    Dim i As Integer
    For i = 1 To names.Count
        myText = names.Item(i)
        wrdTable.Cell(i, 1).Range.InsertAfter myText 
    Next i
    Set names= Nothing
    wrdTable.Borders.InsideLineStyle = wdLineStyleSingle
    wrdTable.Borders.OutsideLineStyle = wdLineStyleSingle

    wdApp.Selection.InsertBreak Type:=wdPageBreak
    With wdApp.Selection
        .Collapse Direction:=wdCollapseEnd
    End With
    'active excel doc
    ' ----- Paste from EXCEL to WORD -----     
    Worksheets("Sheet1").Range("A1", "B25").Copy
  ' !--> The data appears above the Table I added previously...

How can I get this pasted data to appear below the table?


Using VBA, how do I copy an chart from Excel to a Word document using VBA?
I can already copy cells and place them at Word bookmarks.

Jonathan Allen

I created a custom ribbon tab in excel 2007, but I want to be able to easily disable and enable a particular button from the VBA code when I need it.
What's the simplest method to disable a custom button on a custom tab in excel, and enable it later when needed? Do I have to invalidate the entire ribbon each time, or just that control? And, if one invalidates just that control, does the entire file customUI.xml loads again automaticaly, or one can load bits of xml code straight from VBA that alters just that command? How do I implement that? What's the simplest way, and can you please provide an example?

Hello to all!
First of all sorry for my English, but I hope you’ll understand me.

I have an Excel program, and I want to protect it. My macros are protected with password on VBA issue. But any Excel recovery program can easy give a password for this macros.

What I decided to do?

I want to copy my protect program function and some other to dll file. After that my program will use some necessary functions from such dll. In this dll file will be function wich’ll be check the registration of my program, and then if everything all right, do the function VBA program has
been called.

I know that it could be crack too, but I think that it would be more harder for user.

But I know nothing about dll, could you please give some links and examples about copying some functions in dll and convention to it from VBA.

I am copying data from Excel to Word using VBA and I have noticed that special characters (Subscripts, superscripts, Greek symbols, etc) lose their formatting when they are pasted into Word. Direct cut-and-paste though works fine. Is there some way to keep the formatting when using VBA?

how can we assign a value to the cell(list) with some type text from VBA.

Hi All,

Does anyone know how to trigger off a Visual Basic Script from VBA.

I need to carry out a File System Object command outside of Excel (so the user can keep working) and have written a small VBS to do this. The problem I am having is trying to get it to run from VBA.



When I am writing a formula that includes a lookup, it returns the #NAME? error in the spreadsheet. If I delete the trailing ), retype it, and hit enter then the formula returns the correct value. How do I get the formula to work correctly as it is written to the sheet from VBA!?!

Here's the line of code that writes the formula to the worksheet:

TBox.Range("A3").Offset(i, 3).FormulaR1C1 = "=ROUNDUP((8-(VLOOKUP(RC[-3],K:L,2,FALSE)/1.2))/RC[-1]*1.2,0)" 

If you like these VB formatting tags please consider sponsoring the author in support of injured Royal Marines
Thanks for any help provided!!

Hi, guys and galls,

Excel to Word using VBA.
There are several possibilities using PasteSpecial, but this is something more complicated: taking elements out of Excel and creating a certain layout in Word.
I would be glad to get
some similar codesamples
some useful links (searched the www for some hours without avail)
or why not some code which does exactly what I need (I could learn from it).

EXCEL sheet looks like

expected WORD document should look like

November 28th

Pete Jones (flute)

Marc Parker (piano)

Julia Curtis (violin)

thank you for looking at this
kind regards,

How can I call an Excel 4 macro from a VBA routine in the same workbook>


I have an external program that sends data to excel via COM by raising events. My VBA program handles these events and needs to update cell values. Excel and/or the COM program become unstable if the user has placed excel in edit mode. Is there a way to detect from VBA that excel is in edit mode so that the I can programatically control when cells are updated based on the mode? This way, I will be handle the events as raised by the COM program but not update the cells if excel is in edit mode. TIA.

I have a small problem when trying to to convert Excel to *.PDF using VBA.
All I need to do is to open adobe and the save as dialog box to be straight
on to a shared directory rather than displaying the My Docs folder for the
save point.

Any ideas?


hi, i am trying to open msdos from vba using shell command, and then to
pass a parameter or a command so that i could change the current
directory and then to run a program..

or is there a way that i could just paste a text in command prompt so
that wtever entered runs when the return key is pressed????

How can I call an Excel 4 macro from a VBA routine in the same workbook>


Hey all,

First post here so bear with me please!

Quick question though....I am not familiar with programming excel at all but is there a way to allow excel to stay in the foreground?

Meaning....I go to a network share with an excel document opened. after i connected to the share is it possible to allow excel to stay in the foreground even after I open the share?

Thanks in advance!

Am finding that after running a few macros that suddenly running one brings excel to a grinding halt where the only option is to try and kill the macro, close Excel, wait a couple minutes and restart. Then the same macro runs without issue. Is there any trick or technique to recoup the memory leak or fix whatever causes this to occur?

I'm wondering if I have a list of people with e-mail address if I can link Excel to outlook with VBA to send out calendar reminders.

I was going to use a mail merge but this only just sends messages.

Does anyone have any ideas?


Hi all can anyone help me with some code or point me in the right direction with a query about excel to outlook:

From A3 down will be names like this:

Last name, first name

In C3 down will be the email address.

I would like some code to loop from row 3 through the sheet creating a distribution list from all the entries.

Name would be A3, A4, A5 etc
Email address always in C3,C4, C5 and so on.

Can anyone help?

I found this code that maybe someone can help me adapt it sort of does what i want but seems to use the email address for the name field and it wont work if there are blank rows in it:

Public Sub DistributionList()

Dim objOutlook As New Outlook.Application
Dim objNameSpace As Outlook.Namespace
Dim objDistList As Outlook.DistListItem
Dim objMail As Outlook.MailItem
Dim objRecipients As Outlook.Recipients

Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objDistList = objOutlook.CreateItem(olDistributionListItem)
Set objMail = objOutlook.CreateItem(olMailItem)
Set objRecipients = objMail.Recipients
objDistList.DLName = InputBox("Enter name of Distribution List")

For i = 1 To Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
objRecipients.Add (Range("C" & i).Value)
Next i

objDistList.AddMembers objRecipients

Set objOutlook = Nothing
Set objNameSpace = Nothing
Set objDistList = Nothing
Set objMail = Nothing
Set objRecipients = Nothing

End Sub


No luck finding an answer? You could always try Google.