Index: sc/source/ui/view/tabvwsh3.cxx
===================================================================
RCS file: /cvs/sc/sc/source/ui/view/tabvwsh3.cxx,v
retrieving revision 1.34
diff -u -r1.34 tabvwsh3.cxx
--- sc/source/ui/view/tabvwsh3.cxx	6 Jul 2007 12:47:49 -0000	1.34
+++ sc/source/ui/view/tabvwsh3.cxx	8 Aug 2007 02:19:51 -0000
@@ -99,6 +99,28 @@
 
 //------------------------------------------------------------------
 
+/** Try to parse the given range using Calc-style syntax first, then
+    Excel-style if that fails. */
+USHORT lcl_ParseRange(ScRange& rScRange, const String& aAddress, ScDocument* pDoc)
+{
+    USHORT nResult = rScRange.Parse(aAddress, pDoc);
+    if ( (nResult & SCA_VALID) )
+        return nResult;
+
+    return rScRange.Parse(aAddress, pDoc, ScAddress::Details(ScAddress::CONV_XL_A1, 0, 0));
+}
+
+/** Try to parse the given address using Calc-style syntax first, then
+    Excel-style if that fails. */
+USHORT lcl_ParseAddress(ScAddress& rScAddress, const String& aAddress, ScDocument* pDoc)
+{
+    USHORT nResult = rScAddress.Parse(aAddress, pDoc);
+    if ( (nResult & SCA_VALID) )
+        return nResult;
+
+    return rScAddress.Parse(aAddress, pDoc, ScAddress::Details(ScAddress::CONV_XL_A1, 0, 0));
+}
+
 void ScTabViewShell::Execute( SfxRequest& rReq )
 {
 	SfxViewFrame*		pThisFrame  = GetViewFrame();
@@ -259,11 +281,11 @@
 				ScMarkData& rMark	  = pViewData->GetMarkData();
 				ScRange		aScRange;
 				ScAddress	aScAddress;
-				USHORT		nResult = aScRange.Parse( aAddress, pDoc );
+                USHORT      nResult = lcl_ParseRange(aScRange, aAddress, pDoc);
 				SCTAB		nTab = pViewData->GetTabNo();
 				BOOL		bMark = TRUE;
 
-				// Ist es ein Bereich ?
+                // Is this a range ?
 				if( nResult & SCA_VALID )
 				{
 					if ( nResult & SCA_TAB_3D )
@@ -277,8 +299,8 @@
 						aScRange.aEnd.SetTab( nTab );
 					}
 				}
-				// Ist es eine Zelle ?
-				else if( (nResult=aScAddress.Parse( aAddress, pDoc )) & SCA_VALID )
+                // Is this a cell ?
+                else if ( (nResult = lcl_ParseAddress(aScAddress, aAddress, pDoc)) & SCA_VALID )
 				{
 					if ( nResult & SCA_TAB_3D )
 					{
