Avatar billede yeti Nybegynder
22. november 2002 - 16:30 Der er 7 kommentarer og
1 løsning

Store bokstaver

Hvordan låser man et ark så der KUN kan skrives med store bokstaver?
Avatar billede bak Forsker
22. november 2002 - 17:39 #1
En metode er at højreklikke på arkfanen, vælg "Vis Programkode" og indsætte denne kode

Private Sub Worksheet_Change(ByVal Target As Range)
Target = UCase(Target.Value)
End Sub
22. november 2002 - 17:47 #2
BAK - din kode konverterer også formler til værdier... hvis der skal kunne indtastes formler skal den så således ud:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not (Target.HasFormula) Then
        Target.Value = UCase(Target.Value)
    End If
End Sub
22. november 2002 - 17:49 #3
Man skal måske også taget højde for Array formler
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If Not (.HasArray) And Not (.HasFormula) Then
            .Value = UCase(.Value)
        End If
    End With
End Sub

Måske også hyperlinks m.m.
Avatar billede bak Forsker
23. november 2002 - 08:12 #4
Rigtigt, Flemming. Jeg var så fokuseret på tekst, at jeg ikke tænkte skridtet videre..... :-(
Avatar billede hcars Novice
25. november 2002 - 15:52 #5
Denne makro gør tricket meget enkelt. Du skal selvfølgelig gøre den færdig med de sidste 25 bogstaver.

Sub aTilZ()
'
' aTilZ Makro
' Makro indspillet 25-11-02 af Carsten Hansen
'

'
    Cells.Replace What:="a", Replacement:="A", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
    Cells.Replace What:="b", Replacement:="B", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
    Cells.Replace What:="c", Replacement:="C", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
    Cells.Replace What:="d", Replacement:="D", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
   
End Sub
25. november 2002 - 16:16 #6
hcars>> vi du så køre din makro, hver gang der er blevet indtast oplysninger i en celle =28 erstatningskørsler for hver celle ændring - den holder nok ikke, bliver for tung ved større regneark, specielt fordi den kører på alle celler, selvom det kun er nødvendigt at lege med den sidst ændrede celle. Prøv de ovenstående makroer og se hvor hurtige de er.

Hvis jeg skulle forkorte din makro, så ville jeg skrive den således:
Sub UcaseAllLetters()
    Dim lChar As Long
   
    For lChar = 97 To 122
        Cells.Replace What:=Chr(lChar), Replacement:=Chr(lChar - 32), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
    Next lChar
   
    lChar = 229 'Å
        Cells.Replace What:=Chr(lChar), Replacement:=Chr(lChar - 32), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
    lChar = 230 'Æ
        Cells.Replace What:=Chr(lChar), Replacement:=Chr(lChar - 32), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
    lChar = 248 'Ø
        Cells.Replace What:=Chr(lChar), Replacement:=Chr(lChar - 32), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End Sub

eller sådan:

Sub UcaseAllLetters()
    Dim rCell As Range
   
    For Each rCell In ActiveSheet.UsedRange
        With rCell
            If Not (.HasFormula) Or Not (.HasArray) Then
                .Value = UCase(.Value)
            End If
        End With
    Next
End Sub
29. november 2002 - 13:09 #7
yeti>> har du fået det løst ?
Avatar billede yeti Nybegynder
15. januar 2003 - 08:52 #8
Det viste sig at være lettere at konverterer alle bokstaver ved import af arket.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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