Står de to tabeller i hvert sit ark? I så fald kan Data > Konsolider ofte være et hjælpemiddel, men har den bagdel, at den vil lægge beløbene sammen, dér hvor kontonummer og kontotekst er sammenfaldende - og det var måske ikke meningen?
Kan udføres via VBA - men mere info nødvendigt: - er de to kontoplaner i samme xls-mappe eller i hver sin? - ønsker du sortering af den samlede liste? - er der overskifter, der skal tages hensyn til? - er der tale om kolonne A-C?
A = Kontonummer 1995 B = Kontotekst 1995 C = Beløb 1995
D-F = ditto for 1996 G_j = Ditto for 1997 o.s.v.
Det der ønskes er at der genereres en liste med alle anvendte kontonumre og navne hvis der kan rubriceres med beløb for de enkelte år er de snygt, men elleres kan det laves med Andre funktioner.
Const maxRæk = 1000 Dim antalKto Dim kontoNr, kontoTekst Dim KontoplanRæk Sub opbygKontoplan() antalKto = 0
Application.ScreenUpdating = False
sletArk2
With ActiveWorkbook.Sheets(1) 'balanceanalyse Rem gennemløb nedennævnte rækker For række = 8 To maxRæk Rem er cellen i kolonne G/7 og J/10 udfyldt sætIark2 Cells(række, 7) sætIark2 Cells(række, 10) Next række End With
MsgBox ("Opbygning af kontoplan afsluttet") End Sub Private Sub sletArk2() On Error Resume Next ActiveWorkbook.Sheets(2).Cells.Select Selection.ClearContents
End Sub Private Sub sætIark2(kto) If kto <> "" Then antalKto = antalKto + 1 ActiveWorkbook.Sheets(2).Cells(antalKto, 1) = kto End If End Sub Private Sub sorterktoNr() With ActiveWorkbook.Sheets(2) .Range("A1:A253").Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End With End Sub Private Sub filtrerKtoNr(stopRæk) With ActiveWorkbook.Sheets(2) For Ræk = stopRæk To 2 Step -1 If .Cells(Ræk, 1) = .Cells(Ræk - 1, 1) Then ActiveWorkbook.Worksheets(2).Rows(Ræk).Delete Selection.Delete Shift:=xlUp antalKto = antalKto - 1 End If Next Ræk End With End Sub Private Sub indsætKontoTekst(antal) With ActiveWorkbook.Sheets(2) For Ræk = 1 To antal kontoTekst = findTekst(.Cells(Ræk, 1)) .Cells(Ræk, 2) = kontoTekst Next Ræk End With End Sub Private Function findTekst(kto) With ActiveWorkbook.Sheets(1) For Ræk = 8 To 65500 If .Cells(Ræk, 1) = "" Then findTekst = "?" Exit Function Else If Val(.Cells(Ræk, 1)) = kto Then findTekst = .Cells(Ræk, 2) Exit Function End If End If Next Ræk End With End Function Private Sub CommandButton1_Click() opbygKontoplan End Sub
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.