Excel VBA: Select case, if ... then - eller noget helt 3.?
Løntrin Basisløn 2 0 8 0 4 0 S 0 C 0
Jeg har brug for at kunne udfylde felterne i kolonnen 'Basisløn' med tal, baseret på hvilket løntrin der er anført i kolonnen 'løntrin'. Tallene der matcher løntrinnet hentes fra et dataark i samme excelmappe.
Fordi jeg har brug for at lade mine brugere indsætte linier vilkårlige steder og jeg vil kunne opdatere formlen ved at trykke på en 'opdater' knap, ikke ved at de skal ligge og fedte med at kopiere formlen ned.
Do Sheets("Grund-ark").Select Cells(GRK, 3).Select ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],'Løn-ark'!R2C1:R20C2,2,FALSE)),""Løntrinnet eksisterer ikke"",VLOOKUP(RC[-1],'Løn-ark'!R2C1:R20C2,2,FALSE))" GRK = GRK + 1 Loop Until Cells(GRK, 1) = "" Cells(1, 1).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = xlAutomatic End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Selection.Font.Bold = True With Selection.Interior .ColorIndex = 15 .Pattern = xlSolid End With Rows("2:2").Select ActiveWindow.FreezePanes = True Cells(1, 1).Select Selection.CurrentRegion.Select Selection.EntireColumn.AutoFit Cells(2, 1).Select End Sub
I ovenstående eksempel er Grund-ark et ark der består af tre kolonner: Navn Løntrin Basisløn
Løn-arket er et ark der består af to kolonner:
Løntrin Basisløn
I dette ark indtastes hhv. Løntrin og Basisløn.
hvis der kommer en ny medarbejder indtastes navn og løntrin i Grund-arket, og derefter aktiveres makroen. Nu indsættes den værdi der er sat ind ud for det valgte løntrin i kolonne tre.
Skulle man komme til at indtaste et løntrin der ikke eksisterer i Løn-arket, bliver man gjort opmærksom på fejlen.
Ellers ville jeg læse løntallene ind statisk og lave en for løkke som gennemløber cellerne og laver en select case på cells(i,1) og smider data ind i (i,2).
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.