Avatar billede tvc Seniormester
12. april 2012 - 16:15 Der er 4 kommentarer og
1 løsning

VBA virker i Excel 2003 men ikke i 2007

Hej

Jeg har følgende VBA som virker fint i Excel 2003 men ikke i 2007. Er der en der kan fortælle mig hvorfor dette problem opstår?

'Indeks 1-5
Sub L15()
    Start
    Ark2.Range("b2") = "'1-5"
    Ark2.Range("a2") = 5
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L15"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-6
Sub L16()
    Start
    Ark2.Range("b2") = "'1-6"
    Ark2.Range("a2") = 6
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L16"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-10
Sub L110()
    Start
    Ark2.Range("b2") = "'1-10"
    Ark2.Range("a2") = 10
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L110"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-12
Sub L112()
    Start
    Ark2.Range("b2") = "'1-12"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L112"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 12-1
Sub L121()
    Start
    Ark2.Range("b2") = "'12-1"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 3
    Ark2.Range("ActiveIndexsub") = "L121"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-15
Sub L115()
    Start
    Ark2.Range("b2") = "'1-15"
    Ark2.Range("a2") = 15
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L115"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-20
Sub L120()
    Start
    Ark2.Range("b2") = "'1-20"
    Ark2.Range("a2") = 20
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L120"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-31
Sub L131()
    Start
    Ark2.Range("b2") = "'1-31"
    Ark2.Range("a2") = 31
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L131"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-54
Sub L154()
    Start
    Ark2.Range("b2") = "'1-54"
    Ark2.Range("a2") = 54
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L154"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks Jan-Dec
Sub JanDec()
    Start
    Ark2.Range("b2") = "Jan-Dec"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 4
    Ark2.Range("ActiveIndexsub") = "JanDec"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks A-Å
Sub AÅ()
    Start
    Ark2.Range("b2") = "A-Å"
    Ark2.Range("a2") = 20
    Ark2.Range("IndexType") = 2
    Ark2.Range("ActiveIndexsub") = "AÅ"
    RowHeight
    ColumnsShow
    Font
End Sub

Sub RowHeight()

Ark3.Cells.PageBreak = xlPageBreakNone

I = 1
With Ark3
For I = 1 To 54
    .Rows(I).RowHeight = .Range("I" & I).Value
Next I
End With

End Sub

Sub ColumnsShow()
   
    Application.ScreenUpdating = False
   
    Ark3.Select
   
'Columnwidth

    Columns("C:F").ColumnWidth = Ark2.Range("ColumnWidthIndex").Value
    Columns("B:B").ColumnWidth = Ark2.Range("ColumnWidthText").Value
    Columns("G:G").ColumnWidth = Ark2.Range("ColumnWidthText").Value


'ColumnAlignment
    If Ark2.Range("K2") = 1 Then Ark3.Columns("C:F").HorizontalAlignment = xlRight
    If Ark2.Range("K2") = 2 Then Ark3.Columns("C:F").HorizontalAlignment = xlLeft
       
'Reset Hidden columns

    If Columns("B:B").EntireColumn.Hidden = False Then
        Columns("B:B").EntireColumn.Hidden = True
    End If
    If Columns("C:C").EntireColumn.Hidden = False Then
        Columns("C:C").EntireColumn.Hidden = True
    End If
    If Columns("D:D").EntireColumn.Hidden = False Then
        Columns("D:D").EntireColumn.Hidden = True
    End If
    If Columns("E:E").EntireColumn.Hidden = False Then
        Columns("E:E").EntireColumn.Hidden = True
    End If
    If Columns("F:F").EntireColumn.Hidden = False Then
        Columns("F:F").EntireColumn.Hidden = True
    End If
    If Columns("G:G").EntireColumn.Hidden = False Then
        Columns("G:G").EntireColumn.Hidden = True
    End If

'Hide columns

    If Ark2.Range("IndexAlignment").Value = 1 Then
        Columns("B:B").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 1 Then
        Columns("C:C").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 2 Then
        Columns("D:D").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 3 Then
        Columns("E:E").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 4 Then
        Columns("F:F").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexAlignment").Value = 2 Then
        Columns("G:G").EntireColumn.Hidden = False
    End If
   
    Application.ScreenUpdating = True
   
End Sub


'Font settings

Sub Font()

    Ark3.Columns("C:F").Select
    With Selection.Font
        .Name = "Arial"
        .Size = Ark2.Range("FontIndex").Value
    End With
   
 
    Ark3.Columns("B:B").Select
    With Selection.Font
        .Name = "Arial"
        .Size = Ark2.Range("FontText").Value
    End With

    Ark3.Columns("G:G").Select
    With Selection.Font
        .Name = "Arial"
        .Size = Ark2.Range("FontText").Value
    End With
   
    Ark3.Range("G1").Select
     
    Application.ScreenUpdating = True
   
   
End Sub

Sub Start()
Ark3.Cells.PageBreak = xlPageBreakNone
    Application.ScreenUpdating = False
End Sub
Avatar billede supertekst Ekspert
12. april 2012 - 17:20 #1
Hvordan viser det sig?

