Avatar billede kar_sten Nybegynder
17. januar 2008 - 00:34 Der er 4 kommentarer og
1 løsning

VBA - makro: kopiering/retunering af tal og tekst fra samme celle

Fra et kontoudskrift er hentet data (copi/paste) til excel.

Celler i kolonne A ser feks. således ud:
a1: "02.01.2007 Budgetoverførsel 04.01.2007 4.050,00 2.118,12"
b1: "01.03.2007 BS KØBENHAVNS KOMMUNE - OPKRÆVN 01.03.2007 -1.063,00 -2.803,34"
osv osv...

Jeg ønsker hvert et sammenhængende tal og hvert en sammenhængende tekst delt op hver for sig.
-således at datoen set fra venstre bliver kopieret over i A2.
-teksten "Budgetoverførsel" kopieret til A3.
-datoen umiddelbart efter kopieres til A4.
-tallet "4.050,00" kopieres til A5.
-og tallet "2.118,12" kopieres til A6.

Ligeledes med Række B - C - D - osv.

På forhånd tak..
Avatar billede jlemming Nybegynder
17. januar 2008 - 08:49 #1
Der plejer er at en være eksport funktion i netbank, således man kan generer en fil der kan importeres direkte i excel.
Prøv lige at tjekke om du ikke også har den mulighed?

Problemet er: BS KØBENHAVNS KOMMUNE - OPKRÆVN som består af flere mellemrum
Avatar billede gider_ikke_mere Nybegynder
17. januar 2008 - 09:03 #2
Prøv denne:

Sub test()
Dim Slut As Long, I As Long, Tekst As String, Y As Long, Skil As Long
Slut = Range("A65536").End(xlUp).Row

For I = 1 To Slut
    Tekst = Range("A" & I).Value
    Range("A" & I).Value = Left(Tekst, 10)
    Tekst = Right(Tekst, Len(Tekst) - 11)
   
    For Y = 1 To Len(Tekst)
        If Mid(Tekst, Y, 1) = "." And Mid(Tekst, Y + 3, 1) = "." Then
            Skil = Y - 4
            Exit For
        End If
    Next
    Range("B" & I).Value = Left(Tekst, Skil)
    Range("C" & I).Value = Mid(Tekst, Skil + 2, 10)
    Tekst = Trim(Right(Tekst, Len(Tekst) - Skil - 11))
   
    For Y = 1 To Len(Tekst)
        If Mid(Tekst, Y, 1) = "," Then
            Skil = Y + 2
            Exit For
        End If
    Next
    Range("D" & I).Value = Trim(Left(Tekst, Skil))
    Range("E" & I).Value = Trim(Right(Tekst, Skil))
   
Next
End Sub
Avatar billede gider_ikke_mere Nybegynder
17. januar 2008 - 09:19 #3
Sorry, jeg fik byttet rundt på hvordan du vil have det til at stå:

Sub test()
Dim Slut As Long, I As Long, Tekst As String, Y As Long, Skil As Long
Slut = Range("IV1").End(xlToLeft).Column

For I = 1 To Slut
    Tekst = Cells(1, I).Value
    Cells(1, I).Value = Left(Tekst, 10)
    Tekst = Right(Tekst, Len(Tekst) - 11)
   
    For Y = 1 To Len(Tekst)
        If Mid(Tekst, Y, 1) = "." And Mid(Tekst, Y + 3, 1) = "." Then
            Skil = Y - 4
            Exit For
        End If
    Next
    Cells(2, I).Value = Left(Tekst, Skil)
    Cells(3, I).Value = Mid(Tekst, Skil + 2, 10)
    Tekst = Trim(Right(Tekst, Len(Tekst) - Skil - 11))
   
    For Y = 1 To Len(Tekst)
        If Mid(Tekst, Y, 1) = "," Then
            Skil = Y + 2
            Exit For
        End If
    Next
    Cells(4, I).Value = Trim(Left(Tekst, Skil))
    Cells(5, I).Value = Trim(Right(Tekst, Skil))
   
Next
End Sub
Avatar billede kar_sten Nybegynder
17. januar 2008 - 12:11 #4
Hii Akyhne

TAAK for dine vba'er.
De virker begge optimalt.

Den første er mest efter det konkrete ønske.
Der er en 200'mand klar til dig :-)
Så hit med svar..
Avatar billede gider_ikke_mere Nybegynder
17. januar 2008 - 12:42 #5
Ok.
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