Avatar billede unimop Nybegynder
18. december 2003 - 12:58 Der er 9 kommentarer og
1 løsning

Automatisk tilpasning af rækkehøjde

I en rapport i et regneark i Excel 2000 har jeg øverst nogle talopstillinger.

Længere ned har jeg nogle kommentarer til talopstillingerne, og består
af nogle flettede celler. Kommentarerne fylder fra 1-20 linier, og varierer fra regneark til regneark

Hvordan kan jeg automatisk tilpasse rækkehøjden til det skrevne? Jeg ser kun første linie.
Jeg har forsøgt med justering såvel lodret og vandret i tekstjustering i format celler, men det
virker ikke.

Dobbeltklik mellem tallene på Y-aksen virker heller ikke.
Avatar billede s_h_m Nybegynder
18. december 2003 - 13:49 #1
Har du prøvet at sætte hak i "ombryd tekst" under celleformatering.
Avatar billede unimop Nybegynder
18. december 2003 - 14:20 #2
Ja, men det har ingen indflydelse. Desværre.
Avatar billede s_h_m Nybegynder
18. december 2003 - 14:42 #3
Jeg tror problemet skyldes de flettede celler.
Hvis jeg fletter et par celler, justerer den ikke rækkehøjden, hvis der ombrydes.
Er den samme tekst derimod skrevet i én celle, justeres rækkehøjden automatisk til indholdet.
18. december 2003 - 16:53 #4
Den er ikke længere end at Excel ikke kan finde ud af det selv, når der er tale om flettede celler. Dog er det sådan, at det kan løses med en makro der løber f.eks. et område igennem og laver nummeret for dig.

Jeg har lavet den før, og kan vel finde den....! Jeg vil kigge på det senere i aften, når jeg kommer hjem.
Avatar billede unimop Nybegynder
18. december 2003 - 16:58 #5
Lyder godt. Jeg er nemlig gået i stå her, og skal lave en masse om i min model, hvis jeg "kun" kan bruge 1 celle.
18. december 2003 - 19:59 #6
Denne her virker vist kun en merged celle - men der kan leges - prøv

Public Sub AutoFitMergedCellRowHeight()
    Dim iCurrentRowHeight As Single
    Dim iMergedCellRgWidth As Single
    Dim iActiveCellWidth As Single
    Dim iPossNewRowHeight As Single
    Dim rCurCell As Range
   
    If ActiveCell.MergeCells Then
      With ActiveCell.MergeArea
            If .Rows.Count = 1 And .WrapText = True Then
                Application.ScreenUpdating = False
                iCurrentRowHeight = .RowHeight
                iActiveCellWidth = ActiveCell.ColumnWidth
                For Each rCurCell In Selection
                    iMergedCellRgWidth = rCurCell.ColumnWidth + iMergedCellRgWidth
                Next
                .MergeCells = False
                .Cells(1).ColumnWidth = iMergedCellRgWidth
                .EntireRow.AutoFit
                iPossNewRowHeight = .RowHeight
                .Cells(1).ColumnWidth = iActiveCellWidth
                .MergeCells = True
                .RowHeight = IIf(iCurrentRowHeight > iPossNewRowHeight, _
                iCurrentRowHeight, iPossNewRowHeight)
            End If
        End With
    End If

    Set rCurCell = Nothing
End Sub
Avatar billede unimop Nybegynder
19. december 2003 - 09:11 #7
Indtil videre tak. Jeg er lidt presset her inden julen, så jeg vender tilbage snarest, når jeg får den testet.
Avatar billede unimop Nybegynder
21. december 2003 - 11:19 #8
Det ser ud til at virke, når jeg skal forøge rækkehøjden. Jeg kan dog ikke få makroen til at virke, når jeg skal formindske fra fx 3 i højden til 2 i højden. Kan dette løses? Jeg kan ikke selv gennemskue ovennævnte kode.
21. december 2003 - 13:23 #9
Her er tilføjet en enkelt linie......

Public Sub AutoFitMergedCellRowHeight()
    Dim iCurrentRowHeight As Single
    Dim iMergedCellRgWidth As Single
    Dim iActiveCellWidth As Single
    Dim iPossNewRowHeight As Single
    Dim rCurCell As Range
   
    If ActiveCell.MergeCells Then
      With ActiveCell.MergeArea
            If .Rows.Count = 1 And .WrapText = True Then
                Application.ScreenUpdating = False
                .EntireRow.AutoFit
                iCurrentRowHeight = .RowHeight
                iActiveCellWidth = ActiveCell.ColumnWidth
                For Each rCurCell In Selection
                    iMergedCellRgWidth = rCurCell.ColumnWidth + iMergedCellRgWidth
                Next
                .MergeCells = False
                .Cells(1).ColumnWidth = iMergedCellRgWidth
                .EntireRow.AutoFit
                iPossNewRowHeight = .RowHeight
                .Cells(1).ColumnWidth = iActiveCellWidth
                .MergeCells = True
                .RowHeight = IIf(iCurrentRowHeight > iPossNewRowHeight, _
                iCurrentRowHeight, iPossNewRowHeight)
            End If
        End With
    End If

    Set rCurCell = Nothing
End Sub


Der er et problem i Excel med autohøjden af en række..... hvis sidste linie i en celle går næsten til kanten af cellen, så kan Excel finde på at lave højden en række for høj, og det kan jeg ikke komme omkring ved.
Avatar billede unimop Nybegynder
21. december 2003 - 13:34 #10
Det virker. Mange tak for hjælpen.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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