25. september 2006 - 09:56
Der er
6 kommentarer og
1 løsning
Farvelæg Excel, efter eksport
Hej kloge hoveder
Jeg har en database som ender ud med at en forespørgsel eksporteres til en Excelfil.
Det går fint med det, men jeg kunne godt tænke mig at kunne farvelægge kolonnerne i Excel efter (eller samtidigt med), når jeg eksportere dataene.
Det skal være mange forskellige farver i de forskellige kolonner.
Vi vil samtidigt gerne kunne formatere den første række til at være: "Lodret tekst".
25. september 2006 - 10:38
#3
Jeg ved ikke om det er mig der er tung i betrækket, eller har jeg forklaret mig dårligt, for jeg kan ikke finde nogen i det eksempel om farvning af kolonner.
En forepørgsel eksporteres til Excel, og i samme procedure skal kolonnerne i Excel farves i forskellige farver......
25. september 2006 - 11:04
#4
25/09-2006 10:06:07 >> "This is a very simple example of how to automate Excel from Access."
How are you exporting, docmd.TransferSpreadsheet ... maybe?
Ther is NO way which I know of using docmd.TransferSpreadsheet to colour your columns etc. To do this you need to automate Excel from Access and for this I gave a SIMPLE example, the example was NOT how to colour you columns etc as this i smore an Excel question than Access.
Do you know how to change the column colours in Excel using code?
25. september 2006 - 18:58
#5
En samlet løsning:
Global xlApp As Object
Sub XL_Farve_Test()
Set xlApp = CreateObject("Excel.Application")
With xlApp
.Visible = True
.Workbooks.Add
' Farvede kolonner
.Range("A:A").Select
Call XL_Farve(1, 8) ' Kald med række,kolonne
.Range("B:D").Select
Call XL_Farve(4, 3)
.Range("E:F").Select
Call XL_Farve(3, 1)
' Lodret tekst
.Range("A1").Select
.ActiveCell.Value = "Her"
.Range("B1").Select
.ActiveCell.Value = "står"
.Range("C1").Select
.ActiveCell.Value = "en"
.Range("D1").Select
.ActiveCell.Value = "række"
.Range("E1").Select
.ActiveCell.Value = "lodrette"
.Range("F1").Select
.ActiveCell.Value = "tekster"
.Range("1:1").Select
With .Selection
.HorizontalAlignment = 1
.VerticalAlignment = -4107
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = -5002
.MergeCells = False
End With
.Range("H2").Select
End With
Set xlApp = Nothing
End Sub
Sub XL_Farve(Række As Integer, Kolonne As Integer)
Dim c As Variant
Dim Farve As Long
' De 5 farverækker i Excel
c = Array(1, 53, 52, 51, 49, 11, 55, 56, _
9, 46, 12, 10, 14, 5, 47, 16, _
3, 45, 43, 50, 42, 41, 13, 48, _
7, 44, 6, 4, 8, 33, 54, 15, _
38, 40, 36, 35, 34, 37, 39, 2)
If (Række = 0 And Kolonne = 0) Then
Farve = -4142 ' None
Else
Farve = (Række - 1) * 8 + (Kolonne - 1)
End If
With xlApp.Selection.Interior
.ColorIndex = c(Farve)
.Pattern = 1 ' xlSolid
End With
End Sub