Avatar billede sjokoman Juniormester
19. september 2015 - 14:16 Der er 5 kommentarer og
1 løsning

Jeg kan ikke ændre fontstørrelse

I en kodesekvens, der printer et excel ark ud, står følgende:
Cells.Select
    Cells.EntireColumn.AutoFit
   
    With ActiveSheet.PageSetup
       
        .LeftHeader = "Skolekørsel xx skole"
        .CenterHeader = ugedag & " " & dagNr & " " & mdÅr
        .RightHeader = "SKOLE RUTE " & busNr
        .LeftFooter = "Udskrevet &D &T"
        .RightFooter = "&P af &N"
       
        .Orientation = xlLandscape
        .Zoom = 100
    End With

Jeg vil gerne ændre tekststørrelse f.eks. +2 og typen til BOLD, er dette muligt?
Tak
Avatar billede supertekst Ekspert
19. september 2015 - 15:15 #1
Sub test()
Cells.Select
    Cells.EntireColumn.AutoFit
   
    With ActiveSheet.PageSetup
       
        .LeftHeader = "Skolekørsel xx skole"
        .CenterHeader = ugedag & " " & dagNr & " " & mdÅr
        .RightHeader = "SKOLE RUTE " & busNr
        .LeftFooter = "Udskrevet &D &T"
        .RightFooter = "&P af &N"
       
        .Orientation = xlLandscape
        .Zoom = 100
        Selection.Font.Bold = True
        Selection.Font.Size = Selection.Font.Size + 2
    End With
End Sub
Avatar billede sjokoman Juniormester
19. september 2015 - 22:07 #2
Ha ha, du er også under vba. I mit første oplæg havde jeg skrevet, at denne kode er lavet af dig, supertekst, men da jeg tænkte du ikke var her, VBA, fjernede jeg det. Havde det været under excel, havde jeg skrevet det. :-)

Din kodning virker, jeg ville bare ændre et par småting. Vi fik lidt mere kørsel og jeg tænkte, vi kunne bruge dit program ca. 2 måneder, så får jeg digitale medier til at overtage (håber jeg).
Jeg kan ikke lige få det til at virke, når jeg sætter dit forslag ind.
Her er det oprindelige:

Rem Version 1 - 3/3-2011
Rem ====================

Const arkPrintNavn = "PrintArk"
Dim arkPrint As Worksheet

Dim arkBus As Worksheet
Public Sub TastUgeNr()
Dim ugeNr As Byte, indTast As String

    indTast = InputBox("Tast ugenr.", "Center-Service - Kørelister")
    If IsNumeric(indTast) = False Or indTast = "" Then
        MsgBox "Ugenr. er ikke numerisk/udfyldt- prøv igen"
        Exit Sub
    Else
        ugeNr = indTast
       
Rem definer Ark til print
        Set arkPrint = ActiveWorkbook.Sheets(arkPrintNavn)
       
        traverserBusArk ugeNr
    End If
End Sub
Private Sub traverserBusArk(ugeNr)
Dim busArk As Worksheet, ugefarve As Integer, ugeNrKol As Long, ugeStart As Long, ugeSlut As Long
Dim dagKol As Long

    Application.ScreenUpdating = False
   
    For Each busArk In ActiveWorkbook.Sheets
        If IsNumeric(busArk.Name) = True Then      'identificer ark med numerisk navn
            Set arkBus = busArk
            arkBus.Activate
           
            ugefarve = findUgeFarve(ugeNr, ugeNrKol)
           
            If ugefarve <> 0 Then
                ugeStart = findUgeStart(ugefarve, ugeNrKol)
                ugeSlut = findUgeSlut(ugefarve, ugeNrKol)
               
                For dagKol = ugeStart To ugeSlut
                    opbygUgeDagen dagKol, ugeNr, busArk.Name
                Next dagKol
               
            Else
                MsgBox "Ugenr.: " & CStr(ugeNr) & " er ikke fundet!"
                Exit Sub
            End If
        End If
    Next
   
    Application.ScreenUpdating = True
End Sub
Private Function findUgeFarve(ugeNr, ugeNrKol As Long)                'søg efter ugenr i række 1
Dim maxKol As Long, kol As Long, ugeNrPos As Long
    maxKol = findSidsteKol
   
    For kol = 1 To maxKol
        If Cells(1, kol) = ugeNr Then
            findUgeFarve = Range(Cells(1, kol), Cells(1, kol)).Font.ColorIndex
            ugeNrKol = kol
            Exit Function
        End If
    Next kol
   
    findUgeFarve = 0
    ugeNrKol = 0
End Function
Private Function findUgeStart(ugefarve, ugeNrKol As Long)          'søg <-- i række 2 indtil farve skifter
Dim kol As Long
    For kol = ugeNrKol To 1 Step -1
        If Range(Cells(2, kol), Cells(2, kol)).Font.ColorIndex <> ugefarve Then
            findUgeStart = kol + 1
            Exit Function
        End If
    Next kol
    findUgeStart = 0
End Function
Private Function findUgeSlut(ugefarve, ugeNrKol As Long)          'søg --> i række 2 indtil farve skifter
Dim kol As Long
    For kol = ugeNrKol To findSidsteKol
        If Range(Cells(2, kol), Cells(2, kol)).Font.ColorIndex <> ugefarve Then
            findUgeSlut = kol - 1
            Exit Function
        End If
    Next kol
    findUgeSlut = 0
End Function
Private Function findSidsteKol()
    findSidsteKol = ActiveCell.SpecialCells(xlLastCell).Column
End Function
Private Function findSidsteRæk()
    findSidsteRæk = ActiveCell.SpecialCells(xlLastCell).Row
End Function
Private Sub opbygUgeDagen(kolNr, ugeNr, busNr As String)
Dim ugedag As String, udKort As String, dagNr As String, mdÅr As String
Dim dagStartRæk As Long, dagSlutRæk As Long, turkøbStartRæk As Long, turkøbSlutRæk As Long
Dim bTabel(), TKræk As Long, ix As Long

    ugedag = UCase(Format(Cells(3, kolNr), "DDDD"))
    udKort = Format(Cells(3, kolNr), "DDD")
   
    dagNr = Format(Cells(2, kolNr), "DD.")
    mdÅr = UCase(Format(Range("F2"), "MMM-YYYY"))
   
    dagStartRæk = findDagStart(udKort)
   
    If dagStartRæk > 0 Then
        dagSlutRæk = findDagSlut(udKort, dagStartRæk)
       
        turkøbStartRæk = findTurkøbStart(dagStartRæk, dagSlutRæk)
        If turkøbStartRæk > 0 Then
            turkøbSlutRæk = findTurkøbSlut(turkøbStartRæk, dagSlutRæk)
           
            ReDim bTabel(turkøbSlutRæk - turkøbStartRæk)
            ix = 0
           
Rem Gem kørselskoder i intern tabel
            For TKræk = turkøbStartRæk To turkøbSlutRæk
                bTabel(ix) = Cells(TKræk, kolNr)
                ix = ix + 1
            Next TKræk
           
Rem kopier Dagen til printArk
            kopierDagTilPrint dagStartRæk, dagSlutRæk, ugedag, dagNr, mdÅr, busNr, turkøbStartRæk, bTabel
        Else
            MsgBox "Turkøb på ugedag " & ugedag & " blev ikke fundet på bus " & busNr
        End If
    Else
        MsgBox "Start på ugedag " & ugedag & " blev ikke fundet på bus " & busNr
    End If
End Sub
Private Function findDagStart(ugedag As String)          'søg efter ugedag i kolonne Q + 1 op, når fundet
Dim ræk As Long
    For ræk = 4 To findSidsteRæk
        If InStr(LCase(Range("Q" & ræk)), ugedag) = 1 Then
            findDagStart = ræk - 1
            Exit Function
        End If
    Next ræk
    findDagStart = 0
End Function
Private Function findDagSlut(ugedag As String, startRæk)    'søg efter ugedag indtil ny ugedag eller sidste række - herefter op indtil samme ugedag fundet
Dim ræk As Long, sidsteRæk As Long
    For ræk = startRæk To findSidsteRæk
        If InStr(LCase(Range("Q" & ræk)), LCase(ugedag)) = 1 Then
            sidsteRæk = ræk
        Else
            If Range("Q" & ræk) <> "" Then
                findDagSlut = sidsteRæk
                Exit Function
            End If
        End If
    Next ræk
   
    findDagSlut = sidsteRæk
End Function
Private Function findTurkøbStart(dagStartRæk As Long, dagSlutRæk As Long)
Dim ræk As Long
    For ræk = dagStartRæk To dagSlutRæk
        If LCase(Range("E" & ræk)) = "turkøb" Then
            findTurkøbStart = ræk + 1
            Exit Function
        End If
    Next ræk
   
    findTurkøbStart = 0
End Function
Private Function findTurkøbSlut(turkøbStartRæk As Long, dagSlutRæk As Long)
Dim ræk As Long
    For ræk = turkøbStartRæk To dagSlutRæk
        If Range("E" & ræk) = "" Then
            findTurkøbSlut = ræk - 1
            Exit Function
        End If
    Next ræk
   
    findTurkøbSlut = 0
End Function
Private Sub kopierDagTilPrint(dagStartRæk As Long, dagSlutRæk As Long, ugedag As String, dagNr As String, mdÅr As String, busNr As String, turkøbStartRæk, bTabel())
Dim ræk As Long, ix As Long, antalSlet As Long, sidsteRække As Long
    arkPrint.Select
    arkPrint.Cells.Select
    Selection.Delete Shift:=xlUp
   
Rem Slet evt. rammer
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

    arkBus.Select
    Range("D" & dagStartRæk & ":P" & dagSlutRæk).Select
    Selection.Copy
   
    arkPrint.Select
    arkPrint.Range("A1").Select
    ActiveSheet.Paste
    Columns("H:H").Select                          'slet bynavn
    Selection.Delete Shift:=xlToLeft
   
    Application.CutCopyMode = False
   
Rem Slet rækker i Turkøb, der ikke er "B"
    antalSlet = 0
   
    For ix = UBound(bTabel) To 0 Step -1
        If LCase(bTabel(ix)) <> "b" Then
            ræk = (turkøbStartRæk + ix) - dagStartRæk + 1
            arkPrint.Rows(ræk & ":" & ræk).Select
            Selection.Delete Shift:=xlUp
            antalSlet = antalSlet + 1
        End If
    Next ix

Rem Beregn Sidste række
    sidsteRække = dagSlutRæk - antalSlet - dagStartRæk + 1

Rem Juster cellebredder
    Cells.Select
    Cells.EntireColumn.AutoFit
   
    With ActiveSheet.PageSetup
        .LeftHeader = "Center-Service"
        .CenterHeader = ugedag & " " & dagNr & " " & mdÅr
        .RightHeader = "BUS " & busNr
       
        .LeftFooter = "Udskrevet &D &T"
        .RightFooter = "&P af &N"
       
        .Orientation = xlLandscape
        .Zoom = 92
    End With
   
    For ræk = 1 To sidsteRække
        If ræk Mod 2 = 0 Then
            Range("A" & ræk & ":L" & ræk).Select
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = -0.149998474074526
                .PatternTintAndShade = 0
            End With
        End If
    Next ræk
   
    arkPrint.PageSetup.PrintArea = "A1:L" & CStr(sidsteRække)
   
    arkPrint.PrintOut
    arkBus.Select
End Sub

Det er:  .LeftHeader = "Center-Service"  som jeg lige ville forstørre...

Som altid: tak for din interesse!
Avatar billede supertekst Ekspert
19. september 2015 - 23:28 #3
Hej

Vender tilbage i morgen og selv tak :-)
Avatar billede supertekst Ekspert
19. september 2015 - 23:46 #4
Det blev så nu - alligevel.

    With ActiveSheet.PageSetup
        .LeftHeader = "&""-,Fed""&13Center-Service"  '<-----
    End With
Avatar billede supertekst Ekspert
27. september 2015 - 17:27 #5
Afprøvet ?
Avatar billede supertekst Ekspert
15. oktober 2015 - 23:45 #6
Lukketid?
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

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



IT-JOB

NEM IT-Solutions A/S

IT-driftskonsulent

Udviklings- og Forenklingsstyrelsen

Data specialist med Power BI-kompetencer

Scanreco Nordic A/S

Softwareudvikler

Optum Computational Engineering ApS

SW developer