First of all, use CODE tags when posting a full code.
Sub Kampanjstorlek()
'
' Kampanjstorlek Makro
' Öpnnar filen kampanjstrolek och uppdaterar och sparar.
'
' Kortkommando: Ctrl+a
'
Workbooks.Open Filename:= _
"K:\Assortment & Purchasing\AO Egenvård\8. Layout & Space\6. Butiks & Kampanjinfo\Kampanjstorlek\Kampanjstorlek.xlsx"
ActiveWorkbook.RefreshAll
ActiveWorkbook.Save
End Sub
Perhaps add DoEvents to your code after the ActiveWorkbook.RefreshAll? That might work.
Sub Kampanjstorlek()
'
' Kampanjstorlek Makro
' Öpnnar filen kampanjstrolek och uppdaterar och sparar.
'
' Kortkommando: Ctrl+a
'
Workbooks.Open Filename:= _
"K:\Assortment & Purchasing\AO Egenvård\8. Layout & Space\6. Butiks & Kampanjinfo\Kampanjstorlek\Kampanjstorlek.xlsx"
ActiveWorkbook.RefreshAll
DoEvents
ActiveWorkbook.Save
End Sub
I've just found this on another forum. http://www.mrexcel.com/forum/excel-q...ml#post3009948
Do this via selecting one of the cells in your external data range and in 2007+ hit the Properties button on the Data ribbon (or in 2003 right-click the mouse and select Properties - I think, can't quite remember).
Now, uncheck the box for Enable Background Refresh. Save the workbook to fix the property. Then you can simply have your subsequent code immediately following the RefreshAll line.
Hope this helps