• 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.

tekstgrootte uitlezen

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.142
Ik heb een spreadsheet waarin een heleboel tekst is gekopieerd met diverse opmaak. Voornamelijk lettertype en fontgrootte wisselen sterk.
Kan ik het lettertype en de fontgrootte "uitlezen" en deze waarden in een aparte kolom zetten, zodat ik deze kan sorteren?
Alle tekst van een bepaald lettertype/fontgrootte moet nl. apart worden gezet omdat het bijv. titels zijn van hoofdstukken.
Wie helpt mij?
 
Deze 2 zullen u dat verklappen:
Code:
h = ActiveCell.Font.Size
t = ActiveCell.Font.FontStyle
 
Nog afgezien van de verkeerde functie bij t, zou je er functies van moeten maken op een nieuwe module.
Code:
Public Function FontSize(cel As Range) As String
    FontSize = cel.Font.Size
End Function

Code:
Public Function FontStyle(cel As Range) As String
    FontStyle = cel.Font.Name
End Function

En in je cel zet je dan:
Code:
=fontstyle(A1)
en
Code:
=fontstyle(A1)
 
Natuurlijk dat dat niet lukt dit was ook geen normale formule maar een VBA-code.
Heb een en ander ingebouwd in een voorbeeldbestand.
 

Bijlagen

@cobbe: Het kan dus korter :).
 
Wij zijn niet zo gierig hier in Belgïe, we kijken niet op een regeltje meer. :)
 
Dan zal de omzet in versleten toetsenborden ook wat hoger liggen dan hier :)
 
Hier ben ik heel blij mee. Dank jullie wel!!
Dan nog een aanvullende vraag:
Met welke functie kan ik bepalen welke tekstcellen gecentreerd zijn?

Vriendelijke groet,
Guido
 
Test deze eens:

Code:
Public Function tekstcentr(CEL As Range)
tekstcentr = ""
 If CEL.HorizontalAlignment = xlCenter Then tekstcentr = "Centrum"
End Function
 
Of zoiets:
Code:
Public Function TekstUitvulling(cel As Range)
    Select Case cel.HorizontalAlignment
        Case xlLeft
            TekstUitvulling = "Links"
        Case xlRight
            TekstUitvulling = "Rechts"
        Case xlCenter
            TekstUitvulling = "Centreren"
        Case xlJustify
            TekstUitvulling = "Uitvullen"
        Case Else
            TekstUitvulling = "Standaard"
    End Select
End Function
 
kan dat niet korter in Rotterdam ? ;)

Code:
Function F_vul(f_cel As Range)
    F_vul=choose(match(f_cel.HorizontalAlignment,array(-4131,-4152,-4108,-4130),0),"links","rechts","centrum","uitgevuld")
end function
 
Laatst bewerkt:
Cobbe, Octafish en snb, hartelijk dank voor jullie reactie.
De functie voor het controleren of de tekst in een cel is gecentreerd werkt niet.
Het is natuurlijk ook heel goed mogelijk dat ik het niet goed doe...
Als cel B1 gecentreerde tekst bevat, en ik wil dat bevestigd hebben zet ik bijv. in A1:
Code:
=tekstUitvulling(B1)
 
Heb je de functie, die je gebruikt ook wel in een Module gezet?
 
Post eens een bestandje met de functie zoals jij dat niet werkend kan maken. :)
 
'Kleine' aanpassing

Code:
Function F_vul(f_cel As Range)
    F_vul = Choose(Application.Match(f_cel.HorizontalAlignment, Array(1, -4131, -4152, -4108, -4130, -4117), 0), "algemeen", "links", "rechts", "centrum", "uitgevuld", "verdeeld")
End Function
 
Laatst bewerkt:
@snb
Je ziet dat gierigheid vaak leidt tot problemen.:)
 
Daar hebben we dan het volgende op bedacht: :)

Code:
Function F_vul(f_cel As Range)
    y = f_cel.HorizontalAlignment
    F_vul = Switch(y = 1, "algemeen", y = -4131, "links", y = 4152, "rechts", y = -4108, "centrum", y, "uitgevuld", y = -4117, "verdeeld")
End Function


De vaak vergeten 'Switch' uit de VBA bibliotheek.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan