Avatar billede Steinbeck Mester
17. september 2019 - 17:54 Der er 8 kommentarer og
1 løsning

Talformat på beløb vba makro

Hej med jer,

Jeg håber at der er en der kan hjælpe mig.

Jeg trækker data ud fra et økonomisystem med en makro og beløbene har minus efter sig.
For at fjerne disse har jeg optaget at funktionen tekst til kolonner "avancerede indstillinger for tekstimport" og trykker her OK.
Dette virker fint når man gør det manuelt. Men når det ligger i makroen bliver beløbene konverteret til engelsk format med punktummer i stedet for komma.
For at løse dette laver jeg en søg og erstat, men her laver VBA'en det så om til noget der ikke er tal. Hvis jeg så bruger tekst til kolonner igen, i makroen, for at få det til tal, ændres det til engelsk format igen. og sådan kan man blive ved.

Hvad skal jeg gøre for at undgå dette problem?
Jeg kan ikke få data ud med minus foran tallet da datamængderne er for store.
Avatar billede Jan Hansen Ekspert
17. september 2019 - 18:25 #1
I vba
=Format("#.###,##")

Som formel
=Tekst(A1;"#.###,##")
Avatar billede Jan Hansen Ekspert
17. september 2019 - 18:27 #2
ups

I vba
Variabel  hedder Tal

Tal=Format(Tal,"#.###,##")

Som formel
=Tekst(A1;"#.###,##")
Avatar billede xl-Enthusiast Ekspert
17. september 2019 - 20:27 #3
Jeg trækker data ud fra et økonomisystem med en makro og beløbene har minus efter sig.

Det kan du løse med en formel som:

=MAX(A1;-SUBSTITUTE(A1;"-";""))

dansk:

=MAKS(A1;-UDSKIFT(A1;"-";""))
Avatar billede Steinbeck Mester
18. september 2019 - 09:42 #4
Tak for jeres input,

Jeg vil gerne kunne gøre det uden hjælpekolonner selvom de selvfølgelig kan slettes igen. Det lægges i makroen.
Avatar billede Jan Hansen Ekspert
18. september 2019 - 11:40 #5
Til inspiration

Option Explicit
Dim Rng As Range
Dim tal
Sub EngelskTilDanskFormat()
    Set Rng = Range("A1")
    With Application.WorksheetFunction
        tal = .Substitute(.Substitute(.Substitute(Rng.Value, ",", ""), ".", ","), "-", "") * 1
    End With
    Range("B1").Value = tal
End Sub
Avatar billede Steinbeck Mester
18. september 2019 - 12:02 #6
Hej Jan,

Det er noget i den stil jeg søger. Jeg ganger med -1 istedet vælger A1 i stedet for B1 og dermed erstatter jeg tallet. Jeg er ikke 100 meter mester i VBA og vil gerne have at jeg kan gøre det på en hel kolonne og at de beløb der ikke har minus ikke bliver rettet. Jeg har prøvet at smide det du har lavet i en IF. Det kunne jeg ikke helt få til at lykkes.
Avatar billede Jan Hansen Ekspert
18. september 2019 - 13:47 #7
#6 send pb
Avatar billede thomas_bk Ekspert
18. februar 2020 - 15:49 #8
Er denne afklaret?
Avatar billede Steinbeck Mester
18. februar 2020 - 15:51 #9
Lad os bare lukke den.
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