Avatar billede Casper Andersen Juniormester
30. marts 2015 - 10:43 Der er 20 kommentarer og
1 løsning

Ny linje ved difference

Hej eksperter

Jeg har et excel ark med virkelig mange rækker som jeg skal have delt lidt op.

Jeg har i kolonne A et konto nr. fx. 1000 osv. for alle de andre konties der er i arket. Jeg har behov for en makro der gør det nemmere at se når der er et skift så det ikke bare kommer i en køre.

Så jeg ville gerne at når der skiftet fra konto 1000 til 1005 at der bliver indsat 3 rækker.

Række 1 skal være med summen af kontoen som er i kolonne E og moms i G, så de to skal summes.

Række 2 mellemrum til næste konto.

Række 3 må gerne være en overskrift til næste konto, gerne i fed.

I de andre kolonner er der også data som bare skal følge konto nummeret fra kolonne A.

Her er et billed som måske kan give lidt klarhed? http://i.imgur.com/HXhh3Hv.png
Avatar billede supertekst Ekspert
30. marts 2015 - 13:37 #1
Hej

Overskrift i række 3?
Avatar billede Casper Andersen Juniormester
30. marts 2015 - 14:08 #2
Ja måske dårligt formuleret men sådan at ved ny konto så er "overskriften" fx. "Konto 2283" og så kommer tallene så efterfølgende?
Avatar billede Casper Andersen Juniormester
30. marts 2015 - 14:31 #3
Så Overskriften hedder "konto xxxx" det efterfølgende tal i kolonne A.
Avatar billede supertekst Ekspert
30. marts 2015 - 14:33 #4
Ok - var det muligt at få en kopi/udsnit af fil. @-adresse under min profil.
Avatar billede finb Ekspert
30. marts 2015 - 15:29 #5
1.
Sortér efter kontonr.

2.
Data >> Subtotaler
Avatar billede Casper Andersen Juniormester
30. marts 2015 - 18:21 #6
Jeg kan ikke se hvordan dette løser mit problem, da det ikke laver ekstra linier og gøre det mere overskueligt ?
Avatar billede supertekst Ekspert
31. marts 2015 - 09:22 #7
Const ræk1 = 1

Dim kNr, kontoNr, fraRæk As Long, tilRæk As Long
Dim sumE As Double, sumG As Double
Sub redigerArk()
    Application.ScreenUpdating = False
   
    kontoNr = Range("A" & ræk1)
   
    Rows(ræk1 & ":" & ræk1).Select
    Selection.Insert shift:=xlDown
    Range("A" & ræk1) = "Konto " & kontoNr
    Range("A" & ræk1).Font.Bold = True
   
    sumE = 0
    sumG = 0
    kNr = kontoNr
   
    ræk = ræk1 + 1
   
    While kNr <> ""
        kNr = Range("A" & ræk)
        If kNr <> "" Then
       
            If kNr = kontoNr Then
                sumE = sumE + Range("E" & ræk)
                sumG = sumG + Range("G" & ræk)
            Else
Rem Brud
                Rows(ræk & ":" & ræk).Select
                Selection.Insert shift:=xlDown
                Range("E" & ræk) = sumE
                Range("G" & ræk) = sumG
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
                Range("A" & ræk + 2) = "Konto " & kNr
                Range("A" & ræk + 2).Font.Bold = True
               
                kontoNr = kNr
                sumE = 0
                sumG = 0
               
                antalRæk = antalRæk + 4
                ræk = ræk + 2
            End If
            ræk = ræk + 1
        End If
    Wend
    Range("E" & ræk) = sumE
    Range("G" & ræk) = sumG
End Sub
Avatar billede Casper Andersen Juniormester
31. marts 2015 - 14:02 #8
Makroen jeg har oprettet ser således ud:

Sub Ny_linie()
'
' Ny_linie Makro
'

'
    Const ræk1 = 1

