Avatar billede face Nybegynder
16. august 2007 - 08:44 Der er 15 kommentarer og
1 løsning

Fjern tegn og tal fra en celle, uden at fjerne hele tallet

Hejsa,

I A1 og nedefter har jeg tal med tegn f.eks.: +H435715282341H^
Jeg vil gerne have at den skal fjerne +H435 samt 1H^ - så der kun står 71528234 tilbage, men den skal kun gøre det hvis indholdet starter med et plus. Kun tegne er statiske tallene er forskellige - længden er den samme.

Det er kun i A kolonen den skal lave ændringerne.

Tak.

Mvh
Face
Avatar billede kabbak Professor
16. august 2007 - 08:58 #1
Hvis du har tallet i A1

=HVIS(VENSTRE(A1;1)="+";MIDT(A1;6;8);A1)
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:04 #2
=HVIS(VENSTRE(A1;1)="+";MIDT(A1;5;LÆNGDE(A1)-7);"")
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:04 #3
Tja, endnu engang for langsom...
Avatar billede face Nybegynder
16. august 2007 - 09:08 #4
Jeg kan ikke rigtig få det til at fungere, kan man ikke lave det som en macro der løber igennem kolonne A? Og ændre tallene.
Avatar billede face Nybegynder
16. august 2007 - 09:13 #5
Den siger #NAME? til dem begge
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:20 #6
Sub test()
Slut = Range("A65536").End(xlUp).Row
Range("A1").Select
For I = 1 To Slut
    If Left(ActiveCell.Value, 1) = "+" Then
        ActiveCell.Range("B1").Value = Mid(ActiveCell.Value, 5, Len(ActiveCell.Value) - 7)
    End If
    ActiveCell.Range("A2").Select
Next
End Sub
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:22 #7
Eller hvis det blot er værdien i A der skal ændres:

Sub test()
Slut = Range("A65536").End(xlUp).Row
Range("A1").Select
For I = 1 To Slut
    If Left(ActiveCell.Value, 1) = "+" Then
        ActiveCell.Value = Mid(ActiveCell.Value, 5, Len(ActiveCell.Value) - 7)
    End If
    ActiveCell.Range("A2").Select
Next
End Sub
Avatar billede kabbak Professor
16. august 2007 - 09:24 #8
du har engelsk version

jeg kan ikke huske om ; skal være ,
=IF(LEFT(A1;1)="+";MID(A1;6;8);A1)
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:26 #9
Hvis det er en større mængde data er et array betydelig hurtigere:

Sub test()
Dim Slut As Long, I  As Long, DitArray
Slut = Range("A65536").End(xlUp).Row
DitArray = Range("A1:A" & Slut)
For I = 1 To Slut
    If Left(DitArray(I, 1), 1) = "+" Then
        DitArray(I, 1) = Mid(DitArray(I, 1), 5, Len(DitArray(I, 1)) - 7)
    End If
Next
Range("A1:A" & Slut) = DitArray
End Sub
Avatar billede face Nybegynder
16. august 2007 - 09:30 #10
Akyhne jeg ændrede til ActiveCell.Range("A1").Value = Mid(ActiveCell.Value, 6, Len(ActiveCell.Value) - 8)

Fra dit første forslag - Og så virker det!
Hit med et svar og du får point - Og rigtig mange tak! :-)

Tak for dit foreslag kabbak :-)
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:33 #11
Giv dem til kabbak. Han var her først. Jeg skulle blot se om jeg kunne komme først.
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 09:34 #12
Som sagt, hvis det er en lang kolonne af data, så brug: 16/08-2007 09:26:52
Avatar billede kabbak Professor
16. august 2007 - 09:54 #13
nix, giv dem til akyhne, det er hans kode du brugte ;-))
Avatar billede gider_ikke_mere Nybegynder
16. august 2007 - 13:42 #14
Ok, Ping.
Avatar billede gider_ikke_mere Nybegynder
25. august 2007 - 03:05 #15
Skal vi lukke?
Avatar billede face Nybegynder
28. august 2007 - 12:42 #16
Undskyld det tog lidt tid med at acceptere...
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

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