sc/inc/bigrange.hxx                                    |   28 ++---
 sc/source/core/data/bigrange.cxx                       |    6 -
 sc/source/core/data/documen2.cxx                       |    8 -
 sc/source/core/tool/chgtrack.cxx                       |   88 ++++++++---------
 sc/source/core/tool/refupdat.cxx                       |   16 +--
 sc/source/filter/xcl97/XclExpChangeTrack.cxx           |    6 -
 sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx |   12 +-
 sc/source/ui/docshell/docsh3.cxx                       |   20 +--
 sc/source/ui/miscdlgs/acredlin.cxx                     |   10 -
 sc/source/ui/miscdlgs/conflictsdlg.cxx                 |    4 
 sc/source/ui/miscdlgs/redcom.cxx                       |    2 
 sc/source/ui/view/gridwin5.cxx                         |    4 
 sc/source/ui/view/output.cxx                           |    4 
 sc/source/ui/view/viewutil.cxx                         |    2 
 14 files changed, 106 insertions(+), 104 deletions(-)

New commits:
commit 28cbc0dcb955954b4d9b85376f356999af429f06
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Tue Feb 15 14:19:29 2022 +0100
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Tue Feb 15 21:48:36 2022 +0100

    move nInt32Min/nInt32Max to ScBigRange and rename to nRangeMin/Max
    
    Change-Id: I4537d6ebcd8293bc7a62651345a517ebfe901638
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129965
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/sc/inc/bigrange.hxx b/sc/inc/bigrange.hxx
index a9927b39a4b3..538d94dcb782 100644
--- a/sc/inc/bigrange.hxx
+++ b/sc/inc/bigrange.hxx
@@ -22,9 +22,6 @@
 #include "address.hxx"
 #include "document.hxx"
 
-const sal_Int32 nInt32Min = 0x80000000;
-const sal_Int32 nInt32Max = 0x7fffffff;
-
 // This is used by change tracking. References there may be located also 
outside of the document
 // (see ScRefUpdate::Update()), and so it needs bigger range than 
ScAddress/ScRange.
 
@@ -148,6 +145,10 @@ public:
                         { return (aStart == r.aStart) && (aEnd == r.aEnd); }
     bool            operator!=( const ScBigRange& r ) const
                         { return !operator==( r ); }
+
+    // These are used to define whole rows/cols/tabs.
+    constexpr static sal_Int32 nRangeMin = 0x80000000;
+    constexpr static sal_Int32 nRangeMax = 0x7fffffff;
 };
 
 inline bool ScBigRange::Contains( const ScBigAddress& rAddr ) const
