View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.charting
Jon Peltier Jon Peltier is offline
external usenet poster
 
Posts: 6,582
Default Getting text and grid at a 45 degree angle

Keep in mind the OP is probably using "chart" to refer to a tabular data
range. This kind of display is more suited to a worksheet solution, with
some embedded graphics.

(Yes, I've tried to create this kind of display in Excel, and no, I don't
have anything to share.)

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Peter T" <peter_t@discussions wrote in message
...
Maybe draw diagonal lines over cells if(?) the idea is something along the
lines of putting some symbols in the grid. Then use the Camara method
(copy
range, Shift-Edit, Paste picture link), to place the diamond cell grid
over
the chart or some other range, positioned as needs.

A little macro to draw the lines -
In a new sheet, for testing, experiment with rTopLeft, 'wide', row/column
heights, and some appropriate Font

Sub DiamondRoof()
Dim i As Long, j As Long, cnt As Long
Dim wide As Long
Dim L2 As Double, T2 As Double
Dim rTopLeft As Range, c1 As Range, c2 As Range
Dim shps As Shapes, shLine As Shape

'uncomment for testing
' ActiveSheet.Lines.Delete
' ActiveSheet.GroupObjects.Delete

Set rTopLeft = Range("B2") '<< CHange, where to put it
wide = 9 '<< Change, how big

Set shps = ActiveSheet.Shapes

With rTopLeft

With .Resize(wide + 1, wide * 2 + 1)
.Borders.LineStyle = xlNone
.Interior.ColorIndex = xlAutomatic ' remove gridlines
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ColumnWidth = 2.38 ' << adjust
.RowHeight = 17.25 ' << adjust
End With

For i = 1 To wide + 1

' up to right line
Set c1 = .Cells(wide + 2, i * 2 - 1)
Set c2 = .Cells(i, wide + i)
With c2
L2 = .Left + .Width / 2
T2 = .Top + .Height / 2
End With
With c1
Set shLine = shps.AddLine(.Left, .Top, L2, T2)
End With

' down to right line
Set c1 = .Cells(wide + 2, i * 2)
Set c2 = .Cells(wide + 2 - i, i)
With c2
L2 = .Left + .Width / 2
T2 = .Top + .Height / 2
End With
With c1
Set shLine = shps.AddLine(.Left, .Top, L2, T2)
End With
Next

Set c1 = .Cells(wide + 2, 1)
Set c2 = .Cells(wide + 2, wide * 2 + 2)

With c2
L2 = .Left
T2 = .Top
End With

' bottom line
With c1
Set shLine = shps.AddLine(.Left, .Top, L2, T2)
End With

End With


ReDim arr(1 To wide * 2 + 3)
cnt = shps.Count
j = 0
For i = cnt - (wide * 2 + 3) + 1 To cnt
j = j + 1
arr(j) = i
Next

With shps.Range(arr)
.Line.ForeColor.SchemeColor = 7 + 16
' any other formats
.Group
End With

End Sub

Regards,
Peter T



"Andy Pope" wrote in message
...
Thanks for that link Jon.

So it should be possible, but not easy, to create those lines and
markers using a fistful of additional xy series.

Cheers
Andy

Jon Peltier wrote:
http://en.wikipedia.org/wiki/Image:A...of_Quality.png

Check the peak at the top of the "house", and the smaller addition on

the
left wing.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Andy Pope" wrote in message
...

Hi,

It may be possible to draw the gridlines and markers using additional
series plotted as xy scatter chart.
If you need more help can you post a link to an example of one of these
chart styles?

Cheers
Andy

--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
"clemsongirl" wrote in message
...

I'm trying to create an affordance structure matrix (if anyone
actually
knows
what that is!). It has a regular grid and then a grid above it,
rotated
45
degrees. I know how to rotate the text, but that only gives me the
grid
lines
for half of the grid. When I change the grid lines to diagonal, I
can't
put
marks in all of the squares. Can you do what I want in Excel or do I

have
to
use a drawing program?




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info