Print side | Luk vindue

Store og små bogstaver

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4851
Udskrevet den: 23.Nov.2024 kl. 16:56


Emne: Store og små bogstaver
Besked fra: STIFT
Emne: Store og små bogstaver
Posteringsdato: 05.Jan.2023 kl. 09:51
Hej 
Jeg har søgt forskellige steder, men ikke fundet det jeg har brug for.

Opgave: I en celle skrives med små bogstaver - hvordan konverteres de automatisk til store bogstaver i samme celle når man går til næste celle med enter eller piletasterne?

pft




Svar:
Besked fra: Hans K.
Posteringsdato: 05.Jan.2023 kl. 12:24
Indsæt en kode som følgende i arkets kodemodul

Private Sub worksheet_Change(ByVal target As Range)
    Dim z As Long
    Dim xVal As String
    On Error Resume Next
    If Intersect(target, Range("A:A")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For z = -1 To target.Count
        If target(z).Value > 0 Then
            target(z).Value = StrConv(target(z).Value, 1)
    End If
Next
Application.EnableEvents = True

End Sub

Den ændrer i kolonne A - du kan selv ændre koden, hvis det skal være andetsteds.


Besked fra: STIFT
Posteringsdato: 05.Jan.2023 kl. 12:58
Hej Hans K.

Mange tak for dit svar. Jer er ikke bekendt med hensyn til at indsætte koder. Nu kommer det basale spørgsmål: hvor finder jeg arkets kodemodul og indsætter?

Som jeg ser koden, tænker jeg at jeg vælger et område (feks: "A25:D40") - kan man ved hjælp af semikolon vælge flere områder i samme ark? ("A25:D40;P28:X50")

Jeg er ret ny i det her, kan du nok se - jeg håber det er OK.Smile


Besked fra: Hans K.
Posteringsdato: 05.Jan.2023 kl. 13:08
Du ændrer bare koden til det, du selv har indikeret (som vist herunder):

Private Sub worksheet_Change(ByVal target As Range)
    Dim z As Long
    Dim xVal As String
    On Error Resume Next
    If Intersect(target, Range("A25:D40,P28:X50")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For z = -1 To target.Count
        If target(z).Value > 0 Then
            target(z).Value = StrConv(target(z).Value, 1)
    End If
Next
Application.EnableEvents = True

End Sub

Tag en kopi af ovenstående kode, højreklik på arknavnet for det ark, hvor det skal gælde. Tryk på View Code og indsæt koden her. Gå tilbage til Excel, og du kan begynde indtastningen.


Besked fra: STIFT
Posteringsdato: 05.Jan.2023 kl. 14:07
Hej Hans

Det virker meget fint, omend det går lidt langsomt - det er nok fordi jeg har valgt et stort område på 13.000 celler - har efterfølgende reduceret lidt på området og det går  bedre - det vigtigste er, at det virker.
Mange tak for supporten - jeg lærte mere end en tin i denne forbindelse..




Besked fra: Hans K.
Posteringsdato: 05.Jan.2023 kl. 14:38
Ja det5 er virkelig gift med så store områder. Begræns området til det absolut nødvendige - det gælder her og i det hele taget.


Besked fra: Skemalægger
Posteringsdato: 20.Feb.2023 kl. 18:11
Kan lige se 3 mulige løsninger

Skriv ind i én linie og få store bogstaver på linien under?

f.ex. i c4: =STORE.BOGSTAVER(C3) osv

*************
Alternativt en makro, hvor man efter endt input i alle celler konverterer efter markerin ved at kalde makroeng af området

Sub stort()
Dim cel As Range, 
Dim selectedRange As Range
Set selectedRange = Application.Selection

For Each cel In selectedRange.Cells
        cel = UCase(cel)
    Next cel
End Sub
****************
Endelige kan du lave en private sub, altså én, du knytter til det enkelte ark, som registrerer input i det område, du definerer. Se lin nedenfor

https://www.extendoffice.com/documents/excel/4423-excel-run-macro-on-cell-change.html" rel="nofollow - https://www.extendoffice.com/documents/excel/4423-excel-run-macro-on-cell-change.html

Noget af det, der kan bruges?

(Ser først nu, at andre har svaret ...)



Print side | Luk vindue