• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Interne marge van rijen automatisch aanpassen

Status
Niet open voor verdere reacties.

tonissteiner

Gebruiker
Lid geworden
17 sep 2008
Berichten
352
Goede morgen beste forum gebruikers,

een uitdaging... niks gevonden via google maar hier zitten wel de echte specialisten heb ik al ondervonden...

neem nu een cel waarin ik font Verdane gebruik en font size 11. manueel zet ik de rijhoogte in op 17,5 om een mooie witte marge boven en onder te hebben. de text control staat op wrap text.
dat werkt dus mooi als ik een beperkt aantal karakters gebruik die juist in de lengte van de cel passen. worden er meer karakters gebruikt, zodat de tekst dus op 2 lijnen komt, zal de hoogte niet automatisch aangepast worden.
dubbel klikken op de scheidingslijn (waar je de rijhoogte kan slepen) geeft als resultaat dat de rijhoogte automatisch zal aangepast worden. ook als er dan in die cel maar enkele karakters meer komen die op ��n lijn passen zal de rijhoogte naar ��n rij aangepast worden.
voor ��n rij is de rijhoogte dus niet meer die 17,5 maar heeft Excel die aangepast naar 14,25

maar vraag nu,

zou dit in een VBA code kunnen geschreven worden? indien Excel intern merkt dat de tekst op 2 of meer lijnen moet komen (dus wrap text toegepast moet worden) dat die telkens met 17,5 verhoogd worden per lijn

alvast bedankt voor jullie reacties

mvg
 
Test eens met deze code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Font.FontStyle = "Verdana" And Target.Font.Size = 11 Then
If Len(Target) > 7 Then
Rows(Target.Row).RowHeight = (Len(Target) / 7 + 1) * 17.5
End If
End If
End Sub

[/CODE]

De voorwaarde is wel dat het lettertype en terugloop van te voren is ingesteld voor de cel waarin dit geldt.
En dat de rijhoogte op standaardhoogte staat ingesteld.
 
Laatst bewerkt:
Hallo Cobbe,

alvast bedankt voor je heel snelle reactie.
heb even getest met je code echter geen resulaat.

lettertype en terugloop is ingesteld, de rijhoogte stond vooraf ook op 17,5

bij een enter op een lange lijn werd de rijhoogte niet aangepast en stond de tekst die op 2 lijnen staat dus weergegeven op een te kleine rijhoogte
 
Dag Cobbe,

ik zag dat je de code ondertussen nog wat aangepast hebt met de letterhoogte,
echter met deze code werkt het voorlopig ook nog niet.

tenzij het in mijn document zit. ik probeer het even op een nieuw document ook
 
Waarom ze bij u niet werkt weet ik niet maar hier is het bestand waarin deze code is verwerkt.
De eerste 10 rijen is ingesteld als Verdana 11 waarin de code werkt
en de volgende rijen in Arial 10 waarin de code niet werkt.

De code werkt niet bij u omdat je vooraf de rijhoogte hebt ingesteld op 17.5, waarom dat zo is weet ik niet.
 

Bijlagen

Laatst bewerkt:
bedankt voor je bestand.
denk dat we elkaar niet verstaan of het is mijn excel die raar doet. ook met jouw bestand krijg ik niet het beoogde resultaat. als ik de code in jouw bestand bijvoorbeeld aanpas en van de 17.5 naar 30 ofzo maakt excel er eigenlijk nog altijd zijn eigen rijhoogte van. zo is in jouw bestand de rijhoogte van de eerste 10 rijen met de verdana font (standaard rijhoogte niet veranderd = 15) met een dubbele lijn 29.25 en in rij 11 bijvoorbeeld 26.25
eigenlijk zou ik dus verwachten dat de rijhoogtes met de verdana font 15 + 17.5 = 32.5 zouden worden.
of ben ik verkeerd in het begrijpen van je code?
 
Test deze dan nog eens aub:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Len(Target) > 7 Then
       Rows(Target.Row).RowHeight = WorksheetFunction.RoundDown((Len(Target) / 7) + 1, 0) * 30
    End If
End Sub
 
Bedankt Cobbe,

deze werkt inderdaad. ik kan de rijhoogte vooraf wel niet op bijvoorbeeld 17.5 zetten, ze moet op de standaardhoogte blijven maar verder werkt ze perfect.

1000x dank

mvg,

Stefan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan