Avatar billede hhave Nybegynder
27. september 2010 - 09:50 Der er 11 kommentarer

kode til excel (tæl tegn i felt)

Hejsa...

Jeg vil meget gerne have en kode i felt a1, som tæller antallet af tegn (tal, bogstaver og/eller tegn) i et andet felt (fx A5). jeg skal tjekke at der er præcist 10 tegn i felt A5.

Resultat af koden må meget gerne være, at hvis der ikke er præcist 10 tegn. bliver feltet rødt (eller at der i A1 står værdien 1) og hvis der er præcis 10 tegn bliver det grønt (eller A1 får værdien 0)

Håber på lidt hjælp fra jer...

Venlig hilsen
Henrik
Avatar billede supertekst Ekspert
27. september 2010 - 09:56 #1
Er der indhold i A5 på forhånd når arket aktiveres eller ...
Avatar billede supertekst Ekspert
27. september 2010 - 10:08 #2
Private Sub Worksheet_Change(ByVal Target As Range)
'Ændres der i A5
    If Target.Address = "$A$5" Then
   
'Mål længden af A5 og vis den i A1
        Range("A1") = Len(Target)
       
'Hvis længden er 10 - A1=grøn
        If Len(Target) = 10 Then
            Range("A1").Interior.ColorIndex = 4
        Else
'Ellers rød
            Range("A1").Interior.ColorIndex = 3
        End If
    End If
End Sub
Avatar billede hhave Nybegynder
27. september 2010 - 10:16 #3
hejsa... der er indhold i A5 på forhånd...

Skal jeg sætte al den tekst ind i felt A1..?
Avatar billede supertekst Ekspert
27. september 2010 - 10:29 #4
Jeg ændrelige koden således, at den udføres når arket aktiveres eller der ændres i A5 - ok?

Koden skal lægges ind "under arket" (Højreklik på ark / Vis programkode) Indsættes heri via alm. kopier/indsæt
Avatar billede supertekst Ekspert
27. september 2010 - 10:40 #5
' Når arket aktiveres
Private Sub worksheet_activate()
    visLængde
End Sub
' Hvis der ændres i A5
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$5" Then
        visLængde
    End If
End Sub
Private Sub visLængde()
'Mål længden af A5 og vis den i A1
    Range("A1") = Len(Range("A5"))
       
'Hvis længden er 10 - A1=grøn
    If Len(Range("A5")) = 10 Then
        Range("A1").Interior.ColorIndex = 4
    Else
'Ellers A1 = rød
        Range("A1").Interior.ColorIndex = 3
    End If
End Sub
Avatar billede hhave Nybegynder
27. september 2010 - 10:47 #6
Hej igen..

desværre gør det ikke helt...

eksemplet m. A1 og A5 er eksempler. Jeg har 800 rækker ned ad i arket, som jeg skal have tjekket og ligeledes flere forskellige kolonner.

Derfor skal det gerne blot være en formellinje jeg kan sætte ind A1 og "trække" nedad samt flytte "target" feltet A5 til andre felter...
Avatar billede anlu Nybegynder
27. september 2010 - 10:47 #7
Jeg vil jo mene at det lidt simplere at skrive fx følgende formel i A1:
=IF(LEN(A5)=10;0;1)

Og så lave noget conditional formatting for at få feltet til at blive grønt eller rødt.

Alternativt farve cellen rød og så direkte i conditional formatting farve cellen grøn med denne betingelse:
=(LEN(A5)=10)
Avatar billede supertekst Ekspert
27. september 2010 - 10:54 #8
OK..
27. september 2010 - 10:56 #9
På dansk hedder funktionen LÆNGDE()
=HVIS(LÆNGDE(A5)=10;0;1)
og

=(LÆNGDE(A5)=10)
Avatar billede hhave Nybegynder
27. september 2010 - 11:39 #10
Super - keep it simple:)

Takker
Avatar billede hhave Nybegynder
09. december 2010 - 12:16 #11
super!

Tak for det!
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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