Dim kNr, kontoNr, fraRæk As Long, tilRæk As Long
Dim sumE As Double, sumG As Double
Sub redigerArk()
    Application.ScreenUpdating = False
   
    kontoNr = Range("A" & ræk1)
   
    Rows(ræk1 & ":" & ræk1).Select
    Selection.Insert shift:=xlDown
    Range("A" & ræk1) = "Konto " & kontoNr
    Range("A" & ræk1).Font.Bold = True
   
    sumE = 0
    sumG = 0
    kNr = kontoNr
   
    ræk = ræk1 + 1
   
    While kNr <> ""
        kNr = Range("A" & ræk)
        If kNr <> "" Then
       
            If kNr = kontoNr Then
                sumE = sumE + Range("E" & ræk)
                sumG = sumG + Range("G" & ræk)
            Else
Rem Brud
                Rows(ræk & ":" & ræk).Select
                Selection.Insert shift:=xlDown
                Range("E" & ræk) = sumE
                Range("G" & ræk) = sumG
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
                Range("A" & ræk + 2) = "Konto " & kNr
                Range("A" & ræk + 2).Font.Bold = True
               
                kontoNr = kNr
                sumE = 0
                sumG = 0
               
                antalRæk = antalRæk + 4
                ræk = ræk + 2
            End If
            ræk = ræk + 1
        End If
    Wend
    Range("E" & ræk) = sumE
    Range("G" & ræk) = sumG
End Sub


Der meldes fejl på den allerførste linie "Sub Ny_linie()"
Avatar billede supertekst Ekspert
31. marts 2015 - 14:17 #9
Fordi der allerede er en Sub *)

Jeg har erklæret nogle fælles variabler inden Sub'en

Sub Ny_linie()
'
' Ny_linie Makro
'

'
    Const ræk1 = 1

Dim kNr, kontoNr, fraRæk As Long, tilRæk As Long
Dim sumE As Double, sumG As Double
Sub redigerArk()          '<============================ *)
Avatar billede Casper Andersen Juniormester
31. marts 2015 - 14:48 #10
Så hvis jeg vil have makroen til at hede Ny_linie hvordan skal hele makroen så se ud ?
Avatar billede supertekst Ekspert
31. marts 2015 - 14:54 #11
Const ræk1 = 1

Dim kNr, kontoNr, fraRæk As Long, tilRæk As Long
Dim sumE As Double, sumG As Double

Sub Ny_linie()
    Application.ScreenUpdating = False
   
    kontoNr = Range("A" & ræk1)
   
    Rows(ræk1 & ":" & ræk1).Select
    Selection.Insert shift:=xlDown
    Range("A" & ræk1) = "Konto " & kontoNr
    Range("A" & ræk1).Font.Bold = True
   
    sumE = 0
    sumG = 0
    kNr = kontoNr
   
    ræk = ræk1 + 1
   
    While kNr <> ""
        kNr = Range("A" & ræk)
        If kNr <> "" Then
       
            If kNr = kontoNr Then
                sumE = sumE + Range("E" & ræk)
                sumG = sumG + Range("G" & ræk)
            Else
Rem Brud
                Rows(ræk & ":" & ræk).Select
                Selection.Insert shift:=xlDown
                Range("E" & ræk) = sumE
                Range("G" & ræk) = sumG
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
               
                Rows(ræk + 1 & ":" & ræk + 1).Select
                Selection.Insert shift:=xlDown
                Range("A" & ræk + 2) = "Konto " & kNr
                Range("A" & ræk + 2).Font.Bold = True
               
                kontoNr = kNr
                sumE = 0
                sumG = 0
               
                antalRæk = antalRæk + 4
                ræk = ræk + 2
            End If
            ræk = ræk + 1
        End If
    Wend
    Range("E" & ræk) = sumE
    Range("G" & ræk) = sumG
End Sub
Avatar billede Casper Andersen Juniormester
31. marts 2015 - 14:58 #12
Hej det ser ud til at fungere super tak.

