Avatar billede tvc Seniormester
06. februar 2006 - 19:21 Der er 9 kommentarer og
1 løsning

Formatering af tal (indsat som tekst) til tal

Hej

Jeg har en makro som indsætter såvel tekst som tal. Alle data hentes fra et andet system hvor disse kopieres fra med Ctrl. + C.

Når jeg vælger indsæt special kan jeg kun vælge mellem Unicode-tekst og Tekst. Begge formater indsætter mine data som tekst, der ikke umiddelbart kan formateres til tal.

Da der indsættes såvel tekst som tal kan jeg ikke angive at der er tale om tal ved indsættelsen. Jeg ville gerne kunne vælge funktionen indsæt special og så værdier, men det kan ikke lade sig gøre.

Jeg søger derfor en løsning der kan formatere området hvor tal er indsat således, at disse konverteres til tal.

Med venlig hilsen

TVC
Avatar billede kabbak Professor
06. februar 2006 - 19:45 #1
Marker alle dine data og kør denne makro

Public Sub TeketTilTal()
For Each C In Selection
If IsNumeric(C) And C <> "" Then
C.Value = C.Value * 1
End If
Next
End Sub
Avatar billede tvc Seniormester
06. februar 2006 - 20:47 #2
Tak kabbak - smider du et svar?
Avatar billede kabbak Professor
06. februar 2006 - 20:49 #3
et svar ;-))
06. februar 2006 - 22:11 #4
Uden makro...
-Marker alle tal
-Kopier
-Indsæt speciel
  - vælg multiplicer med 1
06. februar 2006 - 22:13 #5
Forkert - DET SKAL VÆRE SÅDAN


-Skriv 1 i en celle
-Kopier cellen
-Marker alle celler er der skal ændres til tal
-Indsæt speciel
  - vælg multiplicer
Avatar billede tvc Seniormester
06. februar 2006 - 23:25 #6
flemmingdahl

Den er faktisk bedre, da den tager mindre ressourcer og derfor kører hurtigere i programmet. Håber du kan leve med at jeg har givet kabbak points - han var der jo som så ofte med et hurtigt svar ;-)

TVC
Avatar billede kabbak Professor
06. februar 2006 - 23:28 #7
Jeg giver dem gerne igen, men fordi jeg valgte makroen, var at den kunne kobles til den eksisterende makro, så det blev ordnet automatisk efter overførslen.
Avatar billede kabbak Professor
06. februar 2006 - 23:51 #8
Ok du får en ny makro som er hurtigere, den finder selv området, startende i A1

Public Sub Tal_Som_Tekst_Til_Tal()
    Dim Data As Variant, Ad As String, Col As Long, I As Long, X As Long
    Range("A1").Select
    Ad = Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Address
    Col = Range(Ad).Columns(Range(Ad).Columns.Count).Column
    Data = Range(Selection, ActiveCell.SpecialCells(xlLastCell))
    For I = 1 To UBound(Data)
        For X = 1 To Col
            If IsNumeric(Data(I, X)) And Data(I, X) <> "" Then
                Data(I, X) = Data(I, X) * 1
            End If
        Next
    Next
    Range(Ad) = Data
End Sub
Avatar billede kabbak Professor
06. februar 2006 - 23:57 #9
7 sek. for 950.000 celler
07. februar 2006 - 09:42 #10
Jeg er ligeglad med point - viste blot et alternativ - slut herfra
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