23. oktober 2016 - 19:56Der er
2 kommentarer og 1 løsning
VBA - Set konto der ikke findes i indlæst balance
Hej
Jeg har skrevet nedenstående VBA, men den virker ikke efter hensigten. Er der en, der kan se hvad der er galt?
'Undersøg om Mappingkontooversigt indeholder konti, der ikke eksisterer i den indlæste balance
For m = 3 To Trk
'Undersøger om konto i Mapping findes i indlæst balance (slettes hvis den ikke gør) For mk = 3 To Trk If Sheets("Mapping").Cells(m, "A").Value <> Sheets("Indlæsning balance").Cells(mk, "A").Value Then Mkonto = False End If MsgBox Mkonto Next mk
If Mkonto = False Then Sheets("Mapping").Rows(m).Delete End If
'Til brug for test (deaktiveres i drift) MsgBox "Irk = " & Irk & " Mrk = " & Mrk & " Trk = " & Trk
'Undersøg om Mapping indeholder kontoplan - hvis ingen kontoplan indlæst indsættes fra Indlæsning balance If Mrk = 2 Then For u = 3 To Trk ' Indsæt nyt kontonummer og kontotekst fra Indlæsning balance til Mapping Ark05.Range("A" & u).Value = Sheets("Indlæsning balance").Cells(u, "A") Ark05.Range("B" & u).Value = Sheets("Indlæsning balance").Cells(u, "B")
' Indsæt formler i Mappingark Ark05.Range("C" & u).FormulaR1C1 = "=SUMIF('Indlæsning balance'!C[-2],Mapping!RC[-2],'Indlæsning balance'!C)" Ark05.Range("D" & u).FormulaR1C1 = "=SUMIF(Efterpostering!R7C4:R500C4,Mapping!RC[-3],Efterpostering!R7C6:R500C6)-SUMIF(Efterpostering!R7C4:R500C4,Mapping!RC[-3],Efterpostering!R7C7:R500C7)" Ark05.Range("E" & u).FormulaR1C1 = "=SUMIF(Reklassifikation!R7C4:R500C4,Mapping!RC[-4],Reklassifikation!R7C6:R500C6)-SUMIF(Reklassifikation!R7C4:R500C4,Mapping!RC[-4],Reklassifikation!R7C7:R500C7)" Ark05.Range("F" & u).FormulaR1C1 = "=RC[-3]+RC[-2]+RC[-1]" Ark05.Range("G" & u).FormulaR1C1 = "=SUMIF('Indlæsning balance'!C[-6],Mapping!RC[-6],'Indlæsning balance'!C[-3])" Ark05.Range("J" & u).FormulaR1C1 = "=SUMIF('Indlæsning budget'!C[-9],Mapping!RC[-9],'Indlæsning budget'!C[-7])" Ark05.Range("K" & u).FormulaR1C1 = "=SUMIF('Indlæsning budget'!C[-10],Mapping!RC[-10],'Indlæsning budget'!C[-7])" Next MsgBox "Kontoplan indsat i tomt Mapping" Exit Sub End If
'Undersøg om Mappingkontooversigt indeholder konti, der ikke eksisterer i den indlæste balance
For m = 3 To Trk
'Undersøger om konto i Mapping findes i indlæst balance (slettes hvis den ikke gør) For mk = 3 To Trk If Sheets("Mapping").Cells(m, "A").Value = Sheets("Indlæsning balance").Cells(mk, "A").Value Then Mkonto = True End If Next mk
If Mkonto <> True Then Sheets("Mapping").Rows(m).Delete End If MsgBox "m=" & m & " | mk=" & mk & " | Mkonto=" & Mkonto & " | " & Sheets("Mapping").Cells(m, "A").Value & " | " & Sheets("Indlæsning balance").Cells(mk, "A").Value Next m
' For u = 3 To Trk ' If Sheets("Indlæsning balance").Cells(u, "A").Value <> Sheets("Mapping").Cells(u, "A").Value Then '''
'Indsæt række til ny post ' Ark05.Rows(u).EntireRow.Insert
'Indsæt nyt kontonummer og kontotekst fra Indlæsning balance til Mapping ' Ark05.Range("A" & u).Value = Sheets("Indlæsning balance").Cells(u, "A") ' Ark05.Range("B" & u).Value = Sheets("Indlæsning balance").Cells(u, "B")
Sub MappingKontoplan() Dim Irk As Long, Mrk As Long, M As Long, MK As Long, Mkonto As Boolean
har rettet lidt i næste del, mest for at gøre den hurtigere, jeg kunne ikke lige se nogen fejl.
'Undersøg om Mappingkontooversigt indeholder konti, der ikke eksisterer i den indlæste balance Mkonto = False For M = 3 To Trk
'Undersøger om konto i Mapping findes i indlæst balance (slettes hvis den ikke gør) For MK = 3 To Trk If Sheets("Mapping").Cells(M, "A").Value = Sheets("Indlæsning balance").Cells(MK, "A").Value Then Mkonto = True Exit For ' hvis den er fundet, behøver den ikke at kikke mere, stopper indre løkke End If Next MK
If Not Mkonto Then Sheets("Mapping").Rows(M).Delete Exit For ' stopper ydre løkke End If ' MsgBox "m=" & M & " | mk=" & MK & " | Mkonto=" & Mkonto & " | " & Sheets("Mapping").Cells(M, "A").Value & " | " & Sheets("Indlæsning balance").Cells(MK, "A").Value Next M
Synes godt om
Ny brugerNybegynder
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.