17. januar 2008 - 00:34Der 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.
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
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))
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))
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.