Var det muligt at få en kopi af filen - anvender også 2007.
@-adresse under min profil.
Avatar billede store-morten Ekspert
12. april 2012 - 17:51 #2
Undgå at bruge et makronavn, der også er en cellereference, da du derved kan få en fejlmeddelelse om, at makronavnet er ugyldigt.
Avatar billede store-morten Ekspert
12. april 2012 - 17:59 #3
Sub L15() går ikke.

Prøv at ændre til: Sub L1_5()
Og: Sub L1_6()...osv.
Avatar billede tvc Seniormester
15. april 2012 - 12:39 #4
Tak store-morten

Det var løsningen på mit problem. Lægger du et svar?
Avatar billede store-morten Ekspert
15. april 2012 - 12:59 #5
Ok, det var godt.

Har kikket lidt på din makro, og lavet lidt om:
'Indeks 1-5
Sub L1_5()
    Start
    Ark2.Range("b2") = "'1-5"
    Ark2.Range("a2") = 5
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L15"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-6
Sub L1_6()
    Start
    Ark2.Range("b2") = "'1-6"
    Ark2.Range("a2") = 6
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_6"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-10
Sub L1_10()
    Start
    Ark2.Range("b2") = "'1-10"
    Ark2.Range("a2") = 10
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_10"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-12
Sub L1_12()
    Start
    Ark2.Range("b2") = "'1-12"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_12"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 12-1
Sub L1_21()
    Start
    Ark2.Range("b2") = "'12-1"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 3
    Ark2.Range("ActiveIndexsub") = "L1_21"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-15
Sub L1_15()
    Start
    Ark2.Range("b2") = "'1-15"
    Ark2.Range("a2") = 15
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_15"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-20
Sub L1_20()
    Start
    Ark2.Range("b2") = "'1-20"
    Ark2.Range("a2") = 20
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_20"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-31
Sub L1_31()
    Start
    Ark2.Range("b2") = "'1-31"
    Ark2.Range("a2") = 31
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_31"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks 1-54
Sub L1_54()
    Start
    Ark2.Range("b2") = "'1-54"
    Ark2.Range("a2") = 54
    Ark2.Range("IndexType") = 1
    Ark2.Range("ActiveIndexsub") = "L1_54"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks Jan-Dec
Sub JanDec()
    Start
    Ark2.Range("b2") = "Jan-Dec"
    Ark2.Range("a2") = 12
    Ark2.Range("IndexType") = 4
    Ark2.Range("ActiveIndexsub") = "JanDec"
    RowHeight
    ColumnsShow
    Font
End Sub

'Indeks A-Å
Sub AÅ()
    Start
    Ark2.Range("b2") = "A-Å"
    Ark2.Range("a2") = 20
    Ark2.Range("IndexType") = 2
    Ark2.Range("ActiveIndexsub") = "AÅ"
    RowHeight
    ColumnsShow
    Font
End Sub

Sub RowHeight()

Ark3.Cells.PageBreak = xlPageBreakNone

I = 1
With Ark3
For I = 1 To 54
    .Rows(I).RowHeight = .Range("I" & I).Value
Next I
End With

End Sub

Sub ColumnsShow()
   
    Application.ScreenUpdating = False
   
    Ark3.Select
   
'Columnwidth

    Columns("C:F").ColumnWidth = Ark2.Range("ColumnWidthIndex").Value
    Columns("B:B").ColumnWidth = Ark2.Range("ColumnWidthText").Value
    Columns("G:G").ColumnWidth = Ark2.Range("ColumnWidthText").Value


'ColumnAlignment
    If Ark2.Range("K2") = 1 Then Ark3.Columns("C:F").HorizontalAlignment = xlRight
    If Ark2.Range("K2") = 2 Then Ark3.Columns("C:F").HorizontalAlignment = xlLeft
       
'Reset Hidden columns
    Columns("B:G").EntireColumn.Hidden = True

'Show columns

    If Ark2.Range("IndexAlignment").Value = 1 Then
        Columns("B:B").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 1 Then
        Columns("C:C").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 2 Then
        Columns("D:D").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 3 Then
        Columns("E:E").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexType").Value = 4 Then
        Columns("F:F").EntireColumn.Hidden = False
    End If
    If Ark2.Range("IndexAlignment").Value = 2 Then
        Columns("G:G").EntireColumn.Hidden = False
    End If
   
End Sub

'Font settings

Sub Font()

    Ark3.Columns("C:F").Font.Name = "Arial"
    Ark3.Columns("C:F").Font.Size = Ark2.Range("FontIndex").Value

    Ark3.Columns("B:B").Font.Name = "Arial"
    Ark3.Columns("B:B").Font.Size = Ark2.Range("FontText").Value
 
    Ark3.Columns("G:G").Font.Name = "Arial"
    Ark3.Columns("G:G").Font.Size = Ark2.Range("FontText").Value

     
    Application.ScreenUpdating = True
   
End Sub

Sub Start()
Ark3.Cells.PageBreak = xlPageBreakNone
    Application.ScreenUpdating = False
End Sub
Håber det er brugbart ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester