Celgrootte aanpassen o.b.v. hoeveelheid tekst

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
918
Beste Forumleden,

Ik ben op zoek naar een vba-code wanneer ik in een actieve cel zit het systeem de hoogte (dus niet de breedte) automatisch aanpast o.b.v. de hoeveelheid tekst. Bij de overige, niet actieve cellen, is het de bedoeling dat het systeem de hoogte aanpast o.b.v. de eerste regel oftewel hoogte: 10,80.

Ik heb alvast een opzetje gemaakt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False



Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Alvast heel hartelijk dank.

Robert
 
Probeer dit:
Code:
With ActiveCell
    .VerticalAlignment = xlBottom
    Cells.RowHeight = .RowHeight
End With
 
Laatst bewerkt:
Bedankt voor jouw antwoord, alleen gebeurt er niets.

ActiveCell.VerticalAlignment = xlBottom
= - 4107 = -4107

De waarde is, zoals je ziet, bij beide hetzelfde. Dat is denk ik de reden dat er niets verandert. Trouwens wanneer ik klik op de cel en vervolgens een enter geef dan gaat de cursor 1 positie naar rechts.

Wat mij wel opvalt is dat het systeem de tekst i.p.v. boven de cel, nu onder de cel plaatst, maar nog steeds niet de hoogte van de cel (rij) aanpast.
 
Laatst bewerkt:
Zoals altijd, plaats dan een voorbeeld document.
 
Het is een bestand met zakelijke informatie en kan dit niet delen op dit platform. Daarom maak ik nu even een soortgelijk bestand.
 
Het valt mij op dat het systeem nu de celhoogte pakt van de kolom met de meeste tekst en niet uitsluitend de celhoogte aanpast o.b.v. de cel die op dat moment actief is.
 
Dat klopt.
Een manier waarop het wel zou kunnen:
Kopieer de inhoud van de cel naar een cel in een lege rij op een ander werkblad, geef die cel dezelfde kolombreedte als de oorspronkelijke cel, Autofit de rijhoogte, pas die rijhoogte toe op de oorspronkelijke cel en verwijder de kopie.
Of je vergroot niet de rijhoogte maar de formulabar:
Application.FormulaBarHeight = 20
 
Allen super bedankt.

Helaas is het kennelijk niet mogelijk om per cel eenvoudig de regelhoogte aan te passen. Wellicht dat vba daar ook niet in is voorzien, dan houdt het op, niks aan te doen.

Mocht iemand toch een oplossing hebben, dan zou ik dat enorm waarderen.
 
het voorstel van @AHulpje omgezet.

Code:
Private Sub Worksheet_selectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Cells.RowHeight = 15
    With Sheets.Add
        With .Range("a1")
            .WrapText = True
            .ColumnWidth = Target.ColumnWidth
            Target.Copy .Range("a1")
            .EntireRow.AutoFit
            AdjustHeight = .Range("a1").EntireRow.Height
        End With
        Application.DisplayAlerts = False
        .Delete
    End With
    Target.RowHeight = AdjustHeight
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 
Ik heb nog een klein verzoekje. Ik heb de code in mijn eigen bestand geplaatst en ben vergeten dat ik met kopteksten werk waar de hoogte is vastgesteld. Is het ook mogelijk dat de code alleen betrekking heeft op regel 4 en verder?
 
Probeer het eens met deze.
Je zal ook merken dat er een extra tabblad in staat waarop de bewerking uitgevoerd wordt ipv telkens een nieuw blad aan te maken en daarna te verwijderen. Je kan dit blad eventueel verbergen zodat je er niets van merkt, dan werkt de code evengoed.
Je ziet bij Resize 1000 staan omdat ik er van uitga dat je bereik niet méér gevulde rijen zal bevatten.
Is dit wel het geval vergroot dit getal dan naar het aantal gevulde rijen.
 

Bijlagen

Beiden ook heel hartelijk dank voor jullie hulp en wat fijn dat ik er ook nog extra uitleg bij heb gekregen. Hier ben ik heel blij mee...Nogmaals dank.
 
Terug
Bovenaan Onderaan