diff --git a/sc/source/core/data/bigrange.cxx b/sc/source/core/data/bigrange.cxx
index 58a11eb03735..192765743958 100644
--- a/sc/source/core/data/bigrange.cxx
+++ b/sc/source/core/data/bigrange.cxx
@@ -14,11 +14,11 @@ bool ScBigAddress::IsValid( const ScDocument& rDoc ) const
 {   // min/max interval bounds define whole col/row/tab
     return
         ((0 <= nCol && nCol <= rDoc.MaxCol())
-            || nCol == nInt32Min || nCol == nInt32Max) &&
+            || nCol == ScBigRange::nRangeMin || nCol == ScBigRange::nRangeMax) 
&&
         ((0 <= nRow && nRow <= rDoc.MaxRow())
-            || nRow == nInt32Min || nRow == nInt32Max) &&
+            || nRow == ScBigRange::nRangeMin || nRow == ScBigRange::nRangeMax) 
&&
         ((0 <= nTab && nTab < rDoc.GetTableCount())
-            || nTab == nInt32Min || nTab == nInt32Max)
+            || nTab == ScBigRange::nRangeMin || nTab == ScBigRange::nRangeMax)
         ;
 }
 
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index 1911f80af145..2ba5ee368c24 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -623,13 +623,13 @@ ScChangeActionIns::ScChangeActionIns( const ScDocument* 
pDoc, const ScRange& rRa
 {
     if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == pDoc->MaxCol() )
     {
-        aBigRange.aStart.SetCol( nInt32Min );
-        aBigRange.aEnd.SetCol( nInt32Max );
+        aBigRange.aStart.SetCol( ScBigRange::nRangeMin );
+        aBigRange.aEnd.SetCol( ScBigRange::nRangeMax );
         if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
         {
             SetType( SC_CAT_INSERT_TABS );
-            aBigRange.aStart.SetRow( nInt32Min );
-            aBigRange.aEnd.SetRow( nInt32Max );
+            aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
+            aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
         }
         else
             SetType( SC_CAT_INSERT_ROWS );
@@ -637,8 +637,8 @@ ScChangeActionIns::ScChangeActionIns( const ScDocument* 
pDoc, const ScRange& rRa
     else if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
     {
         SetType( SC_CAT_INSERT_COLS );
-        aBigRange.aStart.SetRow( nInt32Min );
-        aBigRange.aEnd.SetRow( nInt32Max );
+        aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
+        aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
     }
     else
     {
@@ -743,13 +743,13 @@ ScChangeActionDel::ScChangeActionDel( const ScDocument* 
pDoc, const ScRange& rRa
 {
     if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == pDoc->MaxCol() )
     {
-        aBigRange.aStart.SetCol( nInt32Min );
-        aBigRange.aEnd.SetCol( nInt32Max );
+        aBigRange.aStart.SetCol( ScBigRange::nRangeMin );
+        aBigRange.aEnd.SetCol( ScBigRange::nRangeMax );
         if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
         {
             SetType( SC_CAT_DELETE_TABS );
-            aBigRange.aStart.SetRow( nInt32Min );
-            aBigRange.aEnd.SetRow( nInt32Max );
+            aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
+            aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
         }
         else
             SetType( SC_CAT_DELETE_ROWS );
@@ -757,8 +757,8 @@ ScChangeActionDel::ScChangeActionDel( const ScDocument* 
pDoc, const ScRange& rRa
     else if ( rRange.aStart.Row() == 0 && rRange.aEnd.Row() == pDoc->MaxRow() )
     {
         SetType( SC_CAT_DELETE_COLS );
-        aBigRange.aStart.SetRow( nInt32Min );
-        aBigRange.aEnd.SetRow( nInt32Max );
+        aBigRange.aStart.SetRow( ScBigRange::nRangeMin );
+        aBigRange.aEnd.SetRow( ScBigRange::nRangeMax );
     }
     else
     {
@@ -3242,31 +3242,31 @@ void ScChangeTrack::UpdateReference( ScChangeAction** 
ppFirstAction,
     switch ( eActType )
     {
         case SC_CAT_INSERT_COLS :
-            aRange.aEnd.SetCol( nInt32Max );
+            aRange.aEnd.SetCol( ScBigRange::nRangeMax );
             nDx = rOrgRange.aEnd.Col() - rOrgRange.aStart.Col() + 1;
         break;
         case SC_CAT_INSERT_ROWS :
-            aRange.aEnd.SetRow( nInt32Max );
+            aRange.aEnd.SetRow( ScBigRange::nRangeMax );
             nDy = rOrgRange.aEnd.Row() - rOrgRange.aStart.Row() + 1;
         break;
         case SC_CAT_INSERT_TABS :
-            aRange.aEnd.SetTab( nInt32Max );
+            aRange.aEnd.SetTab( ScBigRange::nRangeMax );
             nDz = rOrgRange.aEnd.Tab() - rOrgRange.aStart.Tab() + 1;
         break;
         case SC_CAT_DELETE_COLS :
-            aRange.aEnd.SetCol( nInt32Max );
+            aRange.aEnd.SetCol( ScBigRange::nRangeMax );
             nDx = -(rOrgRange.aEnd.Col() - rOrgRange.aStart.Col() + 1);
             aDelRange.aEnd.SetCol( aDelRange.aStart.Col() - nDx - 1 );
             bDel = true;
         break;
         case SC_CAT_DELETE_ROWS :
-            aRange.aEnd.SetRow( nInt32Max );
+            aRange.aEnd.SetRow( ScBigRange::nRangeMax );
             nDy = -(rOrgRange.aEnd.Row() - rOrgRange.aStart.Row() + 1);
             aDelRange.aEnd.SetRow( aDelRange.aStart.Row() - nDy - 1 );
             bDel = true;
         break;
         case SC_CAT_DELETE_TABS :
-            aRange.aEnd.SetTab( nInt32Max );
+            aRange.aEnd.SetTab( ScBigRange::nRangeMax );
             nDz = -(rOrgRange.aEnd.Tab() - rOrgRange.aStart.Tab() + 1);
             aDelRange.aEnd.SetTab( aDelRange.aStart.Tab() - nDz - 1 );
             bDel = true;
diff --git a/sc/source/core/tool/refupdat.cxx b/sc/source/core/tool/refupdat.cxx
index 1866a2c65f82..fd4f80ef4582 100644
--- a/sc/source/core/tool/refupdat.cxx
+++ b/sc/source/core/tool/refupdat.cxx
@@ -171,7 +171,7 @@ static bool lcl_MoveBig( sal_Int32& rRef, sal_Int32 nStart, 
sal_Int32 nDelta )
         if ( nDelta > 0 )
             bCut = lcl_IsWrapBig( rRef, nDelta );
         if ( bCut )
-            rRef = nInt32Max;
+            rRef = ScBigRange::nRangeMax;
         else
             rRef += nDelta;
     }
@@ -374,7 +374,7 @@ ScRefUpdateRes ScRefUpdate::Update( const ScDocument* pDoc, 
UpdateRefMode eUpdat
 
 // simple UpdateReference for ScBigRange (ScChangeAction/ScChangeTrack)
 // References can also be located outside of the document!
-// Whole columns/rows (nInt32Min..nInt32Max) stay as such!
+// Whole columns/rows (ScBigRange::nRangeMin..ScBigRange::nRangeMax) stay as 
such!
 ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode eUpdateRefMode,
         const ScBigRange& rWhere, sal_Int32 nDx, sal_Int32 nDy, sal_Int32 nDz,
         ScBigRange& rWhat )
@@ -393,7 +393,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
     {
         if ( nDx && (theRow1 >= nRow1) && (theRow2 <= nRow2) &&
                     (theTab1 >= nTab1) && (theTab2 <= nTab2) &&
-                    (theCol1 != nInt32Min || theCol2 != nInt32Max) )
+                    (theCol1 != ScBigRange::nRangeMin || theCol2 != 
ScBigRange::nRangeMax) )
         {
             bCut1 = lcl_MoveBig( theCol1, nCol1, nDx );
             bCut2 = lcl_MoveBig( theCol2, nCol1, nDx );
@@ -404,7 +404,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
         }
         if ( nDy && (theCol1 >= nCol1) && (theCol2 <= nCol2) &&
                     (theTab1 >= nTab1) && (theTab2 <= nTab2) &&
-                    (theRow1 != nInt32Min || theRow2 != nInt32Max) )
+                    (theRow1 != ScBigRange::nRangeMin || theRow2 != 
ScBigRange::nRangeMax) )
         {
             bCut1 = lcl_MoveBig( theRow1, nRow1, nDy );
             bCut2 = lcl_MoveBig( theRow2, nRow1, nDy );
@@ -415,7 +415,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
         }
         if ( nDz && (theCol1 >= nCol1) && (theCol2 <= nCol2) &&
                     (theRow1 >= nRow1) && (theRow2 <= nRow2) &&
-                    (theTab1 != nInt32Min || theTab2 != nInt32Max) )
+                    (theTab1 != ScBigRange::nRangeMin || theTab2 != 
ScBigRange::nRangeMax) )
         {
             bCut1 = lcl_MoveBig( theTab1, nTab1, nDz );
             bCut2 = lcl_MoveBig( theTab2, nTab1, nDz );
@@ -429,7 +429,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
     {
         if ( rWhere.Contains( rWhat ) )
         {
-            if ( nDx && (theCol1 != nInt32Min || theCol2 != nInt32Max) )
+            if ( nDx && (theCol1 != ScBigRange::nRangeMin || theCol2 != 
ScBigRange::nRangeMax) )
             {
                 bCut1 = lcl_MoveItCutBig( theCol1, nDx );
                 bCut2 = lcl_MoveItCutBig( theCol2, nDx );
@@ -438,7 +438,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
                 rWhat.aStart.SetCol( theCol1 );
                 rWhat.aEnd.SetCol( theCol2 );
             }
-            if ( nDy && (theRow1 != nInt32Min || theRow2 != nInt32Max) )
+            if ( nDy && (theRow1 != ScBigRange::nRangeMin || theRow2 != 
ScBigRange::nRangeMax) )
             {
                 bCut1 = lcl_MoveItCutBig( theRow1, nDy );
                 bCut2 = lcl_MoveItCutBig( theRow2, nDy );
@@ -447,7 +447,7 @@ ScRefUpdateRes ScRefUpdate::Update( UpdateRefMode 
eUpdateRefMode,
                 rWhat.aStart.SetRow( theRow1 );
                 rWhat.aEnd.SetRow( theRow2 );
             }
-            if ( nDz && (theTab1 != nInt32Min || theTab2 != nInt32Max) )
+            if ( nDz && (theTab1 != ScBigRange::nRangeMin || theTab2 != 
ScBigRange::nRangeMax) )
             {
                 bCut1 = lcl_MoveItCutBig( theTab1, nDz );
                 bCut2 = lcl_MoveItCutBig( theTab2, nDz );
diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx 
b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
index 8268f4a5ddcb..e0a0372eeae3 100644
--- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
+++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
@@ -234,22 +234,22 @@ void ScXMLChangeTrackingImportHelper::SetPosition(const 
sal_Int32 nPosition, con
         case SC_CAT_INSERT_COLS:
         case SC_CAT_DELETE_COLS:
         {
-            pCurrentAction->aBigRange.Set(nPosition, nInt32Min, nTable,
-                                        nPosition + nCount - 1, nInt32Max, 
nTable);
+            pCurrentAction->aBigRange.Set(nPosition, ScBigRange::nRangeMin, 
nTable,
+                                        nPosition + nCount - 1, 
ScBigRange::nRangeMax, nTable);
         }
         break;
         case SC_CAT_INSERT_ROWS:
         case SC_CAT_DELETE_ROWS:
         {
-            pCurrentAction->aBigRange.Set(nInt32Min, nPosition, nTable,
-                                        nInt32Max, nPosition + nCount - 1, 
nTable);
+            pCurrentAction->aBigRange.Set(ScBigRange::nRangeMin, nPosition, 
nTable,
+                                        ScBigRange::nRangeMax, nPosition + 
nCount - 1, nTable);
         }
         break;
         case SC_CAT_INSERT_TABS:
         case SC_CAT_DELETE_TABS:
         {
-            pCurrentAction->aBigRange.Set(nInt32Min, nInt32Min, nPosition,
-                                        nInt32Max, nInt32Max, nPosition + 
nCount - 1);
+            pCurrentAction->aBigRange.Set(ScBigRange::nRangeMin, 
ScBigRange::nRangeMin, nPosition,
+                                        ScBigRange::nRangeMax, 
ScBigRange::nRangeMax, nPosition + nCount - 1);
         }
         break;
         default:
commit 4343976f0d38d727786b15a353ad3d49e76a65b8
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Tue Feb 15 14:10:35 2022 +0100
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Tue Feb 15 21:48:23 2022 +0100

    remove harcoded MAXCOL/MAXROW from ScBigAddress
    
    Change-Id: I670bb5d6e7a1eb20d2bfd48b853d1d2ebf87fe70
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129964
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/sc/inc/bigrange.hxx b/sc/inc/bigrange.hxx
index f776d6fd36fd..a9927b39a4b3 100644
--- a/sc/inc/bigrange.hxx
+++ b/sc/inc/bigrange.hxx
@@ -20,11 +20,13 @@
 #pragma once
 
 #include "address.hxx"
+#include "document.hxx"
 
 const sal_Int32 nInt32Min = 0x80000000;
 const sal_Int32 nInt32Max = 0x7fffffff;
 
-class ScDocument;
+// This is used by change tracking. References there may be located also 
outside of the document
+// (see ScRefUpdate::Update()), and so it needs bigger range than 
ScAddress/ScRange.
 
 class ScBigAddress
 {
@@ -59,7 +61,7 @@ public:
                 { nColP = nCol; nRowP = nRow; nTabP = nTab; }
 
     bool IsValid( const ScDocument& rDoc ) const;
-    inline ScAddress    MakeAddress() const;
+    inline ScAddress    MakeAddress( const ScDocument& rDoc ) const;
 
     ScBigAddress&   operator=( const ScBigAddress& r )
                     { nCol = r.nCol; nRow = r.nRow; nTab = r.nTab; return 
*this; }
@@ -72,7 +74,7 @@ public:
                     { return !operator==( r ); }
 };
 
-inline ScAddress ScBigAddress::MakeAddress() const
+inline ScAddress ScBigAddress::MakeAddress( const ScDocument& rDoc ) const
 {
     SCCOL nColA;
     SCROW nRowA;
@@ -80,15 +82,15 @@ inline ScAddress ScBigAddress::MakeAddress() const
 
     if ( nCol < 0 )
         nColA = 0;
-    else if ( nCol > MAXCOL )
-        nColA = MAXCOL;
+    else if ( nCol > rDoc.MaxCol() )
+        nColA = rDoc.MaxCol();
     else
         nColA = static_cast<SCCOL>(nCol);
 
     if ( nRow < 0 )
         nRowA = 0;
-    else if ( nRow > MAXROW )
-        nRowA = MAXROW;
+    else if ( nRow > rDoc.MaxRow() )
+        nRowA = rDoc.MaxRow();
     else
         nRowA = static_cast<SCROW>(nRow);
 
@@ -132,9 +134,8 @@ public:
 
     bool    IsValid( const ScDocument& rDoc ) const
                 { return aStart.IsValid( rDoc ) && aEnd.IsValid( rDoc ); }
-    ScRange  MakeRange() const
-                    { return ScRange( aStart.MakeAddress(),
-                        aEnd.MakeAddress() ); }
+    ScRange  MakeRange( const ScDocument& rDoc ) const
+                { return ScRange( aStart.MakeAddress( rDoc ), 
aEnd.MakeAddress( rDoc ) ); }
 
     inline bool Contains( const ScBigAddress& ) const;    ///< is Address& in 
range?
     inline bool Contains( const ScBigRange& ) const;      ///< is Range& in 
range?
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index c15d84c5c948..da55ebfa85be 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -1230,7 +1230,7 @@ bool ScDocument::IsCellInChangeTrack(const ScAddress 
&cell,Color *pColCellBorder
             const ScBigRange& rBig = pAction->GetBigRange();
             if ( rBig.aStart.Tab() == cell.Tab())
             {
-                ScRange aRange = rBig.MakeRange();
+                ScRange aRange = rBig.MakeRange( *this );
                 if ( eType == SC_CAT_DELETE_ROWS )
                     aRange.aEnd.SetRow( aRange.aStart.Row() );
                 else if ( eType == SC_CAT_DELETE_COLS )
@@ -1254,7 +1254,7 @@ bool ScDocument::IsCellInChangeTrack(const ScAddress 
&cell,Color *pColCellBorder
                 GetFromRange().aStart.Tab() == cell.Col() )
             {
                 ScRange aRange = static_cast<const 
ScChangeActionMove*>(pAction)->
-                    GetFromRange().MakeRange();
+                    GetFromRange().MakeRange( *this );
                 if (ScViewUtil::IsActionShown( *pAction, *pSettings, *this ) )
                 {
                     if (aRange.Contains(cell))
@@ -1297,7 +1297,7 @@ void ScDocument::GetCellChangeTrackNote( const ScAddress 
&aCellPos, OUString &aT
             const ScBigRange& rBig = pAction->GetBigRange();
             if ( rBig.aStart.Tab() == aCellPos.Tab())
             {
-                ScRange aRange = rBig.MakeRange();
+                ScRange aRange = rBig.MakeRange( *this );
                 if ( eType == SC_CAT_DELETE_ROWS )
                     aRange.aEnd.SetRow( aRange.aStart.Row() );
                 else if ( eType == SC_CAT_DELETE_COLS )
@@ -1322,7 +1322,7 @@ void ScDocument::GetCellChangeTrackNote( const ScAddress 
&aCellPos, OUString &aT
             {
                 ScRange aRange =
                     static_cast<const ScChangeActionMove*>(pAction)->
-                    GetFromRange().MakeRange();
+                    GetFromRange().MakeRange( *this );
                 if ( aRange.Contains( aCellPos ) )
                 {
                     pFound = pAction;
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index 30e1548839d6..1911f80af145 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -481,7 +481,7 @@ OUString ScChangeAction::GetRefString(
         aBuf.append(ScCompiler::GetNativeSymbol(ocErrRef));
     else
     {
-        ScRange aTmpRange( rRange.MakeRange() );
+        ScRange aTmpRange( rRange.MakeRange( rDoc ) );
         switch ( GetType() )
         {
             case SC_CAT_INSERT_COLS :
@@ -703,7 +703,7 @@ bool ScChangeActionIns::Reject( ScDocument& rDoc )
     if ( !aBigRange.IsValid( rDoc ) )
         return false;
 
-    ScRange aRange( aBigRange.MakeRange() );
+    ScRange aRange( aBigRange.MakeRange( rDoc ) );
     if ( !rDoc.IsBlockEditable( aRange.aStart.Tab(), aRange.aStart.Col(),
             aRange.aStart.Row(), aRange.aEnd.Col(), aRange.aEnd.Row() ) )
         return false;
@@ -957,7 +957,7 @@ bool ScChangeActionDel::Reject( ScDocument& rDoc )
         }
         if ( bOk )
         {
-            ScRange aRange( aTmpRange.MakeRange() );
+            ScRange aRange( aTmpRange.MakeRange( rDoc ) );
             // InDelete... for formula UpdateReference in Document
             pTrack->SetInDeleteRange( aRange );
             pTrack->SetInDeleteTop( true );
@@ -1177,8 +1177,8 @@ bool ScChangeActionMove::Reject( ScDocument& rDoc )
     if ( !(aBigRange.IsValid( rDoc ) && aFromRange.IsValid( rDoc )) )
         return false;
 
-    ScRange aToRange( aBigRange.MakeRange() );
-    ScRange aFrmRange( aFromRange.MakeRange() );
+    ScRange aToRange( aBigRange.MakeRange( rDoc ) );
+    ScRange aFrmRange( aFromRange.MakeRange( rDoc ) );
 
     bool bOk = rDoc.IsBlockEditable( aToRange.aStart.Tab(),
         aToRange.aStart.Col(), aToRange.aStart.Row(),
@@ -1329,12 +1329,12 @@ void ScChangeActionContent::SetOldValue(
 void ScChangeActionContent::SetOldValue(
     const ScCellValue& rCell, const ScDocument* pFromDoc, ScDocument* pToDoc )
 {
-    SetValue(maOldValue, maOldCell, aBigRange.aStart.MakeAddress(), rCell, 
pFromDoc, pToDoc);
+    SetValue(maOldValue, maOldCell, aBigRange.aStart.MakeAddress(*pFromDoc), 
rCell, pFromDoc, pToDoc);
 }
 
 void ScChangeActionContent::SetNewValue( const ScCellValue& rCell, ScDocument* 
pDoc )
 {
-    SetValue(maNewValue, maNewCell, aBigRange.aStart.MakeAddress(), rCell, 
pDoc, pDoc);
+    SetValue(maNewValue, maNewCell, aBigRange.aStart.MakeAddress(*pDoc), 
rCell, pDoc, pDoc);
 }
 
 void ScChangeActionContent::SetOldNewCells(
@@ -1367,7 +1367,7 @@ void ScChangeActionContent::SetValueString(
         rValue.clear();
         rCell.meType = CELLTYPE_FORMULA;
         rCell.mpFormula = new ScFormulaCell(
-            *pDoc, aBigRange.aStart.MakeAddress(), rStr,
+            *pDoc, aBigRange.aStart.MakeAddress(*pDoc), rStr,
             pDoc->GetGrammar() );
         rCell.mpFormula->SetInChangeTrack(true);
     }
@@ -1448,7 +1448,7 @@ OUString ScChangeActionContent::GetRefString(
             return ScChangeAction::GetRefString( aLocalBigRange, rDoc, bFlag3D 
);
         }
 
-        ScAddress aTmpAddress( GetBigRange().aStart.MakeAddress() );
+        ScAddress aTmpAddress( GetBigRange().aStart.MakeAddress( rDoc ) );
         if ( bFlag3D )
             nFlags |= ScRefFlags::TAB_3D;
         OUString str = aTmpAddress.Format(nFlags, &rDoc, 
rDoc.GetAddressConvention());
@@ -1508,7 +1508,7 @@ bool ScChangeActionContent::Select( ScDocument& rDoc, 
ScChangeTrack* pTrack,
 
     // If not oldest: Is it anyone else than the last one?
     if ( bOldest || pEnd != this )
-    {   ScRange aRange( aBigRange.aStart.MakeAddress() );
+    {   ScRange aRange( aBigRange.aStart.MakeAddress( rDoc ) );
         const ScAddress& rPos = aRange.aStart;
 
         ScChangeActionContent* pNew = new ScChangeActionContent( aRange );
@@ -1724,7 +1724,7 @@ OUString ScChangeActionContent::GetValueString(
 OUString ScChangeActionContent::GetFormulaString(
     const ScFormulaCell* pCell ) const
 {
-    ScAddress aPos( aBigRange.aStart.MakeAddress() );
+    ScAddress aPos( aBigRange.aStart.MakeAddress( pCell->GetDocument()) );
     if ( aPos == pCell->aPos || IsDeletedIn() )
         return pCell->GetFormula();
     else
@@ -1751,7 +1751,7 @@ void ScChangeActionContent::PutValueToDoc(
     const ScCellValue& rCell, const OUString& rValue, ScDocument* pDoc,
     SCCOL nDx, SCROW nDy ) const
 {
-    ScAddress aPos( aBigRange.aStart.MakeAddress() );
+    ScAddress aPos( aBigRange.aStart.MakeAddress( *pDoc ) );
     if ( nDx )
         aPos.IncCol( nDx );
     if ( nDy )
@@ -1894,9 +1894,9 @@ void ScChangeActionContent::UpdateReference( const 
ScChangeTrack* pTrack,
             // Move is Source here and Target there
             // Position needs to be adjusted before that
             if ( bOldFormula )
-                maOldCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
+                maOldCell.mpFormula->aPos = 
aBigRange.aStart.MakeAddress(pTrack->GetDocument());
             if ( bNewFormula )
-                maNewCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
+                maNewCell.mpFormula->aPos = 
aBigRange.aStart.MakeAddress(pTrack->GetDocument());
             if ( nDx )
             {
                 aTmpRange.aStart.IncCol( nDx );
@@ -1918,7 +1918,7 @@ void ScChangeActionContent::UpdateReference( const 
ScChangeTrack* pTrack,
             // added to avoid warnings
         }
     }
-    ScRange aRange( aTmpRange.MakeRange() );
+    ScRange aRange( aTmpRange.MakeRange(pTrack->GetDocument()) );
 
     sc::RefUpdateContext aRefCxt(pTrack->GetDocument());
     aRefCxt.meMode = eMode;
@@ -3057,7 +3057,7 @@ void ScChangeTrack::Undo( sal_uLong nStartAction, 
sal_uLong nEndAction, bool bMe
                 if (j == nEndAction || (pAct != pLast && 
static_cast<ScChangeActionDel*>(pAct)->IsTopDelete()))
                 {
                     SetInDeleteTop( true );
-                    SetInDeleteRange( 
static_cast<ScChangeActionDel*>(pAct)->GetOverAllRange().MakeRange() );
+                    SetInDeleteRange( 
static_cast<ScChangeActionDel*>(pAct)->GetOverAllRange().MakeRange( rDoc ) );
                 }
             }
             UpdateReference( pAct, true );
@@ -3100,7 +3100,7 @@ void ScChangeTrack::Undo( sal_uLong nStartAction, 
sal_uLong nEndAction, bool bMe
                     nEndLastCut = nEnd;
                     pLastCutMove.reset(pMove);
                     SetLastCutMoveRange(
-                        pMove->GetFromRange().MakeRange(), &rDoc );
+                        pMove->GetFromRange().MakeRange( rDoc ), &rDoc );
                 }
                 else
                     delete pMove;
@@ -3148,7 +3148,7 @@ void ScChangeTrack::MergePrepare( const ScChangeAction* 
pFirstMerge, bool bShare
                     {
                         SetInDeleteTop( true );
                         SetInDeleteRange( 
static_cast<ScChangeActionDel*>(pAct)->
-                            GetOverAllRange().MakeRange() );
+                            GetOverAllRange().MakeRange( rDoc ) );
                     }
                 }
                 UpdateReference( pAct, true );
@@ -3174,7 +3174,7 @@ void ScChangeTrack::MergeOwn( ScChangeAction* pAct, 
sal_uLong nFirstMerge, bool
         {
             SetInDeleteTop( true );
             SetInDeleteRange( static_cast<ScChangeActionDel*>(pAct)->
-                GetOverAllRange().MakeRange() );
+                GetOverAllRange().MakeRange( rDoc ) );
         }
     }
     UpdateReference( pAct, false );
@@ -4014,7 +4014,7 @@ bool ScChangeTrack::SelectContent( ScChangeAction* pAct, 
bool bOldest )
     if ( !aBigRange.IsValid( rDoc ) )
         return false;
 
-    ScRange aRange( aBigRange.MakeRange() );
+    ScRange aRange( aBigRange.MakeRange( rDoc ) );
     if ( !rDoc.IsBlockEditable( aRange.aStart.Tab(), aRange.aStart.Col(),
             aRange.aStart.Row(), aRange.aEnd.Col(), aRange.aEnd.Row() ) )
         return false;
@@ -4050,7 +4050,7 @@ bool ScChangeTrack::SelectContent( ScChangeAction* pAct, 
bool bOldest )
         {
             ScChangeActionContent* pNew = aRejectActions.top();
             aRejectActions.pop();
-            ScAddress aPos( pNew->GetBigRange().aStart.MakeAddress() );
+            ScAddress aPos( pNew->GetBigRange().aStart.MakeAddress( rDoc ) );
             ScCellValue aCell;
             aCell.assign(rDoc, aPos);
             pNew->SetNewValue(aCell, &rDoc);
@@ -4153,7 +4153,7 @@ bool ScChangeTrack::Reject(
             if ( bRejected )
             {
                 // pRefDoc NULL := Do not save deleted Cells
-                AppendDeleteRange( pAct->GetBigRange().MakeRange(), nullptr, 
short(0),
+                AppendDeleteRange( pAct->GetBigRange().MakeRange( rDoc ), 
nullptr, short(0),
                     pAct->GetActionNumber() );
             }
         }
@@ -4246,7 +4246,7 @@ bool ScChangeTrack::Reject(
         {
             // Delete Reject made UpdateReference Undo
             ScChangeActionIns* pReject = new ScChangeActionIns( &rDoc,
-                aDelRange.MakeRange() );
+                aDelRange.MakeRange( rDoc ) );
             pReject->SetRejectAction( nRejectAction );
             pReject->SetState( SC_CAS_ACCEPTED );
             Append( pReject );
@@ -4270,8 +4270,8 @@ bool ScChangeTrack::Reject(
             if ( bRejected )
             {
                 ScChangeActionMove* pReject = new ScChangeActionMove(
-                    pAct->GetBigRange().MakeRange(),
-                    
static_cast<ScChangeActionMove*>(pAct)->GetFromRange().MakeRange(), this );
+                    pAct->GetBigRange().MakeRange( rDoc ),
+                    
static_cast<ScChangeActionMove*>(pAct)->GetFromRange().MakeRange( rDoc ), this 
);
                 pReject->SetRejectAction( pAct->GetActionNumber() );
                 pReject->SetState( SC_CAS_ACCEPTED );
                 Append( pReject );
@@ -4286,7 +4286,7 @@ bool ScChangeTrack::Reject(
             pReject = nullptr;
         else
         {
-            aRange = pAct->GetBigRange().aStart.MakeAddress();
+            aRange = pAct->GetBigRange().aStart.MakeAddress( rDoc );
             pReject = new ScChangeActionContent( aRange );
             ScCellValue aCell;
             aCell.assign(rDoc, aRange.aStart);
diff --git a/sc/source/filter/xcl97/XclExpChangeTrack.cxx 
b/sc/source/filter/xcl97/XclExpChangeTrack.cxx
index 1d8140742a1b..a267dcd9168c 100644
--- a/sc/source/filter/xcl97/XclExpChangeTrack.cxx
+++ b/sc/source/filter/xcl97/XclExpChangeTrack.cxx
@@ -813,7 +813,7 @@ XclExpChTrCellContent::XclExpChTrCellContent(
         const XclExpChTrTabIdBuffer& rTabIdBuffer ) :
     XclExpChTrAction( rAction, rRoot, rTabIdBuffer, EXC_CHTR_OP_CELL ),
     XclExpRoot( rRoot ),
-    aPosition( rAction.GetBigRange().MakeRange().aStart )
+    aPosition( rAction.GetBigRange().MakeRange( rRoot.GetDoc()).aStart )
 {
     sal_uInt32 nDummy32;
     sal_uInt16 nDummy16;
@@ -1074,7 +1074,7 @@ XclExpChTrInsert::XclExpChTrInsert(
         const ScChangeTrack& rChangeTrack ) :
     XclExpChTrAction( rAction, rRoot, rTabIdBuffer ),
     mbEndOfList(false),
-    aRange( rAction.GetBigRange().MakeRange() )
+    aRange( rAction.GetBigRange().MakeRange( rRoot.GetDoc()) )
 {
     nLength = 0x00000030;
     switch( rAction.GetType() )
@@ -1234,7 +1234,7 @@ XclExpChTrMoveRange::XclExpChTrMoveRange(
         const XclExpChTrTabIdBuffer& rTabIdBuffer,
         const ScChangeTrack& rChangeTrack ) :
     XclExpChTrAction( rAction, rRoot, rTabIdBuffer, EXC_CHTR_OP_MOVE ),
-    aDestRange( rAction.GetBigRange().MakeRange() )
+    aDestRange( rAction.GetBigRange().MakeRange( rRoot.GetDoc() ) )
 {
     nLength = 0x00000042;
     aSourceRange = aDestRange;
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 2d24fde231ed..956b83763bc8 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -588,7 +588,7 @@ ScChangeAction* ScDocShell::GetChangeAction( const 
ScAddress& rPos )
             const ScBigRange& rBig = pAction->GetBigRange();
             if ( rBig.aStart.Tab() == nTab )
             {
-                ScRange aRange = rBig.MakeRange();
+                ScRange aRange = rBig.MakeRange( GetDocument() );
 
                 if ( eType == SC_CAT_DELETE_ROWS )
                     aRange.aEnd.SetRow( aRange.aStart.Row() );
@@ -604,7 +604,7 @@ ScChangeAction* ScDocShell::GetChangeAction( const 
ScAddress& rPos )
             {
                 ScRange aRange =
                     static_cast<const ScChangeActionMove*>(pAction)->
-                    GetFromRange().MakeRange();
+                    GetFromRange().MakeRange( GetDocument() );
                 if ( aRange.Contains( rPos ) )
                 {
                     pFound = pAction;
@@ -847,7 +847,7 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, bool 
bShared, bool bCheck
                 case SC_CAT_INSERT_COLS :
                 case SC_CAT_INSERT_ROWS :
                 case SC_CAT_INSERT_TABS :
-                    pSourceTrack->AppendInsert( 
pThisAction->GetBigRange().MakeRange() );
+                    pSourceTrack->AppendInsert( 
pThisAction->GetBigRange().MakeRange( GetDocument() ) );
                 break;
                 case SC_CAT_DELETE_COLS :
                 case SC_CAT_DELETE_ROWS :
@@ -858,15 +858,15 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, 
bool bShared, bool bCheck
                     {   // deleted table contains deleted cols, which are not
                         sal_uLong nStart, nEnd;
                         pSourceTrack->AppendDeleteRange(
-                            pDel->GetOverAllRange().MakeRange(), nullptr, 
nStart, nEnd );
+                            pDel->GetOverAllRange().MakeRange( GetDocument() 
), nullptr, nStart, nEnd );
                     }
                 }
                 break;
                 case SC_CAT_MOVE :
                 {
                     const ScChangeActionMove* pMove = static_cast<const 
ScChangeActionMove*>(pThisAction);
-                    pSourceTrack->AppendMove( 
pMove->GetFromRange().MakeRange(),
-                        pMove->GetBigRange().MakeRange(), nullptr );
+                    pSourceTrack->AppendMove( pMove->GetFromRange().MakeRange( 
GetDocument() ),
+                        pMove->GetBigRange().MakeRange( GetDocument() ), 
nullptr );
                 }
                 break;
                 default:
@@ -970,7 +970,7 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, bool 
bShared, bool bCheck
                 if ( bExecute )
                 {
                     //  execute normally
-                    ScRange aSourceRange = 
pSourceAction->GetBigRange().MakeRange();
+                    ScRange aSourceRange = 
pSourceAction->GetBigRange().MakeRange( GetDocument() );
                     rMarkData.SelectOneTable( aSourceRange.aStart.Tab() );
                     switch ( eSourceType )
                     {
@@ -1030,7 +1030,7 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, 
bool bShared, bool bCheck
                             const ScChangeActionDel* pDel = static_cast<const 
ScChangeActionDel*>(pSourceAction);
                             if ( pDel->IsTopDelete() )
                             {
-                                aSourceRange = 
pDel->GetOverAllRange().MakeRange();
+                                aSourceRange = 
pDel->GetOverAllRange().MakeRange( GetDocument() );
                                 (void)GetDocFunc().DeleteCells( aSourceRange, 
nullptr, DelCellCmd::Rows, false );
 
                                 // #i101099# [Collaboration] Changes are not 
correctly shown
@@ -1050,7 +1050,7 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, 
bool bShared, bool bCheck
                             const ScChangeActionDel* pDel = static_cast<const 
ScChangeActionDel*>(pSourceAction);
                             if ( pDel->IsTopDelete() && 
!pDel->IsTabDeleteCol() )
                             {   // deleted table contains deleted cols, which 
are not
-                                aSourceRange = 
pDel->GetOverAllRange().MakeRange();
+                                aSourceRange = 
pDel->GetOverAllRange().MakeRange( GetDocument() );
                                 (void)GetDocFunc().DeleteCells( aSourceRange, 
nullptr, DelCellCmd::Cols, false );
                             }
                         }
@@ -1058,7 +1058,7 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, 
bool bShared, bool bCheck
                         case SC_CAT_MOVE :
                         {
                             const ScChangeActionMove* pMove = 
static_cast<const ScChangeActionMove*>(pSourceAction);
-                            ScRange aFromRange( 
pMove->GetFromRange().MakeRange() );
+                            ScRange aFromRange( 
pMove->GetFromRange().MakeRange( GetDocument() ) );
                             (void)GetDocFunc().MoveBlock( aFromRange,
                                 aSourceRange.aStart, true, true, false, false 
);
                         }
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx 
b/sc/source/ui/miscdlgs/acredlin.cxx
index c3c0179c28d7..300f6ad4a58d 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -315,7 +315,7 @@ bool ScAcceptChgDlg::IsValidAction(const ScChangeAction* 
pScChangeAction)
 
     bool bFlag = false;
 
-    ScRange aRef=pScChangeAction->GetBigRange().MakeRange();
+    ScRange aRef=pScChangeAction->GetBigRange().MakeRange(*pDoc);
     OUString aUser=pScChangeAction->GetUser();
     DateTime aDateTime=pScChangeAction->GetDateTime();
 
@@ -367,7 +367,7 @@ std::unique_ptr<weld::TreeIter> 
ScAcceptChgDlg::AppendChangeAction(
 
     bool bFlag = false;
 
-    ScRange aRef=pScChangeAction->GetBigRange().MakeRange();
+    ScRange aRef=pScChangeAction->GetBigRange().MakeRange(*pDoc);
     OUString aUser=pScChangeAction->GetUser();
     DateTime aDateTime=pScChangeAction->GetDateTime();
 
@@ -517,7 +517,7 @@ std::unique_ptr<weld::TreeIter> 
ScAcceptChgDlg::AppendFilteredAction(
 
     bool bFlag = false;
 
-    ScRange aRef=pScChangeAction->GetBigRange().MakeRange();
+    ScRange aRef=pScChangeAction->GetBigRange().MakeRange(*pDoc);
     OUString aUser=pScChangeAction->GetUser();
     DateTime aDateTime=pScChangeAction->GetDateTime();
 
@@ -628,7 +628,7 @@ std::unique_ptr<weld::TreeIter> 
ScAcceptChgDlg::InsertChangeActionContent(const
 
     bool bFlag = false;
 
-    ScRange aRef=pScChangeAction->GetBigRange().MakeRange();
+    ScRange aRef=pScChangeAction->GetBigRange().MakeRange(*pDoc);
     OUString aUser=pScChangeAction->GetUser();
     DateTime aDateTime=pScChangeAction->GetDateTime();
 
@@ -1593,7 +1593,7 @@ IMPL_LINK_NOARG(ScAcceptChgDlg, UpdateSelectionHdl, Timer 
*, void)
         if (rBigRange.IsValid(*pDoc) && m_xDialog->has_toplevel_focus())
         {
             bool bSetCursor = i == nCount - 1;
-            pTabView->MarkRange(rBigRange.MakeRange(), bSetCursor, bContMark);
+            pTabView->MarkRange(rBigRange.MakeRange(*pDoc), bSetCursor, 
bContMark);
             bContMark = true;
         }
     }
diff --git a/sc/source/ui/miscdlgs/conflictsdlg.cxx 
b/sc/source/ui/miscdlgs/conflictsdlg.cxx
index 1559f5419899..bcd76e211ec8 100644
--- a/sc/source/ui/miscdlgs/conflictsdlg.cxx
+++ b/sc/source/ui/miscdlgs/conflictsdlg.cxx
@@ -394,7 +394,7 @@ OUString ScConflictsDlg::GetConflictString( const 
ScConflictsListEntry& rConflic
         const ScChangeAction* pAction = mpOwnTrack->GetAction( 
rConflictEntry.maOwnActions[ 0 ] );
         if ( pAction && mpOwnDoc )
         {
-            SCTAB nTab = pAction->GetBigRange().MakeRange().aStart.Tab();
+            SCTAB nTab = pAction->GetBigRange().MakeRange( *mpOwnDoc 
).aStart.Tab();
             mpOwnDoc->GetName( nTab, aString );
         }
     }
@@ -502,7 +502,7 @@ IMPL_LINK_NOARG(ScConflictsDlg, UpdateSelectionHdl, Timer 
*, void)
         if (rBigRange.IsValid(*mpOwnDoc))
         {
             bool bSetCursor = i == nCount - 1;
-            pTabView->MarkRange(rBigRange.MakeRange(), bSetCursor, bContMark);
+            pTabView->MarkRange(rBigRange.MakeRange( *mpOwnDoc ), bSetCursor, 
bContMark);
             bContMark = true;
         }
     }
diff --git a/sc/source/ui/miscdlgs/redcom.cxx b/sc/source/ui/miscdlgs/redcom.cxx
index 6e744fac58de..30e2f8a591a9 100644
--- a/sc/source/ui/miscdlgs/redcom.cxx
+++ b/sc/source/ui/miscdlgs/redcom.cxx
@@ -138,7 +138,7 @@ void ScRedComDialog::SelectCell()
     if(rRange.IsValid(pDocShell->GetDocument()))
     {
         ScViewData* pViewData=ScDocShell::GetViewData();
-        ScRange aRef=rRange.MakeRange();
+        ScRange aRef=rRange.MakeRange(pDocShell->GetDocument());
         ScTabView* pTabView=pViewData->GetView();
         pTabView->MarkRange(aRef);
     }
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index c20663ecf775..ffa6569ac6dd 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -73,7 +73,7 @@ bool ScGridWindow::ShowNoteMarker( SCCOL nPosX, SCROW nPosY, 
bool bKeyboard )
                 const ScBigRange& rBig = pAction->GetBigRange();
                 if ( rBig.aStart.Tab() == nTab )
                 {
-                    ScRange aRange = rBig.MakeRange();
+                    ScRange aRange = rBig.MakeRange( rDoc );
 
                     if ( eType == SC_CAT_DELETE_ROWS )
                         aRange.aEnd.SetRow( aRange.aStart.Row() );
@@ -102,7 +102,7 @@ bool ScGridWindow::ShowNoteMarker( SCCOL nPosX, SCROW 
nPosY, bool bKeyboard )
                 {
                     ScRange aRange =
                         static_cast<const ScChangeActionMove*>(pAction)->
-                        GetFromRange().MakeRange();
+                        GetFromRange().MakeRange( rDoc );
                     if ( aRange.Contains( aCellPos ) )
                     {
                         pFound = pAction;
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx
index d689dbd72777..11a39fb825bf 100644
--- a/sc/source/ui/view/output.cxx
+++ b/sc/source/ui/view/output.cxx
@@ -2271,7 +2271,7 @@ void ScOutputData::DrawChangeTrack()
             const ScBigRange& rBig = pAction->GetBigRange();
             if ( rBig.aStart.Tab() == nTab )
             {
-                ScRange aRange = rBig.MakeRange();
+                ScRange aRange = rBig.MakeRange( *mpDoc );
 
                 if ( eActionType == SC_CAT_DELETE_ROWS )
                     aRange.aEnd.SetRow( aRange.aStart.Row() );
@@ -2293,7 +2293,7 @@ void ScOutputData::DrawChangeTrack()
                         GetFromRange().aStart.Tab() == nTab )
             {
                 ScRange aRange = static_cast<const 
ScChangeActionMove*>(pAction)->
-                        GetFromRange().MakeRange();
+                        GetFromRange().MakeRange( *mpDoc );
                 if ( aRange.Intersects( aViewRange ) &&
                      ScViewUtil::IsActionShown( *pAction, *pSettings, *mpDoc ) 
)
                 {
diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx
index 65d0c836d340..8e7470f58c85 100644
--- a/sc/source/ui/view/viewutil.cxx
+++ b/sc/source/ui/view/viewutil.cxx
@@ -158,7 +158,7 @@ bool ScViewUtil::IsActionShown( const ScChangeAction& 
rAction,
     }
 
     if ( rSettings.HasRange() )
-        if ( !rSettings.GetTheRangeList().Intersects( 
rAction.GetBigRange().MakeRange() ) )
+        if ( !rSettings.GetTheRangeList().Intersects( 
rAction.GetBigRange().MakeRange( rDocument ) ) )
             return false;
 
     if (rSettings.HasDate() && rSettings.GetTheDateMode() != 
SvxRedlinDateMode::NONE)

Reply via email to