Hi Pape,
Please give the following pseudocode a try. When there is rotation, use the index shape's envelope to set the map extent...
double rotation = ipMap.ScreenDisplay.DisplayTransformation.Rotation
if (rotation != 0)
IPoint ipCenter = IGeometry5(ipIndexShape).CentroidEx
ITransform2D(ipIndexShape).Rotate(ipCenter, DEG2RAD(rotation))
ISegmentCollection ipPolygon = new esriGeometry.Polygon
ipPolygon.SetRectangle(ipIndexShape.Envelope);
ITransform2D(ipPolygon).Rotate(ipCenter, -DEG2RAD(rotation));
ipIndexShape = ipPolygon;
EndIf