Lige en lille smugle detalje, er det muligt at lave en streg over summen så det er lidt tydeligere, samt at gøre dem fed. Så ville det være super lækkert.
Avatar billede supertekst Ekspert
31. marts 2015 - 15:07 #13
Selv tak
Vender tilbage med streg over + Fed
Svar er lagt i #7
Avatar billede Casper Andersen Juniormester
09. april 2015 - 08:48 #14
Hej

Er du kommet med en løsning til de sidste få ting ?
Avatar billede supertekst Ekspert
09. april 2015 - 11:11 #15
Const ræk1 = 1

Dim kNr, kontoNr, fraRæk As Long, tilRæk As Long
Dim sumE As Double, sumG As Double
Sub Ny_linie()
    Application.ScreenUpdating = False
   
    kontoNr = Range("A" & ræk1)
   
    Rows(ræk1 & ":" & ræk1).Select
    Selection.Insert shift:=xlDown
    Range("A" & ræk1) = "Konto " & kontoNr
    Range("A" & ræk1).Font.Bold = True
   
    sumE = 0
    sumG = 0
    kNr = kontoNr
   
    Ræk = ræk1 + 1
   
    While kNr <> ""
        kNr = Range("A" & Ræk)
        If kNr <> "" Then
       
            If kNr = kontoNr Then
                sumE = sumE + Range("E" & Ræk)
                sumG = sumG + Range("G" & Ræk)
            Else
Rem Brud
                Rows(Ræk & ":" & Ræk).Select
                Selection.Insert shift:=xlDown
                Range("E" & Ræk) = sumE
                MarkerTotal Range("E" & Ræk)
               
                Range("G" & Ræk) = sumG
                MarkerTotal Range("G" & Ræk)
               
                Rows(Ræk + 1 & ":" & Ræk + 1).Select
                Selection.Insert shift:=xlDown
               
                Rows(Ræk + 1 & ":" & Ræk + 1).Select
                Selection.Insert shift:=xlDown
                Range("A" & Ræk + 2) = "Konto " & kNr
                Range("A" & Ræk + 2).Font.Bold = True
               
                kontoNr = kNr
                sumE = 0
                sumG = 0
               
                antalRæk = antalRæk + 4
                Ræk = Ræk + 2
            End If
            Ræk = Ræk + 1
        End If
    Wend
    Range("E" & Ræk) = sumE
    MarkerTotal Range("E" & Ræk)
   
    Range("G" & Ræk) = sumG
    MarkerTotal Range("G" & Ræk)
End Sub
Private Sub MarkerTotal(rng As Range)
    rng.Select
   
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlDouble
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThick
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Font.Bold = True
End Sub
Avatar billede Casper Andersen Juniormester
09. april 2015 - 12:44 #16
hej igen
Nu har jeg prøvet på det rigtige ark. Den gør det korrekt ved første konto, men så stopper glæden også der?

Så den første konto er som jeg gerne vil have det til at være og overskriften på næste konto er også korrekt. Men derefter er det forkert og ender med at der slet ikke sker noget på de sidste konties?
Avatar billede supertekst Ekspert
09. april 2015 - 13:13 #17
Hej

Jeg oplever ikke det problem. Går ud fra at du afprøver på et ikke formateret ark.
Avatar billede Casper Andersen Juniormester
09. april 2015 - 13:22 #18
Jeg har opdaget fejlen, mange tak for hjælpen.

Du kender tilfældigvis ikke et sted man kan deltage i et kursus omkring VBA kodening i Århus området?
Avatar billede supertekst Ekspert
09. april 2015 - 13:34 #19
Selv tak.

Nej det gør jeg ikke.

Du har vel prøvet at Google?
Avatar billede Casper Andersen Juniormester
09. april 2015 - 13:38 #20
Google hvad er det? Jo det har jeg, men må vel bare give det et ekstra forsøg. Igen mange tak for hjælpen.
Avatar billede supertekst Ekspert
09. april 2015 - 15:29 #21
Selv tak..
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